單片機控制裝置與調(diào)試任務九點陣顯示_第1頁
單片機控制裝置與調(diào)試任務九點陣顯示_第2頁
單片機控制裝置與調(diào)試任務九點陣顯示_第3頁
單片機控制裝置與調(diào)試任務九點陣顯示_第4頁
單片機控制裝置與調(diào)試任務九點陣顯示_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

任務九點陣顯示應用一、任務背景知識1.點陣屏的內(nèi)部結構及掃描原理LED點陣屏的內(nèi)部結構可以分為共陰型和共陽型兩種類型,本任務系統(tǒng)設計采用的是共陽型的LED點陣屏。其硬件電路如〔圖8.1〕所示,我們只選取了一個8*8的LED矩陣做模型,當行上有一正選通信號時,列選端四位數(shù)據(jù)為0的發(fā)光二極管便導通點亮。根據(jù)這個原理,當我們需要某圖形或文字時,只需要將要顯示的文字或圖形的編碼作為列信號跟對應的行信號進行逐次掃描,就可以逐行點亮點陣。當掃描速度大于24Hz,由于掃描時間很快,人眼的視覺有暫留效應,就可以看到顯示的是完整的圖形或文字,這樣就到達了顯示的效果。圖9-18*8共陽極LED點陣例如,假設要圖中所示64個LED顯示一個“0〞字的方框,那么首先在列1~8上寫入列編碼的信號,接著應將對應的行上加選通信號,即在行、列的信號端分別加上如〔圖8.2〕所示數(shù)據(jù),這樣,假設顯示數(shù)字為“0〞時:12345678

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● 00003E4141413E00圖9-2在點陣上所加的行信號以及列選擇信號因此,形成的列代碼為00H,00H,3EH,41H,41H,41H,3EH,00H;只要把這些代碼分別送到相應的列線上面,即可實現(xiàn)“0〞的數(shù)字顯示。送顯示代碼過程如下所示:送第一列線代碼到P3端口,同時置第一行線為“0〞,其它行線為“1〞,延時2ms左右;送第二列線代碼到P3端口,同時置第二行線為“0〞,其它行線為“1〞,延時2ms左右;如此下去,直到送完最后一列代碼,又從頭開始送。如此循環(huán)下去,當刷新頻率足夠高時〔大于24Hz〕,由于人眼的視覺暫留特性,便可得到一個穩(wěn)定的“0〞字。這就簡單的描敘了一下的點亮LED的掃描原理。 2.字庫知識在PC機的文本文件中,漢字是以機內(nèi)碼的形式存儲的,每個漢字占用兩個字節(jié)長度,計算機就是根據(jù)機內(nèi)碼的值把對應的漢字從字庫中提取出來。而每個漢字在字庫中是以點陣字模形式存儲的,如一般采用16x16點陣形式,每個點用一個二進制位表示,存1的點當顯示時可以在屏上顯示一個亮點,存0的點那么在屏上不顯示,這樣就把存某字的16x16點陣信息直接用來在顯示器上按上述原那么顯示那么將出現(xiàn)對應的漢字,如一個“亞〞字的16x16點陣字模如以下圖8.3所示,當用存儲單元存儲該字模信息時將需32個字節(jié)地址,在圖的右邊寫出了該字模對應的字節(jié)值。其規(guī)那么是:把字分成左右兩局部,第一行的左半部八位數(shù)據(jù)占用一個字節(jié)存儲,右半局部八位數(shù)據(jù)占用一個字節(jié)存儲,依次類推,16行共使用了16*2=32個字節(jié)。圖9-3亞字點陣字模(a)圖9-4亞字點陣字模(b)依據(jù)此原理,把需要用到的漢字的字模以表格的形式存儲到單片機當中,每一行以適當?shù)乃俣确謨纱嗡蛿?shù)據(jù)〔左半局部和右半局部〕,等16行全部送完后,就可顯示出一幀漢字。3.顯示屏知識同一切能夠顯示圖像的設備一樣LED顯示屏也需要一定的數(shù)據(jù)刷新率,如電視機的速率是50幀/秒,計算機顯示器是85幀/秒。實訓證明,只有不低于50幀/秒,人眼是感覺不到閃爍的。所以,由人的視覺暫留效應設計要求是每秒最低掃描LED屏50次。另外,LED具有一定的響應時間和余輝效應,如果給它的電平持續(xù)時間很短,例如1us將不能充分點亮,一般要求電平持續(xù)時間是1ms。當LED點亮后撤掉電平,它不會立即熄滅。這樣從左到右掃描完一幀,看起來就是同時亮的。4.YL-236實驗臺點陣顯示(1)點陣驅動電路分析YL-236實驗臺32列×16行的點陣顯示屏,由8個8×8共陰點陣器件構成。顯示屏實物如圖8-4所示,電路原理如圖8-5所示。圖9-532×16點陣顯示模塊實物圖圖9-632×16點陣顯示模塊電路圖U1、U2分別鎖存上半屏和下半屏數(shù)據(jù),并由ULN2803反相緩沖驅動,U3~U6鎖存列數(shù)據(jù)并直接驅動LED顯示。使用該顯示屏編程時,注意以下幾點:①向點陣發(fā)送數(shù)據(jù)時,首先將數(shù)據(jù)送總線DO~D7,然后給相關集成塊發(fā)送所鎖存信號。當74HC573的LE(ROW0,ROW1,COL0,COL1,COL2,COL3)腳為高電平時,D端數(shù)據(jù)被傳遞到其輸出端Q。當LE為低電平時,Q端數(shù)據(jù)被保持,不受D端影響。②要點亮點陣LED,發(fā)送的行列數(shù)據(jù)都是高電平有效。③行線數(shù)據(jù)是低位在上,列線數(shù)據(jù)是低位在前。例如,要點亮第1行第3列交叉處的LED。送Ox01到數(shù)據(jù)線,用ROWO鎖存數(shù)據(jù)〔先置1再清0〕,R1線變?yōu)榈碗娖?,再?x04到數(shù)據(jù)線,用col0鎖存數(shù)據(jù),那么C3線變?yōu)楦唠娖?,R1C3交叉處的LED即亮。(2)顯示屏電路實現(xiàn)的結構框圖9-7所示。二、任務分析1.工程任務用8塊8×8點陣顯示模塊完成依次顯示數(shù)字0~7。2.分析(1)可以利用前面掃描一個8×8點陣的程序。寫8個顯示函數(shù),分別對應一塊8×8點陣,分別獨立進行掃描。調(diào)用時,不同的顯示函數(shù)傳不同參數(shù),就能顯示各自的內(nèi)容。這種方法全部顯示一遍,共需掃描64次。(2)可以把8塊8×8點陣作為一個整體掃描。這時,水平掃描一遍需32次,縱向掃描一遍需要16次。顯然采用縱向掃描效率更高??v向掃描時,每一行需送4字節(jié)數(shù)據(jù),每個數(shù)據(jù)對應1塊8×8點陣。要顯示多種字符,同樣需要采用二維數(shù)組。(3)由于8塊8×8點陣分別進行掃描,效率不高,且不能兼顧亮度及閃屏問題。因此本程序用整體掃描程序方法。(4)任務所需模塊:MCU01主機模塊、MCU02電源模塊、MCU04顯示模塊。三、任務實施1.根據(jù)任務的具體分析,其接線圖如圖9-8。點陣顯示模塊+5VGNDrow0row1col0-col3D0-D7電源模塊

