單片機控制的LCD漢字顯示電路設計(獨家完整版).._第1頁
單片機控制的LCD漢字顯示電路設計(獨家完整版).._第2頁
單片機控制的LCD漢字顯示電路設計(獨家完整版).._第3頁
單片機控制的LCD漢字顯示電路設計(獨家完整版).._第4頁
單片機控制的LCD漢字顯示電路設計(獨家完整版).._第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機控制的LCD漢字顯示電路設計近年來,隨著電子行業的發展,單片機的應用越來越廣泛,基于單片機的電 子電路的設計也越來越多。所以,單片機在電子教學中越來越普遍。本設計介紹的是以ATMEGA單片機為核心的液晶顯示屏控制系統。該設計詳 細闡述了其工作原理、基本功能框圖、主要設計方法及工作流程。本設計提出了 一種能實時控制顯示內容的基于單片機的液晶顯示屏控制系統設計方案,給出了 該單片機的硬件電路和軟件程序,最終顯示出漢字的結果。具體方法是首先設計 并焊接出一個AVR單片機開發板,基于此開發板設計出LCD莫塊顯示電路。之后, 編寫LCD莫塊初始化程序和顯示程序。最后下載程序到單片機,LCD顯示出漢

2、字。關鍵詞:Atmega8 控制 LCD12864 顯示2Title The control circuit design of the dot-matrix liquid crystal display controlled by the microprocessorAbstractIn recent years, with the development of the electronics industry, the application of theMicroc on troller Unit is beco ming more and more widely, also, ther

3、e is more and more electronic circuit design based on the MicrocontrollerUnit. Therefore, theMicroc on troller Unit using in the electro nic teach ing is beco ming more com mon.This desig n in troduces the liquid crystal display con trol system based on the ATMEGAf microcontroller. This design elabo

4、rated on its working principle, the basic functional block diagram, main desig n methods and work ing process. This desig n puts forward toesign scheme based on the Microcontroller Unit, which can control the showing conte of the LCD screen controlling system at the real time. The specific method is

5、 that, firstly we should design and weld into an AVR Microcontroller development board and the design a LCD module display circuit based on the development board. After that, write the LCD module initialization program and displaying program. At last, download the program to the MCU, and the LCD wil

6、l show the Chinese characters.Keywords ATMEGA8 con trol LCD12864 displayi ng目次摘要 IAbstract II目次 III1概述 11.1課題背景 11.2設計要求 11.3 LCD簡介及發展 11.4 AVR單片機 22方案論證 22.1方案一 22.2方案二 32.3方案三 33主要模塊簡介 33.1 ATMEGA8簡介 33.2 LCD12864 模塊簡介 53.2.1 KXM12864主要技術參數和性能 53.2.2 KXM12864外形尺寸圖 53.2.3 KXM12864液晶顯示指令系統 63.2.4 12

7、864液晶顯示動態指標及術語 74硬件設計 94.1設計流程圖及設計思路 94.2各模塊電路設計 104.2.1電源電路 104.2.2 LCD12864模塊控制電路 114.2.3 RS232電平轉換電路 124.2.4 時鐘電路 134.3硬件焊接與調試 144.4方案擴展 145軟件設計 165.1 LCD12864模塊初始化流程 16165.2部分程序代碼 175.2.1軟件延時 175.2.2 端口輸出函數 185.2.3寫數據函數 185.2.4寫指令函數 195.2.5初始化函數 20iii526顯示函數 205.3程序調試中的注意冋題 236實物與實測效果展示 276.1實物展

8、示 276.2實測效果展示 28結論 29感言 30致謝 31參考文獻 32附錄A 33硬件原理圖(基于protel99se ) 33附錄B 34程序代碼 34附錄C. 40元器件規格清單 40IV1概述自20世紀以來,電子行業發生著翻天覆地的變化。電子行業的發展推動著社會 的發展,因此,世界各國也大力發展電子行業。其中,在電子行業中,顯示器產業 是其中尤為重要的產業之一。然而,在顯示器產業中,LCDJ術是最重要的技術之一。眾所周知,單片機像是電子行業中發揮著巨大作用的精靈。它的能耗小、價格 低廉,在簡單的電子實驗方面的應用非常廣泛,在教育教學中深受廣大電子教育工 作者的喜愛。1.1課題背景在

