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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)</p><p>  題目 128*64點(diǎn)陣LCD的顯示 </p><p>  院系 信息學(xué)院 </p><p>  專(zhuān)業(yè) 通信工程 </p><p>  姓名 XXX </p&g

2、t;<p>  學(xué)號(hào) XXXXX </p><p>  指導(dǎo)老師 XXX </p><p>  報(bào)告日期 2009.09.10 </p><p>  1. 題目:128*64點(diǎn)陣LCD的顯示</p><p><b>  2. 原理簡(jiǎn)述&l

3、t;/b></p><p>  12864點(diǎn)陣液晶顯示模塊(LCM)就是由128*64個(gè)液晶顯示點(diǎn)組成的一個(gè)128列*64行的陣列。每個(gè)顯示點(diǎn)對(duì)應(yīng)一位二進(jìn)制數(shù),1表示亮,0表示滅。存儲(chǔ)這些點(diǎn)陣信息的RAM稱(chēng)為顯示數(shù)據(jù)存儲(chǔ)器。要顯示某個(gè)圖形或漢字就是將相應(yīng)的點(diǎn)陣信息寫(xiě)入到相應(yīng)的存儲(chǔ)單元中。圖形或漢字的點(diǎn)陣信息當(dāng)然由自己設(shè)計(jì),問(wèn)題的關(guān)鍵就是顯示點(diǎn)在液晶屏上的位置(行和列)與其在存儲(chǔ)器中的地址之間的關(guān)系。<

4、/p><p>  由于多數(shù)液晶顯示模塊的驅(qū)動(dòng)電路是由一片行驅(qū)動(dòng)器和兩片列驅(qū)動(dòng)器構(gòu)成,所以12864液晶屏實(shí)際上是由左右兩塊獨(dú)立的64*64液晶屏拼接而成,每半屏有一個(gè)512*8 bits顯示數(shù)據(jù)RAM。左右半屏驅(qū)動(dòng)電路及存儲(chǔ)器分別由片選信號(hào)CS1和CS2選擇。(少數(shù)廠商為了簡(jiǎn)化用戶(hù)設(shè)計(jì),在模塊中增加譯碼電路,使得128*64液晶屏就是一個(gè)整屏,只需一個(gè)片選信號(hào)。)</p><p>  顯示點(diǎn)在

5、64*64液晶屏上的位置由行號(hào)(line,0~63)與列號(hào)(column,0~63)確定。512*8 bits RAM中某個(gè)存儲(chǔ)單元的地址由頁(yè)地址(Xpage,0~7)和列地址(Yaddress,0~63)確定。每個(gè)存儲(chǔ)單元存儲(chǔ)8個(gè)液晶點(diǎn)的顯示信息。</p><p>  為了使液晶點(diǎn)位置信息與存儲(chǔ)地址的對(duì)應(yīng)關(guān)系更直觀關(guān),將64*64液晶屏從上至下8等分為8個(gè)顯示塊,每塊包括8行*64列個(gè)點(diǎn)陣。每列中的8行點(diǎn)陣信息

6、構(gòu)成一個(gè)8bits二進(jìn)制數(shù),存儲(chǔ)在一個(gè)存儲(chǔ)單元中。(需要注意:二進(jìn)制的高低有效位順序與行號(hào)對(duì)應(yīng)關(guān)系因不同商家而不同)存放一個(gè)顯示塊的RAM區(qū)稱(chēng)為存儲(chǔ)頁(yè)。即64*64液晶屏的點(diǎn)陣信息存儲(chǔ)在8個(gè)存儲(chǔ)頁(yè)中,每頁(yè)64個(gè)字節(jié),每個(gè)字節(jié)存儲(chǔ)一列(8行)點(diǎn)陣信息。因此存儲(chǔ)單元地址包括頁(yè)地址(Xpage,0~7)和列地址(Yaddress,0~63)。</p><p><b>  應(yīng)用系統(tǒng)的基本原理</b>

