單片機原理及應(yīng)用課程設(shè)計---12864點陣lcd的顯示_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論