9、電子行業中,LCD已被公認為是媒體時代的關鍵器件,它的低功耗、體積小、 易于實現畫面顯示及優良的全色顯示性能等特點,使其在現代社會中得到了廣泛的 應用??梢哉f,LCD!本世紀初最有活力的電子產品之一。與此同時,單片機的應用領域也非常廣泛,大到導彈的導航裝置,飛機上各種 儀表的控制,小到廣泛使用的智能IC卡,比如學校中使用的校園一卡通等,這些都 離不開單片機。因此,通過使用單片機可以使我們完成很多令我們意想不到的事情。 所以,本著理論與實踐相結合的原則,本設計以單片機為核心控制器件控制LCD顯示模塊,通過硬件和軟件的共同配合實現在 128X 64點陣液晶屏上顯示漢字、字符 等的功能,本系統由AT

10、MEGA單片機和點陣式液晶顯示屏模塊構成。1.2設計要求系統硬件設計:系統選用ATMEGAB片機作為主控和處理設備,LCD1286模塊作 為輸出設備。系統軟件設計:微控制器處理和LCD模塊顯示部分的程序設計。1.3 LCD簡介及發展液晶顯示器是一種采用了液晶控制透光度技術來實現色彩的顯示器。 眾所周知, 即使長時間觀看LCD顯示屏幕也不會對眼睛造成傷害,這主要是因為 LCD顯示器沒 有輻射,畫面圖像很穩定。LCD可分為段位式LCD字符式LCD和點陣式LCD其中,段位式LCD和字符 式LCD只能用于字符和數字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求;而 點陣式LCD不僅可以顯示字符、數字,還

11、可以顯示各種圖形、曲線及漢字,并且可以實現屏幕上下左右滾動、動畫、分區開窗口、反轉、閃爍等功能,用途十分廣泛。奧地利植物學家FReinetzer在一百多年前發現了液晶。然而,到 20世紀60 年代,液晶才逐漸被人類關注。1961年,F Heimeier發現了液晶的動態散射相變等一系列的液晶電光效應。 由此,美國RCA公司成功研制了一系列數字、字符的顯示器件以及液晶顯示的鐘表、 駕駛臺顯示器等實用產品。1968年,日本當時正在興起開發電子產品的產業,將大規模集成電路與液晶相 結合,開發了一系列電子產品。從此,日本電子產業蓬勃發展,這也是日本微電子 產業聞名世界的起因?,F代液晶顯示模塊具有低電壓、

12、微功耗、易彩色化、被動顯示等特點,是主流的顯示技術之一。1.4 AVR單片機1997年,ATMEL發揮自己的技術特長,研發出了全新配置,采用精簡指令集的 新型單片機,即AVF單片機。其中,ATMEGA是 ATMEL公司在2002年第一季度推出 的一款新型高檔單片機。與MCS-51單片機不同的是,AVR單片機采用Harvard結構,在前一條指令執行 的時候就取出下一條指令,而且它的程序存儲器和數據存儲器是分開組織和尋址的。 AVR單片機內部有三種不同性能和用途的存儲器Flash、EEPRO和 RAM2方案論證2.1方案一根據本課題內容,本設計擬采用MCS-51單片機控制液晶顯示器顯示漢字。MCS

13、-51型號的單片機我曾在單片機原理、接口及應用的必修課中學習過,對該型號 單片機的結構和如何控制都比較熟悉。本次課題設計需要+5V電源為單片機及液晶顯示器提供電壓,所以,需要設計一個直流穩壓電源來提供所需的+5V電壓。結合模擬電子技術基礎所學知識,我了解到,直流穩壓電源又分為線性穩壓電源和開關 型穩壓電源。然而,對于穩定性要求不高的電子電路,整流、濾波后的直流電壓即 可以作為供電電壓。而且我們曾在模擬電子技術中學習過整流、濾波電路的理論知 識,還曾做過一個基于整流、濾波電路的直流穩壓電源的實物,所以電源電路設計 擬采用三端口穩壓器7805及整流橋電路來搭建電路以獲得+5V電壓。本次設計要求 采