7、</p><p>  外圍設(shè)備器件工作原理</p><p>  12864點(diǎn)陣型LCD簡(jiǎn)介</p><p>  12864是一種圖形點(diǎn)陣液晶顯示器,它主要由行驅(qū)動(dòng)器/列驅(qū)動(dòng)器及128×64全點(diǎn)陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示8×4個(gè)(16×16點(diǎn)陣)漢字。</p><p>  表1:12864LCD的

8、引腳說(shuō)明</p><p>  在使用12864LCD前先必須了解以下功能器件才能進(jìn)行編程。12864內(nèi)部功能器件及相關(guān)功能如下:</p><p>  1. 指令寄存器(IR)</p><p>  IR是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對(duì)應(yīng)。當(dāng)D/I=0時(shí),在E信號(hào)下降沿的作用下,指令碼寫(xiě)入IR。</p><p>  2.?dāng)?shù)據(jù)寄存器(DR)&

9、lt;/p><p>  DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對(duì)應(yīng)。當(dāng)D/I=1時(shí),在下降沿作用下,圖形顯示數(shù)據(jù)寫(xiě)入DR,或在E信號(hào)高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內(nèi)部自動(dòng)執(zhí)行的。</p><p><b>  3.忙標(biāo)志:BF</b></p><p>  BF標(biāo)志提供內(nèi)部工作情況。BF=1表示

10、模塊在內(nèi)部操作,此時(shí)模塊不接受外部指令和數(shù)據(jù)。BF=0時(shí),模塊為準(zhǔn)備狀態(tài),隨時(shí)可接受外部指令和數(shù)據(jù)。</p><p>  利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗(yàn)?zāi)K之工作狀態(tài)。</p><p>  4.顯示控制觸發(fā)器DFF</p><p>  此觸發(fā)器是用于模塊屏幕顯示開(kāi)和關(guān)的控制。DFF=1為開(kāi)顯示(DISPLAY OFF),DDRAM的

11、內(nèi)容就顯示在屏幕上,DFF=0為關(guān)顯示(DISPLAY OFF)。</p><p>  DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號(hào)控制的。</p><p><b>  5.XY地址計(jì)數(shù)器</b></p><p>  XY地址計(jì)數(shù)器是一個(gè)9位計(jì)數(shù)器。高3位是X地址計(jì)數(shù)器,低6位為Y地址計(jì)數(shù)器,XY地址計(jì)數(shù)器實(shí)際上是作為DDRAM的

12、地址指針,X地址計(jì)數(shù)器為DDRAM的頁(yè)指針,Y地址計(jì)數(shù)器為DDRAM的Y地址指針。</p><p>  X地址計(jì)數(shù)器是沒(méi)有記數(shù)功能的,只能用指令設(shè)置。</p><p>  Y地址計(jì)數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫(xiě)入后,Y地址自動(dòng)加1,Y地址指針從0到63。</p><p>  6.顯示數(shù)據(jù)RAM(DDRAM)</p><p>  DDRAM

13、是存儲(chǔ)圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關(guān)系見(jiàn)DDRAM地址表。</p><p><b>  7.Z地址計(jì)數(shù)器</b></p><p>  Z地址計(jì)數(shù)器是一個(gè)6位計(jì)數(shù)器,此計(jì)數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當(dāng)一行掃描完成,此地址計(jì)數(shù)器自動(dòng)加1,指向下一行掃描數(shù)據(jù),RST復(fù)位后Z地址計(jì)數(shù)器為0。<

14、;/p><p>  Z地址計(jì)數(shù)器可以用指令DISPLAY START LINE預(yù)置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開(kāi)始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動(dòng)顯示64行。</p><p>  12864LCD的指令系統(tǒng)及時(shí)序</p><p>  該類(lèi)液晶顯示模塊(即KS0108B及其兼容控制驅(qū)動(dòng)器)的指令系統(tǒng)比較

