版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于AVR的VGA顯示和激光打印系統(tǒng) 摘要:用ATMEGA128單片機結(jié)合CPLD實現(xiàn)了對VGA顯示器和激光打印機的控制,完成了在VGA顯示器上實時顯示字符和圖形的功能,并控制激光打印機實現(xiàn)了屏幕信息的打印輸出。本設(shè)計克服了單片機系統(tǒng)顯示和打印功能薄弱的缺點,為擴大其應(yīng)用范圍奠定了基礎(chǔ),同時也為其他嵌入式系統(tǒng)的信息輸出提供了一種解決方案。 關(guān)鍵詞:VGA控制器;PCL命令語言;激光打?。籆PLD 隨著集成電路制造技術(shù)的不斷發(fā)展,MCU、ARM、DSP等微控制器、微處理器的性能
2、急劇提高,但是輸出功能,尤其是顯示和打印功能仍然比較薄弱,與PC機相比有較大的差距。輸出功能薄弱的缺點,限制了其應(yīng)用范圍的擴大。ATmega128是美國Atmel公司生產(chǎn)RISC 結(jié)構(gòu)的高性能MCU芯片,含有ADC、I2C、SPI、PWM等多種資源 1。本論文以ATMEGA128單片機為例,結(jié)合CPLD和高速SRAM,介紹在VGA顯示器上顯示字符、圖形信息和控制激光打印機打印輸出屏幕信息的方法。本設(shè)計克服了單片機系統(tǒng)信息輸出功能薄弱的缺點, 為單片機和其他嵌入式系統(tǒng)的信息輸出提供了一個解決方案,使得其應(yīng)用范圍更加廣闊。系統(tǒng)結(jié)構(gòu)如圖1所示。 1 VGA顯示控制器的實現(xiàn)
3、160; PC機在VGA的顯示器(通常包括CRT和液晶顯示器)上的信息顯示是通過顯卡完成的。單片機在VGA顯示器上顯示信息同樣需要類似的模塊來輔助,因此我們設(shè)計了和顯卡功能相似的VGA顯示控制器來輔助ATMEGA128單片機在VGA顯示器上顯示信息。下面介紹640×480分辨率、59.9HZ刷新率的通用VGA顯示控制器的設(shè)計方法,并說明微控制器、微處理器如何在VGA接口的顯示器上顯示信息。1.1 VGA時序產(chǎn)生模塊的設(shè)計 要實現(xiàn)VGA顯示控制器的功能,首先需要了解VGA信號的參數(shù)和時序。圖2所示為640×480分辨率、59.9
4、HZ刷新率的VGA時序圖2。根據(jù)VGA時序圖,本論文研究并實現(xiàn)了VGA顯示控制器,所用硬件為Altera公司的EPM7128 CPLD和ISSI公司的高速SRAM。EPM7128的作用是通過編程產(chǎn)生VGA顯示所需的時序信號,并協(xié)助微控制器實現(xiàn)對顯存的讀寫操作。高速SRAM的作用是存儲需要顯示的數(shù)據(jù)信息,其讀寫周期為8ns,滿足顯示器刷新時對顯存進行快速讀寫的時間要求。設(shè)計中用一個bit代表一個象素,640×480分辨率需要37.5K字節(jié)的顯存。象素時鐘頻率的選擇與VGA監(jiān)視器的刷新頻率和分辨率相關(guān),59.9HZ刷新率時,象素時鐘頻率為25.175MHZ,其計算公式為:時鐘頻率(行象素
5、數(shù)行消隱點數(shù))×(一場行數(shù)消隱行數(shù))×刷新率。 根據(jù)VGA信號的要求,用VHDL語言對EPM7128芯片編程實現(xiàn)VGA時序產(chǎn)生模塊。VGA時序產(chǎn)生模塊包括:每行的象素數(shù)目計數(shù)器h_cnt、每場的行數(shù)目計數(shù)器v_cnt、行同步信號hs產(chǎn)生模塊、場同步信號vs產(chǎn)生模塊、消隱信號blank產(chǎn)生模塊和并行輸入串行輸出模塊等。其中, h_cnt的最大計數(shù)值是799, v_cnt的最計數(shù)值是是524。行同步信號產(chǎn)生模塊根據(jù)h_cnt的計數(shù)值來產(chǎn)生行同步信號hs;場同步信號產(chǎn)生模塊根據(jù)v_cnt的計數(shù)值來產(chǎn)生場同步信號vs。消隱信號產(chǎn)生模塊根據(jù)h_cn
6、t的計數(shù)值在行同步期間、行消隱前肩和行消隱后肩,把消隱信號blank置為低電平;根據(jù)v_cnt的計數(shù)值在每一場的場同步期間、場消隱前肩和場消隱后肩,把消隱信號blank置為低電平;其余時間消隱信號blank為高電平,表示此時為有效顯示期。并行輸入串行輸出模塊在有效顯示期間從sram顯存中并行讀入數(shù)據(jù),串行輸出的顯示器的紅、綠、藍信號線上。對該程序編譯成功后用MaxplussII軟件進行波形仿真,以驗證設(shè)計的合理與否。最后設(shè)計完成的時序波形仿真如圖3所示。圖 3 VGA顯示控制器時序仿真圖 從仿真波形圖種可以看到每一顯示行的時間為800
7、個象素時鐘周期,每場包括525行。行同步脈沖的寬度為96個象素時鐘周期,場同步脈沖的寬度為2行。在行同步信號hs的行同步期間及其前肩和后肩,消隱信號blank為低電平,表示消隱期。在場同步信號vs的場同步期間及其前肩和后肩,消隱信號blank同樣為低電平,表示消隱期。仿真結(jié)果符合VGA標準時序,項目實際應(yīng)用也證明了此結(jié)果的正確性。1.2 VGA顯示底層函數(shù)的編寫 要在屏幕上顯示信息,除VGA顯示控制器之外,還需要并在ATMEGA128單片機上設(shè)計底層繪圖函數(shù)并建立字符庫。通常編寫畫線、畫圓函數(shù)時,確定一個點是否在直線或圓上,需要乘、除法和開方運算,而畫線、畫
8、圓函數(shù)調(diào)用最為頻繁,因此計算量將大到難以接受的程度,極大降低系統(tǒng)的性能。為了克服上述缺點,在編寫底層繪圖函數(shù)時采用了圖形學(xué)上的Bresenham void circle(unsigned int x0,unsigned int y0,unsigned int r,unsigned char color) register int x,y,deltax,deltay,d;x=0;y=r;deltax=3;deltay=2-r-r;d=1-r; while(x<=y)
9、160; drawpixel(x0+x,y0+y,color); drawpixel(x0-x,y0+y,color);
10、0; drawpixel(x0-x,y0-y,color); drawpixel(x0+x,y0-y,color);
11、 drawpixel(x0+y,y0+x,color); drawpixel(x0-y,y0
12、+x,color); drawpixel(x0-y,y0-x,color); drawpixel(x0+y,y0-x,color);
13、 if(d<0) d+=deltax; deltax+=2;
14、60; x+; else d+=
15、(deltax+deltay); deltax+=2;deltay+=2; x+;y-;
16、0; 畫線算法和中點畫圓法3,通過象素逼近,采用增量計算,使得確定點是否在直線或圓上的復(fù)雜運算變?yōu)榧臃ㄟ\算,非常適合微控制器的特點,極大得提高了繪圖速度。我們從Windows系統(tǒng)中提取了12×12和96×96象素的09數(shù)字字庫,16×16象素的常用
17、ASCII字符字庫。有了底層繪圖函數(shù)和字符庫,ATMEGA128單片機便可通過VGA顯示控制器實現(xiàn)在屏幕任意位置顯示圖形或者文字信息。右面是用ICCAVR編寫的ATMEGA128在VGA顯示器上實現(xiàn)中點畫圓法的例程及其實現(xiàn)示意圖。只需用增量法找到1/8圓上的點,其它點在中心對稱位置。2 激光打印機的控制 激光打印機是目前最常用輸出設(shè)備之一,和熱敏、噴墨打印機相比具有顯著的優(yōu)點,下面介紹用ATMEGA128微控制器直接控制激光打印機打印VGA顯示器屏幕內(nèi)容的方法。要控制打印機必須了解打印機命令語言。打印機語言指的是控制打印機工作的命令,它控制打印機
18、如何組織被打印的文檔,打印機按照這些命令來處理打印數(shù)據(jù),并最終準確的打印出文字與圖像。2.1 PCL打印機命令語言 PCL打印機命令語言是世界上應(yīng)用最為廣泛的標準打印機命令語言,由惠普公司開發(fā),支持文字、點陣圖像和矢量圖形的打印。PCL命令由2個以上的字符組成,總是以控制字符ESC開始,用符合EC 表示,其ASCII碼為27,所以PCL命令又被 圖 4 中點畫圓法示意圖稱作ESC序列。當打印機接收到字符EC時,表示開始接收一條控制命令。PCL命令包括“兩字符”命令序列和“參數(shù)化”命令序列兩種ESC序列。
19、0; “兩字符”命令序列的格式如下:EC X,其中符號X代表ASCII碼48126的字符,即ASCII字符表中“0” 和“”之間的字符。符號X指示打印機需要進行的操作,例如命令“EC E”是打印機復(fù)位命令,命令“EC g”把紙張的左邊距和上邊距復(fù)位成默認值?!皡?shù)化”命令序列格式如下:EC X y z1 # z2 # z3 . # Zndata ,其中EC為起始字符,X是參數(shù)化字符,代表ASCII碼3347之間字符,其作用是指明該序列是“參數(shù)化”序列;y為組字符,代表ASCII碼96126之間字符,用來指定待執(zhí)行的操作屬于什么組;#是數(shù)值域,其范圍從-32767到65535;z i是本命令的參
20、數(shù),代表ASCII碼從96126之間字符,該參數(shù)用于組合的“參數(shù)化”序列,非組合序列則不用,其作用是指定前面的數(shù)值域所用的參數(shù);Zn是結(jié)束字符,表示“參數(shù)化”命令序列結(jié)束;data 是傳送到打印機的待打印數(shù)據(jù),用8個bit表示,即為0255之間任意數(shù)據(jù)。下面兩例分別是非組合的“參數(shù)化”命令序列和組合的“參數(shù)化”命令序:1 2 1是非組合序列,不含參數(shù)。2是組合序列,由序列EC &l1O 和 EC&l2A組合而成,其中小寫的字符“o”是該序列的參數(shù)4。各種命令
21、序列的詳細說明見參考文獻4。2.2 打印屏幕 ATMEGA128單片機的IO口和激光打印機的并口由如下信號連接: Strobe、Busy、GND、D0D7共11根信號線。其中D0D7是數(shù)據(jù)線,單片機通過數(shù)據(jù)線把控制打印機的PCL命令和待打印數(shù)據(jù)傳送到打印機;Busy信號線指示打印機狀態(tài)是否繁忙;Strobe 信號線是選通控制線,單片機在Strobe 信號線上輸出一個低電平脈沖即可把D0D7上的數(shù)據(jù)寫人打印機。在論文的第一部分曾經(jīng)提到,VGA顯示器所顯示的內(nèi)容存儲在SRAM顯存中,每一個bit代表一個象素,因此打印屏幕就是把顯存中的數(shù)據(jù)打印出來。ATMEGA1
22、28單片機首先發(fā)送PCL語言的打印機設(shè)置命令,對打印進行設(shè)置,然后即可傳送打印數(shù)據(jù)。其步驟如下:1、發(fā)打印機復(fù)位命令;2、發(fā)設(shè)置紙張大小命令;3、發(fā)設(shè)置打印的起始位置命令;4、發(fā)設(shè)置分辨率命令;5、發(fā)設(shè)置打印機為點陣圖形模式命令;5、傳送要打印的數(shù)據(jù);6、發(fā)結(jié)束圖形模式命令;7、發(fā)換頁指令,打印當前頁。下面是ATMEGA128單片機對HP LASERJET6L激光打印機發(fā)送PCL命令,并控制打印機打印輸出VGA屏幕信息的例程:void print()unsigned int M; unsigned char i; unsigned char xdata *p;p=NVRS;out(27);out('E');/打印機復(fù)位out(27); pprint("&l26A");/ 設(shè)置紙張為A4out(27); pprint("*p210X
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度市政管溝施工質(zhì)量驗收合同
- 2025年光伏發(fā)電項目環(huán)境保護與資源節(jié)約利用合同樣本
- 2025年度電子商務(wù)平臺用戶數(shù)據(jù)保密合同
- 2025年度住宅交房前期全面物業(yè)服務(wù)綜合管理合同
- 2025年度大型企業(yè)集團品牌使用權(quán)轉(zhuǎn)讓合同
- 2025年度橋梁加固改造工程施工合同范本
- 2025年度智能物流配送中心貨物運輸承包合同協(xié)議書
- 2025年度海上貨物運輸合同:船舶燃油供應(yīng)與運輸合同
- 2025年度二零二五文化旅游產(chǎn)業(yè)合作開發(fā)合同
- 2025年度個人信用擔(dān)保合同范本(車輛貸款專用)
- 2023年小升初簡歷下載
- 廣府文化的奇葩
- 公路工程標準施工招標文件(2018年版)解析
- 煉鋼廠增效降本攻關(guān)方案
- 七年級地理下冊期末試卷(人教版)
- 第八節(jié) 元代散曲
- 《自動化專業(yè)導(dǎo)論》課程教學(xué)大綱
- 三年級上語文開學(xué)第一課
- 消防設(shè)施維護與日常檢查培訓(xùn)講義
- 良性陣發(fā)性位置性眩暈完整版本課件
- 典當業(yè)務(wù)計劃方案
評論
0/150
提交評論