14、用點陣式液晶顯示器,我想用 LCD1602乍為顯示設備。2.2方案二當我查閱了有關資料,我就發現了另一型號的單片機,即 AVR單片機。結合所 學的有關51系列單片機的知識以及對AVR單片機資料的查閱,我了解到,相比之下, AVR單片機比51系列單片機具有更加優良的性能。最重要的是, AVR單片機能夠更 高效的執行程序代碼。而且,我認為,既然已經學習過 MCS-51系列的單片機,有了 單片機的使用的基礎,就應該舉一反三,所以,我決定挑戰性地使用 AVR單片機來 完成本次畢業設計。ATmega8L單片機我曾在以前的開放性試驗中接觸過,了解到該型號單片機芯片 內部集成了較大容量的存儲器和豐富的硬件接

15、口電路,適合于本次畢業設計。而且,AVR單片機的價格又與低檔單片機的價格相差不大。所以考慮到以上幾點,我決定 對方案一進行改進,確定使用單片機 ATmega8L相比而言,方案二在方案一的基礎上做了很大的改進,方案二無論是在實現的難易程度,還是在性能的優越程度上都比方案一更佳。2.3方案三經過查閱有關點陣式液晶顯示器的資料,我發現了另一類型的點陣式液晶顯示 器即LCD12864模塊,該模塊自帶中文字庫,如果使用該模塊來完成本次設計將會更 易控制,也會使程序更加精簡。當 LCD工作在并行工作狀態時,LCD1602會占用了 CPU勺很多引腳,這會降低系統的性價比。而 LCD12864莫塊不同,它僅使

