版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《單片機原理及應(yīng)用》課程設(shè)計</p><p> 題目 128*64點陣LCD的顯示 </p><p> 院系 信息學院 </p><p> 專業(yè) 通信工程 </p><p> 姓名 XXX </p&g
2、t;<p> 學號 XXXXX </p><p> 指導老師 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)的存儲單元中。圖形或漢字的點陣信息當然由自己設(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/I=0時,在E信號下降沿的作用下,指令碼寫入IR。</p><p> 2.數(shù)據(jù)寄存器(DR)&
9、lt;/p><p> DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應(yī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ù)功能,它是用于顯示行掃描同步。當一行掃描完成,此地址計數(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> 當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 '指導老師:李燁
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è)計指導》,樓然苗,北京航空航天大學出版社</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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(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
提交評論