<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    零基礎學FPGA(十三)先來說說VGA

    發布時間:2016-2-19 09:03    發布者:designapp
    關鍵詞: FPGA , VGA
      這個實驗其實已經做好久了,但是一直沒有做筆記,今天就把這部分的內容補一下,有興趣的朋友可以看一下,或許對你有什么幫助,對初學者來說還是一個不錯的實驗。
      先來了解一下VGA吧
      我們家里用的臺式電腦就是一個VGA顯示器,小墨同學為做這方面的實驗還特意買了一塊7寸的VGA液晶顯示器
      


      記得當初自己也是傻得不得了,把寫好的代碼,燒到板子里就直接連到筆記本電腦上的VGA接口上,結果什么反應也沒有,還調了一下午的程序...結果還是沒反應,到群里一問才知道,原來筆記本電腦上的VGA接口只能做輸出而不能輸入的這跟臺式機還是不同的,后來才買的這塊液晶顯示器。
      標準的VGA接口有15個接口,但是真正用到的只有5個接口,分別是三個色彩信號,R,G,B,場同步信號VSYNC,行同步信號HSYNC,時序部分要通過控制行同步信號和場同步信號,色彩部分要控制RGB,先來看時序部分。
      


      對于一個分辨率為800*600的顯示器,簡單的說像素的刷新是從左到右,從上到下一行一行的刷新的,每一行要刷新的點成為行同步信號的幀長,有多少行稱為場同步信號的幀長,從上到下刷新完一遍稱為一幀,我們電腦上說的屏幕刷新頻率就是說屏幕一秒鐘能夠刷新多少幀,當達到一定的幀數,我們的肉眼也就分辨不出來了,這樣我們就看到我們的電腦屏幕,我們在操作的時候是連續的了。下面是時序表:
      


      先來解釋一下這個表
      第一行表示行同步信號的時序表,前187個計數點表示的在消影區,即還沒開始進入顯示區,從188開始進入顯示區,到987結束,后面的52個計數點又在消影區
      第二行表示場同步信號。同理。前31個計數點和后56個計數點表示在消影區,是不顯示的,下面是我畫的一個圖幫大家理解
      


      知道了這一點我們就可以開始寫時序部分的程序了
      


      當行計數器計滿一行1039個點時清零,場計數器加1,當場計數器計滿687行時,一幀結束,場計數器清零
      


      當計滿一行時,行同步信號會拉低一個120個時鐘周期的低脈沖,通俗的理解就是計滿一行有一個低脈沖出現,這個脈沖的長度是120個時鐘周期,同理,計滿一個場之后會有6個場周期的低脈沖出現,這個低脈沖就不是時鐘周期了,是相當于場計數器計6行的時間
      時序寫好了之后就要確定顯示區域,根據上面那個我畫的圖,即只有在行計數器計到187到987,場計數器計到31到631時才是有效區域
      


      為了好確定坐標,我們可以將坐標轉換一下,換成我們習慣的樣子,避免消影區坐標的干擾
      


      這樣一切準備工作就做好了,剩下的就是我們自己設計想要顯示的畫面了,例如,我要在屏幕中間顯示一個矩形框,在這個矩形里面顯示一個小矩形
      


      這個地方我剛開始看的時候沒看懂,我再畫一個圖幫大家理解
      


      下面顯示小矩形
      


      畫完圖形最后顯示顏色
      


      最后按照硬件原理圖分配好管腳,下載就可以了
      


      下面來說說顯示字符
      時序部分是一樣的就不多說,直接說字符顯示部分
      顯示字符當然要用到取模軟件,相信大家都用過
      


      然后將字模進行拼接,因為我們刷新是從左向右,從上到下刷新的,所以要把每一個字模的同一行拼接在一起,這樣每刷新一行,同時刷新三個字模的一行,從上到下刷新一邊,三個字模也就刷新出來了
      


      這里要定義一個減法計數器,當像素點從某個位置從左到右開始刷新時開始計數,知道計數到要顯示的字模結束為止。這里我用到了32個像素點表示一個字模的一行,4個字模就需要128個像素點來表示一行,共有32列
      


      下面是當計數到需要顯示的字模時,給字加上顏色,x_dis,y_dis用來確定在哪顯示字符
      


      下面是演示結果
      

                                   
                   
    本文地址:http://www.portaltwn.com/thread-160913-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