16、用幾根數 據線,就可以完成數據的通信。所以,我決定采用LCD12864莫塊即KXM12864乍為本設計的顯示設備。3主要模塊簡介3.1 ATMEGA8簡介Atmega8的數據吞吐率高達1MIPS/MHz可以減緩系統在功耗和處理速度之間 的矛盾。芯片圖:(xcK-TC(iPmcVCCCGNDCVCCC(XTALinOSCIPfiE (XTALiTOSCaireTCTQFF Top View蘇!MMdri 亠旨弓 aqslodn =05曰:MilnDd n亠口爸Em IE ffxJJ亠 QLMUZCIdnSCO o2- ?CD(ADCO,I3 AD CTJGNQ AREF 3AE-C0 3AVCC

17、JPfiSjSCKli-JMQd 宀OWE. usts-uda liBLwl-D-nl u 口m 丄宀EOUuuUJIOD.亠雖圖3.1 ATMEGA8芯片圖由上圖可知,該芯片有 PORTBPORT(和PORT三個I/O 口。其中,PDQ PD1 為串行口復用腳,PD2 PD3為外部中斷輸入復用引腳,PD4 PD5為定時器輸入復用 引腳。PC0- PC5為模數轉換輸入復用引腳,PC6為復位復用引腳。PB6 PB7為外部 時鐘信號輸入復用引腳。AVCC為端口 A與A/D轉換器的電源,不用AD,應將其 接VCC AREF為模擬基準輸入復用引腳,不使用,貝思空。表一 ATmega8的端口引腳配置DD

18、RX nPORTX nPUD(SFIOR 中)I/O上拉電阻說明00X輸入關閉高阻態010輸入打開被外部電路拉低時輸出電流011輸入關閉高阻態10X輸出關閉輸出低電平(漏電流)11X輸出關閉輸出高電平(源電流)DDR勸端口方向寄存器,當DDRX勺某一位置1時,相應端口的引腳作為輸出 使用。PORT勸端口數據寄存器,當引腳作為輸出使用時,PORTX勺數據由相應引腳 輸出。3.2 LCD12864模塊簡介3.2.1 KXM12864主要技術參數和性能本設計采用帶中文字庫的圖形點陣液晶顯示器模塊,即使用KXM12864作為顯示設備。該顯示器模塊是一種圖形點陣式液晶顯示器,能顯示4行8列(16*16點

19、陣)共32個漢字,也可以顯示字符、圖形等。它主要由行驅動器和列驅動器組成,分辨率為128*64,指的是橫向有128個點, 縱向有64個點。它含有國標一級、二級簡體中文字庫。內部有 8192個漢字,所以,常用的漢字 在該字庫中均能找到。它還含有16*8個ASCII碼字符。其電源電壓寬為+3.0+6.5V,即工作電壓在此范圍之間。工作溫度為-20E +70C,當超過其工作溫度,液晶模塊則會反應很慢,或者 顯示錯誤。3.2.2 KXM12864外形尺寸圖陽 0土 flti.00.30D.5C0MAX10-Q# 5,00.3%舁nlol-HIqggg-Q-HI口 TIN128X54 D0TS !0l4

20、S Q.D41 -B73.0D.320了解KXM12864勺外形尺寸,可以在做產品時更好地規劃設計產品的布局323 KXM12864液晶顯示指令系統指令表(REHh基本指令集檔令碼(54CKHZ)RSRWDE7咿DB5DB4DB3DB2UBLBa清除雖示000000001將DDKAM埴満TOHS井II設定 DDRAM的地址計數SS (AC)到楓OOTF4.6m&地址歸位000a000a1X設定DDRAM的地忖:訃救器(AC)到p,OOHn,井U舞游標踐到開童朋點也直? 這牛措爭并不占雙DDRAM的內睿4.6ms設定000C0001LUsfit定祀壷料的讀取與可扎時,設足游惋 曲動方向攻指定顯樂

21、的移檢7M刑關00000Q1DCBD-li卅體顯示DNC-1:游標ON加B=l;講標杭置ON游標或顯示移 杭輕制000001就RLXX設定游標的移動與顯示的移位控制位71;這個捋爭井不氐變DDI3M的內春72us功能設定00001DLXflEEXXDL=L (惡鎮設為1)RE=1:獷充指專集動作RE=O;棊本指令毎動柞72us設罡CGRAM地址00Q1AC5AG4AC3AC2AC1AC0設定CGRAM地址到地址計藪器(AC)7M設 5if DDRAM地址001ACCAC5AdACSAC2AC1ACD扶定DDRAM地冊到地hl-計數誥(AC)7M瀆取It碌標壽IBF)和地址01BFA6ACSAa

22、AJC3AC2AC1ACO讀脫忙綠標志BF) nJ以確認內部動作 是吾完咗,同時可以詐出地址劉數瞎(AC)的價Ou&寫畫料別RAM10D706IDJD3DIDO號入資料到內啟的 RAM IDDRAM/CGRAM/IRAM GDRAM)72m讀出RAM的值11D7D6D5DAD2DIDO從內部 RAM 険取資料IDDRAM/CGRAM/IRAM GDRAM)根據該指令表,可以對該LCD顯示模塊進行初始化操作。其中,當 RS=0,RW=1, 功能設定控制字為30H,如果設置D C、B均為1,則顯示狀態開關控制字為0FH, 清除屏幕控制字為01H,模式設置控制字為06耳當MCI向該模塊寫資料時,應當

23、使 RS=1 RW=0這樣,就可以向該模塊寫入指 令和數據。之后,即可顯示漢字。324 12864液晶顯示動態指標及術語表二 并行接口模塊說明:管腳號12345管腳電平管腳功能描述名稱VSS0V電源地VCC+5V電源正V0-對比度(亮度)調整RS(CSH/LRS“ H,表示 DB7-DBO為顯示數據)RS=“L” ,表示 DB7-DBO為顯示指令數據R/W“ H ,E= “ H,數據被讀到 DB7DB0R/W(SH/Lr/W=“L” ,E= “HRL”,DB7 DB0的數據被寫到IR或ID)DRE(SCLH/L使能信號67891011121314151617181920K)DB0H/L三態數據

24、線DB1H/L三態數據線DB2H/L三態數據線DB3H/L三態數據線DB4H/L三態數據線DB5H/L三態數據線DB6H/L三態數據線DB7H/L三態數據線PSBH/LH: 8位或4位并口方式,L:串口方式(見注釋)NC-空腳RESETH/L復位端NC-LCD驅動電壓輸出端BLAVDD背光源正端(+5V)BLKKVSS背光源負端*注釋:如在實際應用中僅使用并口通訊模式,可將PSB接固定高電平,也可以將模塊上的J8和“ VCC用焊錫短接。8位并行連接時序圖MPU寫資料到模塊圖3.2.4(a) 8 位并行連接時序圖RSRW功能00單片機寫指令到指令暫存器(IR)01讀出忙標志(BF)及地址計數器(

25、AC)的狀態P 1P 0單片機寫數據到數據暫存器(DR)11單片機從數據暫存器中讀出數據圖3.2.4(b) RS、RW功能設定示意圖4硬件設計4.1設計流程圖及設計思路圖4.1硬件電路框圖本設計的設計流程如上圖所示,首先要設計出一個 +5V的直流穩壓電源為該電 路提供+5V電壓。之后,通過一個RS232電平轉換電路來實現PC機電平到單片機電 平的轉換。最后,通過對 ATMEGA編寫程序來控制LCD12864模塊顯示漢字。其中, 該單片機的時鐘信號是通過內部振蕩方式獲得。4.2各模塊電路設計4.2.1電源電路50HZ圖4.2.1(a)直流穩壓電路原理圖4.2.1(b)直流穩壓電源電路圖本設計首先

26、需要設計一個+5V的直流穩壓電源。如上圖所示,220V電源經過變 壓器降壓后,又經過整流器整流,再經三端口穩壓器7805穩壓,產生+5V電壓,給整個電路提供5v的直流電壓。其中通過對焊接好的硬件用萬用表進行測試,測得從變壓器端經變壓后的交流電壓為+9.36V,再經整流橋電路整流得到方向不變、大小隨 時間變化的脈動電壓,再經濾波電容C1濾去其交流分量,得到比較平滑的直流電壓。 其中,C1的值取得大一些,有利于減小輸出端的波紋電壓。之后,經三端口穩壓器 7805穩壓后得到更加穩定的直流電壓。最后,使用C2來防止發生意外跳變時,電壓輸出產生大的跳變,以此提高電源抗瞬間脈沖沖擊干擾的能力。422 LC

27、D12864模塊控制電路TtTT5t_tt圖422 LCD控制模塊電路圖如上圖所示,采用 ATMEGA對LCD12864模塊進行控制,其中,LCD12864模塊使用的是KXM12864根據該型號液晶顯示器的特點,設計如下。該液晶顯示器共有20個引腳,由3.2.4中的表二知,LCD12864第 1引腳VSS應接電源地;第2引腳接 電源正VCC第3引腳為對比度調整,在此可不接;第 4、5、6引腳為控制信號直 接接單片機的I/O 口;從第7引腳到第14引腳為LCD的三態數據線,直接接單片機 的I/O 口;第15引腳為模式控制引腳,因為并行端口傳送數據較為快捷且簡單易控, 所以本設計是基于8位并行端口

28、設計,因此,直接接VCC高電平;第16引腳,懸空; 第17引腳為復位端,接高電平 VCC第18引腳,不接;第19、20引腳分別為背光 源正和背光源負,因此,分別接電源正 VCC和電源地。423 RS232電平轉換電路o d TJ1 T.D K_01vcchr2m3 a1i131tCOM3兇L廠II6lhIjGM)JJH-1nJC-;1)JuFT 01IISWD|SWPIP4ghdHJ5160応JL6QOLTnauBjiiiscOPW(TCf) PB! (OCUlP2(OC1B)Pl(H0SV0C2) FP(MEO)PBifSCK) m(mLi/rosci)PM(tXD) tI (BO) pd?

29、(ihid) PDi(am) PM (SCIUTQ) jos tn) PM(AIW) pt? (Ann)1B*WflHcPCQ(APOD)PCl(ADCl)PC2(ADO) C3(JUO) PC4(M)C*OA) PatADCWSCLJ 皿場 ADC?VCC vcc AVCCOHP2IOL8X0L1I 五:四2圖423(a) RS232電平轉換電路MAX23芯片可將PC機的RS-232標準串口設計的單電源電平轉換為+5v單電源電平。RS232電平為-10+10V,單片機電平為 TTL電平為05V。要實現上位機與下位機之間的串行通信,必須通過MAX232進行電平轉換,因為PC機串口采用的是RS2