+5VGNDP1.0P1.1P1.2-P1.5P0-P7主機模塊+5VGND2.程序代碼#include"reg51.h"#include"intrins.h"#defineucharunsignedchar#define uintunsignedintsbitrow0=P1^0;sbitrow1=P1^1;sbitcol0=P1^2;sbitcol1=P1^3;sbitcol2=P1^4;sbitcol3=P1^5;voiddelay(uinti){while(--i);}//字模數(shù)組,一個8*8字符占1行//字模數(shù)組,一個8*8字符占1行ucharcodezm[][8]={ 0x1C,0x22,0x32,0x2A,0x26,0x22,0x1C,0x00,//-0- 0x08,0x0C,0x08,0x08,0x08,0x08,0x1C,0x00,//-1- 0x1C,0x22,0x20,0x18,0x04,0x02,0x3E,0x00,//-2- 0x3E,0x20,0x10,0x18,0x20,0x22,0x1C,0x00,//-3- 0x10,0x18,0x14,0x12,0x3E,0x10,0x10,0x00,//-4- 0x3E,0x02,0x1E,0x20,0x20,0x22,0x1C,0x00,//-5- 0x38,0x04,0x02,0x1E,0x22,0x22,0x1C,0x00,//-6- 0x3E,0x20,0x10,0x08,0x04,0x04,0x04,0x00,//-7- 0x1C,0x22,0x22,0x1C,0x22,0x22,0x1C,0x00,//-8- 0x1C,0x22,0x22,0x3C,0x20,0x10,0x0E,0x00,//-9-};ucharbuf[8];voiddisplay(){ uchari,n; uintrow=0x01; for(i=0;i<16;i++){ n=i<8?0:1; P0=zm[buf[0+4*n]][i-8*n]; col0=1;col0=0; P0=zm[buf[1+4*n]][i-8*n]; col1=1;col1=0; P0=zm[buf[2+4*n]][i-8*n]; col2=1;col2=0; P0=zm[buf[3+4*n]][i-8*n]; col3=1;col3=0; P0=row%0x100; row0=1;row0=0; P0=row/0x100; row1=1;row1=0; delay(50); row=_irol_(row,1); P0=0; row0=row1=col0=col1=col2=col3=1; row0=row1=col0=col1=col2=col3=0; }}voidmain(){ buf[0]=0;buf[1]=1;buf[2]=2;buf[3]=3; buf[4]=4;buf[5]=5;buf[6]=6;buf[7]=7; while(1){ display(); }3.實驗結果經(jīng)過程序的調(diào)試,編譯,并下載到單片機,可以在設備上顯示,也可用仿真軟件仿真,得出仿真效果圖8.8。9-9實驗顯示結果四、任務自評

