版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《單片機原理及應(yīng)用》課程設(shè)計</p><p> 題目 128*64點陣LCD的顯示 </p><p> 院系 信息學(xué)院 </p><p> 專業(yè) 通信工程 </p><p> 姓名 XXX </p&g
2、t;<p> 學(xué)號 XXXXX </p><p> 指導(dǎo)老師 XXX </p><p> 報告日期 2009.09.10 </p><p> 1. 題目:128*64點陣LCD的顯示</p><p><b> 2. 原理簡述&l
3、t;/b></p><p> 12864點陣液晶顯示模塊(LCM)就是由128*64個液晶顯示點組成的一個128列*64行的陣列。每個顯示點對應(yīng)一位二進制數(shù),1表示亮,0表示滅。存儲這些點陣信息的RAM稱為顯示數(shù)據(jù)存儲器。要顯示某個圖形或漢字就是將相應(yīng)的點陣信息寫入到相應(yīng)的存儲單元中。圖形或漢字的點陣信息當(dāng)然由自己設(shè)計,問題的關(guān)鍵就是顯示點在液晶屏上的位置(行和列)與其在存儲器中的地址之間的關(guān)系。<
4、/p><p> 由于多數(shù)液晶顯示模塊的驅(qū)動電路是由一片行驅(qū)動器和兩片列驅(qū)動器構(gòu)成,所以12864液晶屏實際上是由左右兩塊獨立的64*64液晶屏拼接而成,每半屏有一個512*8 bits顯示數(shù)據(jù)RAM。左右半屏驅(qū)動電路及存儲器分別由片選信號CS1和CS2選擇。(少數(shù)廠商為了簡化用戶設(shè)計,在模塊中增加譯碼電路,使得128*64液晶屏就是一個整屏,只需一個片選信號。)</p><p> 顯示點在
5、64*64液晶屏上的位置由行號(line,0~63)與列號(column,0~63)確定。512*8 bits RAM中某個存儲單元的地址由頁地址(Xpage,0~7)和列地址(Yaddress,0~63)確定。每個存儲單元存儲8個液晶點的顯示信息。</p><p> 為了使液晶點位置信息與存儲地址的對應(yīng)關(guān)系更直觀關(guān),將64*64液晶屏從上至下8等分為8個顯示塊,每塊包括8行*64列個點陣。每列中的8行點陣信息
6、構(gòu)成一個8bits二進制數(shù),存儲在一個存儲單元中。(需要注意:二進制的高低有效位順序與行號對應(yīng)關(guān)系因不同商家而不同)存放一個顯示塊的RAM區(qū)稱為存儲頁。即64*64液晶屏的點陣信息存儲在8個存儲頁中,每頁64個字節(jié),每個字節(jié)存儲一列(8行)點陣信息。因此存儲單元地址包括頁地址(Xpage,0~7)和列地址(Yaddress,0~63)。</p><p><b> 應(yīng)用系統(tǒng)的基本原理</b>
7、</p><p> 外圍設(shè)備器件工作原理</p><p> 12864點陣型LCD簡介</p><p> 12864是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器/列驅(qū)動器及128×64全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示8×4個(16×16點陣)漢字。</p><p> 表1:12864LCD的
8、引腳說明</p><p> 在使用12864LCD前先必須了解以下功能器件才能進行編程。12864內(nèi)部功能器件及相關(guān)功能如下:</p><p> 1. 指令寄存器(IR)</p><p> IR是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對應(yīng)。當(dāng)D/I=0時,在E信號下降沿的作用下,指令碼寫入IR。</p><p> 2.?dāng)?shù)據(jù)寄存器(DR)&
9、lt;/p><p> DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應(yīng)。當(dāng)D/I=1時,在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動執(zhí)行的。</p><p><b> 3.忙標志:BF</b></p><p> BF標志提供內(nèi)部工作情況。BF=1表示
10、模塊在內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。</p><p> 利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗?zāi)K之工作狀態(tài)。</p><p> 4.顯示控制觸發(fā)器DFF</p><p> 此觸發(fā)器是用于模塊屏幕顯示開和關(guān)的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的
11、內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。</p><p> DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。</p><p><b> 5.XY地址計數(shù)器</b></p><p> XY地址計數(shù)器是一個9位計數(shù)器。高3位是X地址計數(shù)器,低6位為Y地址計數(shù)器,XY地址計數(shù)器實際上是作為DDRAM的
12、地址指針,X地址計數(shù)器為DDRAM的頁指針,Y地址計數(shù)器為DDRAM的Y地址指針。</p><p> X地址計數(shù)器是沒有記數(shù)功能的,只能用指令設(shè)置。</p><p> Y地址計數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動加1,Y地址指針從0到63。</p><p> 6.顯示數(shù)據(jù)RAM(DDRAM)</p><p> DDRAM
13、是存儲圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見DDRAM地址表。</p><p><b> 7.Z地址計數(shù)器</b></p><p> Z地址計數(shù)器是一個6位計數(shù)器,此計數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計數(shù)器自動加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計數(shù)器為0。<
14、;/p><p> Z地址計數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動顯示64行。</p><p> 12864LCD的指令系統(tǒng)及時序</p><p> 該類液晶顯示模塊(即KS0108B及其兼容控制驅(qū)動器)的指令系統(tǒng)比較
15、簡單,總共只有七種。其指令表如表2所示:</p><p> 表2:12864LCD指令表</p><p> 各功能指令分別介紹如下。</p><p><b> 顯示開/關(guān)指令 </b></p><p> 當(dāng)DB0=1時,LCD顯示RAM中的內(nèi)容;DB0=0時,關(guān)閉顯示。</p><p>
16、 2、顯示起始行(ROW)設(shè)置指令</p><p> 該指令設(shè)置了對應(yīng)液晶屏最上一行的顯示RAM的行號,有規(guī)律地改變顯示起始行,可以使LCD實現(xiàn)顯示滾屏的效果。</p><p> 3、頁(PAGE)設(shè)置指令</p><p> 顯示RAM共64行,分8頁,每頁8行。</p><p> 4、列地址(Y Address)設(shè)置指令</p
17、><p> 設(shè)置了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,這樣MPU就可以</p><p> 用讀、寫指令讀出該單元中的內(nèi)容或向該單元寫進一個字節(jié)數(shù)據(jù)。</p><p><b> 5、讀狀態(tài)指令</b></p><p> 該指令用來查詢液晶顯示模塊內(nèi)部控制器的狀態(tài),各參量含義如下:</p>
18、<p> BUSY:1-內(nèi)部在工作0-正常狀態(tài)</p><p> ON/OFF:1-顯示關(guān)閉0-顯示打開</p><p> RESET:1-復(fù)位狀態(tài)0-正常狀態(tài)</p><p> 在BUSY和RESET狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對液晶顯示模塊產(chǎn)生作用。</p><p> 在對液晶顯示模塊操作之前要查詢BUSY狀態(tài)
19、,以確定是否可以對液晶顯示模塊進行操作。</p><p><b> 6、寫數(shù)據(jù)指令</b></p><p><b> 讀數(shù)據(jù)指令 </b></p><p> 讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。</p&
20、gt;<p> 3. 單片機應(yīng)用系統(tǒng)軟件設(shè)計</p><p><b> 源程序</b></p><p> ;****************接口設(shè)置****************</p><p> RSEQUp1.5</p><p> RWEQUp1.4</p><p
21、> E EQUP1.3 </p><p> ;-----------------------------------------------</p><p> COUNT EQU31H</p><p> STORE EQU32H</p><p> ;---------------------------
22、--------------------</p><p><b> ORG0000H</b></p><p><b> LJMPMAIN</b></p><p><b> ORG0100H</b></p><p> ;-----------------------
23、------------------------</p><p><b> MAIN:</b></p><p> MOV SP,#5FH</p><p> LCALL DELAY1</p><p><b> NOP</b></p><p> ;*********
24、***********LCD初始化**********************</p><p> LGS0: MOVA,#34H;34H--擴充指令操作</p><p> LCALL SEND_I</p><p> MOVA,#30H;30H--基本指令操作</p><p> LCALL SEND_I</p&
25、gt;<p> MOVA,#01H;清除顯示</p><p> LCALL SEND_I</p><p> MOVA,#06H;指定在資料寫入或讀取時,光標的移動方向</p><p> LCALL SEND_I ;DDRAM 的地址計數(shù)器(AC)加1</p><p> MOVA,#0CH
26、;開顯示,關(guān)光標,不閃爍</p><p> LCALL SEND_I</p><p> ;=================================================</p><p><b> ;顯示漢字和字符</b></p><p> ;加入80ms的延時,動態(tài)顯示</p>
27、<p> ;=================================================</p><p><b> HAN_WR2:</b></p><p> LCALL CLEAR_P</p><p><b> HAN_WR2A:</b></p><p>
28、 MOVDPTR,#TAB1A;顯示漢字和字符</p><p> MOVCOUNT,#10H ;地址計數(shù)器設(shè)為16。</p><p> MOVA,#80H ;第一行起始地址</p><p> LCALL SEND_I</p><p> LCALL QUSHU</p><p&g
29、t;<b> HAN_WR2B:</b></p><p> MOVDPTR,#TAB1B;顯示漢字和字符</p><p> MOVCOUNT,#10H ;地址計數(shù)器設(shè)為16。</p><p> MOVA,#90H ;第二行起始地址</p><p> LCALL SEND_I&
30、lt;/p><p> LCALL QUSHU</p><p><b> HAN_WR2C:</b></p><p> MOVDPTR,#TAB1C;顯示漢字和字符</p><p> MOVCOUNT,#10H ;地址計數(shù)器設(shè)為16。</p><p> MOVA,#88H
31、 ;第三行起始地址</p><p> LCALL SEND_I</p><p> LCALL QUSHU</p><p><b> HAN_WR2D:</b></p><p> MOVDPTR,#TAB1D ;顯示漢字和字符</p><p> MOVCOUNT,#10
32、H ;地址計數(shù)器設(shè)為16。</p><p> MOVA,#98H ;第四行起始地址</p><p> LCALL SEND_I</p><p> LCALL QUSHU</p><p> LCALL DELAY</p><p> LCALL CLEAR_P</p>
33、<p> AJMP MAIN</p><p> ;==================================================</p><p><b> ;清屏</b></p><p> ;==================================================<
34、/p><p><b> CLEAR_P:</b></p><p> MOVA,#01H ;清屏</p><p> LCALL SEND_I</p><p> MOVA,#34H</p><p> LCALL SEND_I</p><p> M
35、OVA,#30H</p><p> LCALL SEND_I</p><p><b> RET</b></p><p> ;==================================================</p><p><b> ;查表取數(shù)據(jù)送顯示</b></p
36、><p> ;==================================================</p><p><b> QUSHU:</b></p><p><b> CLRA</b></p><p> MOVC A,@A+DPTR ;查表取數(shù)據(jù)</p
37、><p> LCALL SEND_D ;送顯示</p><p><b> INCDPTR</b></p><p> LCALL DELAY1 ;延時80ms,</p><p> DJNZ COUNT,QUSHU</p><p><b> RE
38、T</b></p><p> ;===============================================</p><p><b> ;寫數(shù)據(jù)子程序</b></p><p> ;RS=1,RW=0,E=高脈沖,D0-D7=數(shù)據(jù)</p><p> ;=================
39、==============================</p><p><b> SEND_D:</b></p><p> LCALLCHK_BUSY ;寫數(shù)據(jù)子程序</p><p><b> SETBRS</b></p><p> CLR RW</p&
40、gt;<p> MOV P0,A</p><p><b> SETBE</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> CLR E</p><p&
41、gt;<b> RET</b></p><p> ;===============================================</p><p><b> ;寫指令子程序</b></p><p> ;RS=0,RW=0,E=高脈沖,D0-D7=指令碼</p><p> ;
42、===============================================</p><p><b> SEND_I:</b></p><p> LCALL CHK_BUSY</p><p><b> CLRRS</b></p><p><b> CLRRW&
43、lt;/b></p><p><b> MOVP0,A</b></p><p><b> SETB E</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p>&l
44、t;b> CLRE</b></p><p><b> RET</b></p><p> ;================================================</p><p><b> ;讀數(shù)據(jù)子程序</b></p><p> ;RS=1,R
45、W=1,E=H,D0-D7=數(shù)據(jù)</p><p> ;================================================</p><p><b> READ_D:</b></p><p> LCALL CHK_BUSY ;讀數(shù)據(jù)子程序</p><p><b> SET
46、BRS</b></p><p><b> SETBRW</b></p><p><b> SETBE</b></p><p><b> NOP</b></p><p><b> MOVA,P0</b></p>&l
47、t;p><b> CLRE</b></p><p> MOVSTORE,A</p><p><b> RET</b></p><p> ;================================================</p><p><b> ;;測忙
48、碌子程序</b></p><p> ;RS=0,RW=1,E=H,D0-D7=狀態(tài)字</p><p> ;================================================</p><p><b> CHK_BUSY:</b></p><p> MOVP0,#0FFH
49、 ;測忙碌子程序</p><p><b> CLRRS</b></p><p><b> SETBRW</b></p><p><b> SETBE</b></p><p><b> JBP0.7,$</b></p>&l
50、t;p><b> CLRE</b></p><p><b> RET</b></p><p> ;================================================</p><p><b> ;延時子程序</b></p><p>
51、 ;================================================</p><p><b> DELAY:</b></p><p> MOVR5,#16H</p><p> DEL31: MOVR6,#0FFH</p><p> DEL32: MOVR7,#0F
52、FH</p><p> HDEL33: DJNZR7,HDEL33</p><p> DJNZR6,DEL32</p><p> DJNZR5,DEL31</p><p><b> RET</b></p><p><b> DELAY1:</b><
53、/p><p> MOVR6,#200</p><p> DEL41: MOVR7,#200</p><p> DEL42: DJNZR7,DEL42</p><p> DJNZR6,DEL41</p><p><b> RET</b></p><p&g
54、t; ;***********************************************</p><p><b> TAB1:</b></p><p> TAB1A: DB '單片課程設(shè)計 ' ;顯示在第一行</p><p> TAB1B: DB '指導(dǎo)老師:李燁
55、' ;顯示在第二行</p><p> TAB1C: DB ' 李想 ' ;顯示在第三行</p><p> TAB1D: DB ' AP0605414 ' ;顯示在第四行</p><p><b> END</b></p>
56、<p><b> 5、結(jié)果</b></p><p> 增加延時可以以動態(tài)方式顯示。</p><p><b> 6、參考文獻</b></p><p> 《單片機課程設(shè)計指導(dǎo)》,樓然苗,北京航空航天大學(xué)出版社</p><p> 《C51單片機技術(shù)教程》,田希揮,人民郵電出版社<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--1616點陣顯示實驗
- 單片機原理與應(yīng)用課程設(shè)計---16x16點陣顯示
- 16乘16點陣顯示單片機課程設(shè)計
- 單片機課程設(shè)計---16乘16點陣顯示
- 單片機課程設(shè)計--lcd12864液晶顯示
- lcd顯示設(shè)計單片機課程設(shè)計
- 單片機lcd系統(tǒng)顯示課程設(shè)計
- lcd單片機原理課程設(shè)計
- 單片機課程設(shè)計----led點陣漢字顯示
- 基于單片機的led點陣顯示課程設(shè)計
- 單片機課程設(shè)計lcd顯示屏設(shè)計
- 單片機課程設(shè)計--16x16點陣led電子顯示屏的設(shè)計
- 單片機原理及應(yīng)用課程設(shè)計--點陣式液晶顯示屏的顯示程序設(shè)計
- 單片機課程設(shè)計--點陣顯示器報告
- 課程設(shè)計---基于單片機的lcd顯示系統(tǒng)設(shè)計
- eda課程設(shè)計--1616點陣顯示
- eda課程設(shè)計-- 1616點陣顯示
- 單片機課程設(shè)計---單片機原理及應(yīng)用
- 單片機課程設(shè)計--帶有l(wèi)cd顯示的定時鬧鐘
- 單片機課程設(shè)計-- 單片機原理及應(yīng)用
評論
0/150
提交評論