30、32電平,而單片機采用的卻是TTL電平,如果不進行電平轉換,單片機跟PC機的串口就不能進行直接通信。如上圖所示,從RS232端口輸出的信號經過 MAX23芯片進行轉換,最后從T_I1和R 01輸出信號進過 ADC3和ADC4模數轉換成+5V的TTL電平到達ATMEGA芯片。MAX232勺芯片圖及管腳圖如下所示:4.2.4時鐘電路C1+ 1 v- 7 cv 3 C2t|7C2- FsmomMAX232E五Vix 回GNDnooi亙RUN回 R1OUT71 T1 IN亙T2INT R?OUT圖423(b) MAX2325片圖及管腳圖CCLQkauQMJPEO(tCP)PBljoCLK)陶鈕咖PB3

31、(MOSI/OC2)P 擁(MEO) 他(SCK) (KTAll/TDSCl) PE7(KTAU/T06C3)P3UEC0) PCl(ADQ) PCS W口、 P(ADD) PC*CAK)A) P(AICCL) A1C6 2CTM0L921QLWXCiLll2tOLn3EOL3 COL?LftOuiPg(R3CDj PDIOWj PE2(nno) W(NTL(KCKHtt) PD5(T1) PXfMHO) PD?(AIH1)wcVcCAVCC圖424時鐘電路圖該單片機時鐘信號是通過內部振蕩方式獲得,在引腳 XTAL1和XTAL2上外接- 個8MHZ的晶振,即可構成內部振蕩方式。當外接一個 8M

32、HZ勺晶振后,就可以構成 自激振蕩器并產生振蕩時鐘脈沖。其中,電容 C_JT1和電容C_JT2起著穩定振蕩頻 率、快速起振的作用。4.3硬件焊接與調試本設計中的重點是AVR單片機實驗板的制作。其中,ATMEGA的焊接是十分重 要的。因為該芯片是貼片式芯片,而且引腳數目較多,且引腳間距很小,所以不很 容易焊接。對于ATMEGA的焊接,必須使用尖頭烙鐵,且焊接溫度設定在 270 C左 右。焊接完成后,必須要檢測各引腳是否焊接正確、有無虛焊等。具體方法是,先 使用放大鏡檢查引腳焊接有無虛焊、連焊,再用萬用表的電阻檔檢查相鄰引腳是否 短路。檢測方法為將量程開關撥至電阻檔上,再將萬用表的兩個表筆分別放在

33、兩引 腳上,如果短路,則會發出蜂鳴的響聲,否則,為不短路。最后,進行通電檢查, 使用PROGIS軟件對芯片進行查空,如果結果為查空成功,則表明芯片焊接正常。最后,就是LCD12864模塊的焊接。該模塊一共有20個引腳,分別按照電路圖 的連接逐個進行焊接。設計中,我在焊接ATMEGA芯片時,將芯片的兩個引腳短路,但經檢查后將多 余的錫去除,最后芯片焊接正常。按照上面的電路圖,再逐一進行焊接,之后,硬 件焊接完成。最后一步是進行硬件調試,我在調試中又發現了虛焊與短路的問題, 一是ATMEGA相鄰兩個管腳連在了一起,后經烙鐵撥離后正常;二是LCD的兩個引腳虛焊,致使LCD插電后不亮。最后找到對應的引

34、腳,重新焊接后正常。我認為,在焊接過程中最容易出現虛焊和短路的現象, 所以在焊接時需要認真、 細心。同時,也要有技巧性的焊接。比如,對焊錫的使用,使用焊錫的多少要適當, 太多容易短路,太少容易虛焊。為防止短路,還可以用烙鐵在焊接處涂抹適量的松 香,以達到絕緣的目的。但是,建議在檢測沒有短路之后再涂抹松香,否則,如果 出現問題,貝U不容易修改。4.4方案擴展方案擴展系統框圖:圖4.4 方案擴展系統框圖此擴展方案是在原來的設計的基礎上加入按鍵模塊。通過把按鍵直接與單片機 I/O 口連接,可以使單片機根據檢測按下的不同的按鍵來顯示不同的效果。具體做 法是,編寫按鍵掃描程序,判斷哪個鍵按下,同時,要編

35、寫按鍵消抖程序,以防錯 判。之后,編寫程序根據按下的鍵來執行相應的特殊的顯示效果,如滾動、閃爍等 顯示效果。5軟件設計5.1 LCD12864模塊初始化流程POWER ON 上電延時37msRESET LOW t HIGHFUNCTION SET 功能設定控制字30HRSR/WDB7DB6DB5DB4DB3DB2DB1DB0000011X0XX延時100usFUNCTION SET 功能設定控制字30HRSR/WDB7DB6DB5DB4DB3DB2DB1DB0000011X0XX延時37usDISPLAY ON/OFF CONTROL 顯示開 /關 控制字 0FHRSR/WDB7DB6DB5D

36、B4DB3DB2DB1DB00000001DCB延時100usDISPLAY CLEAR清除屏幕控制字:01HRS R/W DB7DB6 DB5 DB4 DB3 DB2 DB1DB00 0 0 0 0 0*延時10msi rENTRY MODEL SET 進入模式設置 控制字:06HRSR/WDB7DB6DB5DB4DB3DB2DB1DB000000001I/DSINITIALIZATION END初始化結束圖5.1 LCD12864初始化流程圖5.2部分程序代碼5.2.1軟件延時LCD延時程序是本設計中很重要的一部分,因為延時時間的長短不僅能決定該 模塊能否成功初始化,還決定了人眼能不能看到

37、穩定的顯示。在本設計中有兩個延 時程序,以滿足不同延時時間的需要。而且,第二個延時程序的延時時間比第一個 延時程序延時時間長。void delay1( un sig ned int t) un sig ned int j;22for( ;tO;t-)for (j=19;j0;j-);void delay2( un sig ned int t)un sig ned int j;for( ;tO;t-)for (j=6425;j0;j-);5.2.2 端口輸出函數由于本設計中從ATMEGA單片機中的I/O 口輸出數據時沒有使用某個整體的 I/O 口,只是使用了其中某個I/O 口的一部分。所以傳送地

38、址數據時,不能整體傳 送,只能逐位傳送。而本設計中,又需多次使用數據傳送。所以為了簡便起見,則 寫了一個從I/O 口輸出8位數據的write函數,以供傳送數據使用。void write( un sig ned char z)if (z&0x01)=0x01)P0RTC|=0x08;/0000,1000PC3=1else PORTC&=0xf7;/1111,0111 PC3=0if (z&0x02)=0x02)P0RTC|=0x10;/0001,0000PC4=1else PORTC&=0xef;/1110,1111 PC4=0if (z&0x04)=0x04)P0RTC|=0x20;/0010