通過前面的講解,相信你已經(jīng)完成了該任務,那么該任務你是否完美的完成了?那就通過下面的表格來反映吧!項目內(nèi)容完成要求分值完成情況自評分值點陣顯示應用流程設計正確20程序編寫正確30實物連線正確20調(diào)試結果正確30五、知識銜接1.取模軟件為了節(jié)省時間,且不會出錯的話,采用取模軟件,可以實現(xiàn)。如下圖,“LcmZimo〞就是一個很好的字模提取工具。用“LcmZimo〞可以自動生成0x20~0x7f的ASCII字符字模,最后一個0x7f為自定義符號。<1>設置取模方式<2>生成字模數(shù)據(jù)2.反白顯示反白就是LED原來亮的變?yōu)椴涣?,原來不亮的變?yōu)榱恋摹崿F(xiàn)反白很簡單,只要在送數(shù)據(jù)到I/O口前進行位取反即可。為便于控制顯示數(shù)據(jù),在顯示緩存中增加“附加信息〞。3.反白掃屏利用上面的程序可以實現(xiàn)反白掃屏效果。它是在正常顯示和反白顯示中交替掃描顯示的一種模式,為了測試,在緩存數(shù)組中經(jīng)常會先放入一些初始數(shù)據(jù),以便驗證顯示效果。9-10LcmZimo取模軟件4.拉幕特效利用緩存附加信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論