15、簡(jiǎn)單,總共只有七種。其指令表如表2所示:</p><p>  表2:12864LCD指令表</p><p>  各功能指令分別介紹如下。</p><p><b>  顯示開(kāi)/關(guān)指令 </b></p><p>  當(dāng)DB0=1時(shí),LCD顯示RAM中的內(nèi)容;DB0=0時(shí),關(guān)閉顯示。</p><p> 

16、 2、顯示起始行(ROW)設(shè)置指令</p><p>  該指令設(shè)置了對(duì)應(yīng)液晶屏最上一行的顯示RAM的行號(hào),有規(guī)律地改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾屏的效果。</p><p>  3、頁(yè)(PAGE)設(shè)置指令</p><p>  顯示RAM共64行,分8頁(yè),每頁(yè)8行。</p><p>  4、列地址(Y Address)設(shè)置指令</p

17、><p>  設(shè)置了頁(yè)地址和列地址,就唯一確定了顯示RAM中的一個(gè)單元,這樣MPU就可以</p><p>  用讀、寫(xiě)指令讀出該單元中的內(nèi)容或向該單元寫(xiě)進(jìn)一個(gè)字節(jié)數(shù)據(jù)。</p><p><b>  5、讀狀態(tài)指令</b></p><p>  該指令用來(lái)查詢(xún)液晶顯示模塊內(nèi)部控制器的狀態(tài),各參量含義如下:</p>

18、<p>  BUSY:1-內(nèi)部在工作0-正常狀態(tài)</p><p>  ON/OFF:1-顯示關(guān)閉0-顯示打開(kāi)</p><p>  RESET:1-復(fù)位狀態(tài)0-正常狀態(tài)</p><p>  在BUSY和RESET狀態(tài)時(shí),除讀狀態(tài)指令外,其它指令均不對(duì)液晶顯示模塊產(chǎn)生作用。</p><p>  在對(duì)液晶顯示模塊操作之前要查詢(xún)BUSY狀態(tài)

19、,以確定是否可以對(duì)液晶顯示模塊進(jìn)行操作。</p><p><b>  6、寫(xiě)數(shù)據(jù)指令</b></p><p><b>  讀數(shù)據(jù)指令 </b></p><p>  讀、寫(xiě)數(shù)據(jù)指令每執(zhí)行完一次讀、寫(xiě)操作,列地址就自動(dòng)增一。必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù)。</p&

20、gt;<p>  3. 單片機(jī)應(yīng)用系統(tǒng)軟件設(shè)計(jì)</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--擴(kuò)充指令操作</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;指定在資料寫(xiě)入或讀取時(shí),光標(biāo)的移動(dòng)方向</p><p>  LCALL SEND_I ;DDRAM 的地址計(jì)數(shù)器(AC)加1</p><p>  MOVA,#0CH

26、;開(kāi)顯示,關(guān)光標(biāo),不閃爍</p><p>  LCALL SEND_I</p><p>  ;=================================================</p><p><b>  ;顯示漢字和字符</b></p><p>  ;加入80ms的延時(shí),動(dòng)態(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 ;地址計(jì)數(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 ;地址計(jì)數(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 ;地址計(jì)數(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 ;地址計(jì)數(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 ;延時(shí)80ms,</p><p>  DJNZ COUNT,QUSHU</p><p><b>  RE

38、T</b></p><p>  ;===============================================</p><p><b>  ;寫(xiě)數(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 ;寫(xiě)數(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>  ;寫(xiě)指令子程序</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>  ;;測(cè)忙

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、 ;測(cè)忙碌子程序</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>  ;延時(shí)子程序</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è)計(jì) ' ;顯示在第一行</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>  增加延時(shí)可以以動(dòng)態(tài)方式顯示。</p><p><b>  6、參考文獻(xiàn)</b></p><p>  《單片機(jī)課程設(shè)計(jì)指導(dǎo)》,樓然苗,北京航空航天大學(xué)出版社</p><p>  《C51單片機(jī)技術(shù)教程》,田希揮,人民郵電出版社<

溫馨提示

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

評(píng)論

0/150

提交評(píng)論