39、,0000PC5=1else PORTC&=0xdf;/1101,1111 PC5=0if (z&0x08)=0x08)P0RTB|=0x01;/0000,0001PB0=1else PORTB&=0xfe;/1111,1110 PB0=0if (z&0x10)=0x10)P0RTB|=0x02;/0000,0010PB1=1else PORTB&=0xfd;/1111,1101 PB1=0if (z&0x20)=0x20)P0RTB|=0x04;/0000,0100PB2=1else PORTB&=0xfb;/1111,1011 PB2=0if (z&0x40)=0x40)P0RTB|=0x

40、08;/0000,1000PB3=1else PORTB&=0xf7;/1011,1111 PB3=0if (z&0x80)=0x80)P0RTB|=0x10;/0001,0000PB4=1else PORTB&=0xef;/1110,1111 PB4=0 5.2.3寫數據函數由3.2.4中的8位并行時序圖及RS RW功能設定示意圖知,RS為高電平時,表示寫數據。當RW為低電平時,表示MPI寫資料到模塊。當E為低電平時,延時- 會兒,向I/O 口準備數據,到E為高電平時,沒有變化。再當 E為高電平后,延時 一會兒,令E為低電平,貝擻據寫入完全。最后使 RW為高電平,RS為低電平,指 令書寫完成

41、。void write_12864dat( un sig ned char a) _PORTC|=OxO1;/OOOO,OOO1 rs=1 PC0=1 寫數據PORTC&=Oxfd;/1111,11O1 rw=0PORTC&=Oxfb;/1111,1O11 e=0 delay1(1);write(a);PORTC|=OxO4;/OOOO,O1OO e=1 delay1(10);PORTC&=Oxfb;/1111,1O11 e=0 delay1(2);PORTC|=OxO2;/OOOO,OO1O rw=1PORTC&=0xfe;/1111,1110 rs=O PC1=0PC2=0PC2=1PC2

42、=0PC仁1PC0=05.2.4寫指令函數由3.2.4中的8位并行時序圖及RS RW功能設定示意圖知,RS為低電平時, 表示寫指令。當RW為低電平時,表示MPI寫資料到模塊。當E為低電平時,延時一 會兒,向I/O 口準備數據,到E為高電平時,沒有變化。再當 E為高電平后,延時 一會兒,令E為低電平,貝擻據寫入完全。最后使RW為高電平,RS為低電平,指令書寫完成。void write_12864com (un sig ned char b)PORTC&=0xfe;/1111,1110 rs=OPC0=0寫指令PORTC&=Oxfd;/1111,11O1 rw=0PC1=0PORTC&=Oxfb;

43、/1111,1O11 e=0 delay1(1);PC2=0write(b);PORTC|=OxO4;/OOOO,O1OO e=1 delay1(10);PC2=1PORTC&=Oxfb;/1111,1O11 e=0PC2=0delay1(2);PORTC|=0x02;/0000,0010 rw=1PC1=0PORTC&=0xfe;/1111,1110 rs=0PC0=0525初始化函數要使LCD12864莫塊顯示漢字,必須對該模塊進行初始化。由圖5.1初始化流程 圖可知,先打開電源,等待大于40ms再進行復位操作。本設計是直接將復位端接 高電平。之后寫入控制字,進行功能設定。接著延時等待,再

44、進行顯示開關控制字 設定,其中D=1、整體顯示ON,C=1游標ON B=1、游標位置ON之后,進行清屏 設置。最后,進行模式選擇設置,初始化過程結束。void in it in al(void)delay2(20);write_12864com(0x30);寫控制字 30Hdelay1 ;write_12864com(0x30);寫控制字 30Hdelay1 ;write_12864com(0x0f); DCB 均為一delay1 ;write_12864com(0x01);清屏設置 01Hdelay2(20);write_12864com(0x06);模式設置 06Hdelay1(10);5

45、.2.6顯示函數RAM在液晶中的地址為80H9FH,地址指針自動加一,將漢字地址送入寫指 令和寫數據函數,即可顯示漢字。本顯示函數功能是顯示一首古詩鋤禾。26scxl)cxlAea)p -(eqxo)lep 寸 98CXILI9UM gfc*(eqxo)lep 寸 98CXILI9UMscxl)cxlAea)p sexoxep 寸 98CXILI9UM :=(oqxo)lep 寸 98CXILI9UM W雖-lfcHM注(06X0E8 寸 98CXIlims寸)CXIAeaJp =(ocxlxo)lep 寸 98CXILI9UMscxl)cxlAea)p p xo)lep 寸 98CXILI9

46、UM 3& *(oxoxep 寸 98CXILI9UMscxl)cxlAea)p -(Lqxo)lep 寸 98CXILI9UM =(gqxo)lep寸98CXILI9UMscxl)cxlAea)p -(gpxo)lep 寸 98CXILI9UM =(80xo)leptz98cxlLIMscxl)cxlAea)p iyoxoxep 寸 98CXILI9UM *(eqxo)lep 寸 98CXILI9UMscxl)cxlAea)p -xo)lep 寸 98CXILI9UM R一.(eqxo)lep 寸 98CXIlimscxl)cxlAea)p sexoxep 寸 98CXILI9UM :注(o

47、qxo)lep 寸 98CXILI9UMW雖-lfcMIfwM 兇 IAI)Ae-ds 一 p powrite_12864dat(0xb5); 滴”write_12864dat(0xce);delay2(20);write_12864dat(0xba) 禾write_12864dat(0xcc);delay2(30);write_12864dat(0xcf); 下write_12864dat(0xc2);delay2(20);write_12864dat(0xcd); 土write_12864dat(0xc1);delay2(20);write_12864dat(0x2e)?!?delay2(

48、40);write_12864com(0x88); 第三行首地址 write_12864dat(0xb0);“ ”write_12864dat(0xa0);delay2(20);write_12864dat(0xcb); 誰”write_12864dat(0xad);delay2(20);write_12864dat(0xd6); 知T write_12864dat(0xaa);delay2(20);write_12864dat(0xc5); 盤”write_12864dat(0xcc);delay2(20);write_12864dat(0xd6); 中 write_12864dat(0xd0);delay2(20);38write_12864dat(0xb2); 餐”write_12864dat(0xcd);delay2(20);write_12864dat(0x2c); , “delay2(40);write_12864com(0x98); 第四行首地址write_12864dat(0xb0);“ ”write_12864dat(0xa0);delay2(20);write_12864dat(0xc1); 粒write_12864dat(0xa3);delay2(20);write_12864dat(0xc1); 粒write_12864dat(0xa3

溫馨提示

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

評論

0/150

提交評論