版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Proteus實(shí)驗(yàn)報告課程題目:基于Proteus仿真的12864液晶的顯示班級:XXX姓名:XXX學(xué)號:XXX完成時間:XXX目錄一、概述31、1LCD簡介31、2LCD引腳說明31、3LCD原理簡圖41、4LCD主要功能介紹.41、5指令說明.6二、液晶顯示原理82.1 漢字和英文顯示原理82.2 圖形顯示9三、軟件仿真103.1漢字顯示103.2 向上滾動顯示113.3PCB圖11四、部分實(shí)驗(yàn)代碼12五、總結(jié)18一、概述1、LCD簡介在Protues仿真軟件中,AMPIRE12864是一種圖形點(diǎn)陣液晶顯示器。它主要采用動態(tài)驅(qū)動原理由行驅(qū)動控制器和列驅(qū)動器兩部分組成了128(列)X64(行
2、)的全點(diǎn)陣液晶顯示。軟件中不提供中文字庫,但可完成圖形顯示,也可以通過漢字取模軟件顯示8X4個(16X16點(diǎn)陣)漢字。2、LCD引腳說明管腳名稱LEVER管腳功能描述3VSS0電源地4VDD+5.0V電源電壓5V0液晶顯示器驅(qū)動電壓6D/I(RS)H/LD/I=“H”,表示DB7sDB0為顯示數(shù)據(jù)D/I=“L”,表示DB7sDB0為顯示指令數(shù)據(jù)7R/WH/LR/W二“H”,E=“H”數(shù)據(jù)被讀到DB7sDB0R/W二“L”,E=“HfL”數(shù)據(jù)被寫到IR或DR8EH/LR/W二“L”,E信號下降沿鎖存DB7sDB0R/W二“H”,E=“H”DDRAM數(shù)據(jù)讀到DB7DB09DB0H/L數(shù)據(jù)線10DB
3、1H/L數(shù)據(jù)線11DB2H/L數(shù)據(jù)線12DB3H/L數(shù)據(jù)線13DB4H/L數(shù)據(jù)線14DB5H/L數(shù)據(jù)線15DB6H/L數(shù)據(jù)線16DB7H/L數(shù)據(jù)線1CS1H/LH:選擇芯片(右半屏)信號2CS2H/LH:選擇芯片(左半屏)信號17RETH/L復(fù)位信號,低電平復(fù)位18VOUT10VLCD驅(qū)動負(fù)電壓19LED+LED背光板電源20LED-LED背光板電源3、LCD原理簡圖4、LCD主要功能介紹按裾總敵據(jù)通道A近-孔也顯示元第一頁恬4爭節(jié)燉但-1234S678Q-013FZH3ri-Y地址計(jì)數(shù)蓋笫八頁血芋節(jié)刈仗)1)顯示數(shù)據(jù)RAM(DDRAM)DDRAM(64X8X8bits)是存儲圖形顯示數(shù)據(jù)的。
4、此RAM的每一位數(shù)據(jù)對應(yīng)顯示面板上一個點(diǎn)的顯示(數(shù)據(jù)為H)與不顯示(數(shù)據(jù)為L)。DDRAM的地址與顯示位置關(guān)系對照圖(見附錄一)2)I/O緩沖器(DBODB7)I/O緩沖器為雙向三態(tài)數(shù)據(jù)緩沖器。是LCM(液晶顯示模塊)部總線與MPU總線的結(jié)合部。其作用是將兩個不同時鐘下工作的系統(tǒng)連接起來,實(shí)現(xiàn)通訊。I/O緩沖器在片選信號/CS有效狀態(tài)下,1/O緩沖器開放,實(shí)現(xiàn)LCM(液晶顯示模塊)與MPU之間的數(shù)據(jù)傳遞。當(dāng)片選信號為無效狀態(tài)時,I/O緩沖器將中斷LCM(液晶顯示模塊)部總線與MPU數(shù)據(jù)總線的聯(lián)系,對外總線呈高阻狀態(tài),從而不影響MPU的其他數(shù)據(jù)操作功能。3)輸入寄存器輸入寄存器用于接收在MPU運(yùn)
5、行速度下傳送給LCM(液晶顯示模塊)的數(shù)據(jù)并將其鎖存在輸入寄存器,其輸出將在LCM(液晶顯示模塊)部工作時鐘的運(yùn)作下將數(shù)據(jù)寫入指令寄存器或顯示存儲器。4)輸出寄存器輸出寄存器用于暫存從顯示存儲器讀出的數(shù)據(jù),在MPU讀操作時,輸出寄存器將當(dāng)前鎖存的數(shù)據(jù)通過I/O緩沖器送入MPU數(shù)據(jù)總線上。5)指令寄存器指令寄存器用于接收MPU發(fā)來的指令代碼,通過譯碼將指令代碼置入相關(guān)的寄存器或觸發(fā)器。6)狀態(tài)字寄存器狀態(tài)字寄存器是LCM(液晶顯示模塊)與MPU通訊時唯一的“握手”信號。狀態(tài)字寄存器向MPU表示了LCM(液晶顯示模塊)當(dāng)前的工作狀態(tài)。尤其是狀態(tài)字中的“忙”標(biāo)志位是MPU在每次對LCM(液晶顯示模塊
6、)訪問時必須要讀出判別的狀態(tài)位。當(dāng)處于“忙”標(biāo)志位時,I/O緩沖器被封鎖,此時MPU對LCM(液晶顯示模塊)的任何操作(除讀狀態(tài)字操作外)都將是無效的。7)X地址寄存器X地址寄存器是一個三位頁地址寄存器,其輸出控制著DDRAM中8個頁面的選擇,也是控制著數(shù)據(jù)傳輸通道的八選一選擇器。X地址寄存器可以由MPU以指令形式設(shè)置。X地址寄存器沒有自動修改功能,所以要想轉(zhuǎn)換頁面需要重新設(shè)置X地址寄存器的容。8)Y地址計(jì)數(shù)器Y地址計(jì)數(shù)器是一個6位循環(huán)加一計(jì)數(shù)器。它管理某一頁面上的64個單元。Y地址計(jì)數(shù)器可以由MPU以指令形式設(shè)置,它和頁地址指針結(jié)合唯一選通顯示存儲器的一個單元,Y地址計(jì)數(shù)器具有自動加一功能。
7、在顯示存儲器讀/寫操作后Y地址計(jì)數(shù)將自動加一。當(dāng)計(jì)數(shù)器加至3FH后循環(huán)歸零再繼續(xù)加一。9)Z地址計(jì)數(shù)器Z地址計(jì)數(shù)器是一個6位地址計(jì)數(shù)器,用于確定當(dāng)前顯示行的掃描地址。Z地址計(jì)數(shù)器具有自動加一功能。它與行驅(qū)動器的行掃描輸出同步,選擇相應(yīng)的列驅(qū)動的數(shù)據(jù)輸出。10)顯示起始行寄存器顯示起始行寄存器是一個6位寄存器,它規(guī)定了顯示存儲器所對應(yīng)顯示屏上第一行的行號。該行的數(shù)據(jù)將作為顯示屏上第一行顯示狀態(tài)的控制信號。11)顯示開/關(guān)觸發(fā)器顯示開/關(guān)觸發(fā)器的作用就是控制顯示驅(qū)動輸出的電平以控制顯示屏的開關(guān)。在觸發(fā)器輸出為“關(guān)”電平時,顯示數(shù)據(jù)鎖存器的輸入被封鎖并將輸出置“0”,從而使顯示驅(qū)動輸出全部為非選擇波
8、形,顯示屏呈不顯示狀態(tài)。在觸發(fā)器輸出為“開”電平時,顯示數(shù)據(jù)鎖存器被控制,顯示驅(qū)動輸出受顯示驅(qū)動數(shù)據(jù)總線上數(shù)據(jù)控制,顯示屏將呈顯示狀態(tài)。12)復(fù)位端/RES復(fù)位端/RES用于在LCM(液晶顯示模塊)上電時或需要時實(shí)現(xiàn)硬件電路對LCM(液晶顯示模塊)的復(fù)位。該復(fù)位功能將實(shí)現(xiàn):A設(shè)置顯示狀態(tài)為關(guān)顯示狀態(tài)B顯示起始寄存器清零。顯示RAM第一行對應(yīng)顯示屏上的第一行。C在復(fù)位期間狀態(tài)字中RESET位置1。5、指令說明1.指令表指令名稱控制信號控制代碼RR|D7D6D5D4D3D2D1D0S/W顯示開關(guān)設(shè)置000011111D顯示起始行設(shè)置0011L5L4L3L2L1L0頁面地址設(shè)置0010111P2P1
9、P0列地址設(shè)置0001C5C4C3C2C1C0讀取狀態(tài)字01BUS0ONRE0000Y/OSEFFT寫顯示數(shù)據(jù)10數(shù)據(jù)讀顯示數(shù)據(jù)11數(shù)據(jù)詳細(xì)解釋各個指令功能1)讀狀態(tài)字格式IBUSY|0ON/ORESE000011FFT狀態(tài)字是MPU了解LCM(液晶顯示模塊)當(dāng)前狀態(tài),或LCM向MPU提供其部狀態(tài)的唯一的信息渠道。BUSY表示當(dāng)前LCM接口控制電路運(yùn)行狀態(tài)。BUSY=1表示LCM正在處理MPU發(fā)過來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0表示LCM接口控制電路已外于“準(zhǔn)備好”狀態(tài),等待MPU的訪問。ON/OFF表示當(dāng)前的顯示狀態(tài)。ON/OFF=1表示關(guān)顯
10、示狀態(tài),ON/OFF=0表示開顯示狀態(tài)。RESET表示當(dāng)前LCM的工作狀態(tài),即反映/RES端的電平狀態(tài)。當(dāng)/RES為低電平狀態(tài)時,LCM處于復(fù)位工作狀態(tài),標(biāo)志位RESET=1。當(dāng)/REST為高電平狀態(tài)時,LCM為正常工作狀態(tài),標(biāo)志位RESET=0。在指令設(shè)置和數(shù)據(jù)讀寫時要注意狀態(tài)字中的BUSY標(biāo)志。只有在BUSY=0時,MPU對LCM的操作才能有效。因此MPU在每次對LCM操作之前,都要讀出狀態(tài)字判斷BUSY是否為“0”。若不為“0”,則MPU需要等待,直至BUSY=0為止。該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開/關(guān)的控制位
11、。當(dāng)D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。此時在狀態(tài)字中ON/OFF=0。當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲器并沒有被破壞,在狀態(tài)字中ON/OFF=1。11L5L4L3L2L1L0該指令設(shè)置了顯示起始行寄存器的容°LCM通過/CS的選擇分別具有64行顯示的管理能力,該指令中L5L0為顯示起始行的地址,取值在03FH(164行)圍,它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的行地址。如果定時間隔地等間距地修改(如加一或減一)顯示起始行寄存器的容,則顯示屏將呈現(xiàn)顯示容向上或向下平滑滾動的顯示效果。10111P2P1
12、P0該指令設(shè)置了頁面地址一X地址寄存器的容。LCM將顯示存儲器分成8頁,指令代碼中P2P0就是要確定當(dāng)前所要選擇的頁面地址,取值圍為07H,代表第18頁。該指令規(guī)定了以后的讀/寫操作將在哪一個頁面上進(jìn)行。01C5C4C3C2C1C0該指令設(shè)置了Y地址數(shù)計(jì)數(shù)器的容,LCM通過/CS的選擇分別具有64列顯示的管理能力,C5C0二03FH(164)代表某一頁面上的某一單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進(jìn)行。Y地址計(jì)數(shù)器具有自動加一功能,在每一次讀/寫數(shù)據(jù)后它將自動加一,所以在連續(xù)進(jìn)行讀/寫數(shù)據(jù)時,Y地址計(jì)數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲器單元唯一地確定下來,為
13、后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。6)寫顯示數(shù)據(jù)格式數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元。操作完成后列地址計(jì)數(shù)器自動加一。7)讀顯示數(shù)據(jù)格式數(shù)據(jù)該操作將LCM接口部的輸出寄存器容讀出,然后列地址計(jì)數(shù)器自動加一。二、液晶顯示原理1漢字和英文顯示原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的碼。而剩下的低128位則留
14、給英文字符使用,即英文的碼。那么,得到了漢字的碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖1所示:英文字模位代碼字模信息_uOn-O_uO_uO-U-U-U_uO_uO-U-U1I-U_uO1I一I-U-Un-D-UOkOOOkOOOkIO0k3B0k6c0kc6OxctiOsfc0kc6OsctiOkcCOkcOkQCOkOO0x00OkOO圖1“A”字模圖而中文的“你”在字模中的記載卻如圖2所示:ihJE.Dk
15、MOk54,Os200x1D,DstOOzlD,DksSOz0,Che31Ozll<Ds西0H12,fe22ChdLI,fe20OkIDjQkSQOkIDjOMaflOx1D.Dz-4QDDDDuu0u0000oooo00圖2“你”字模圖根據(jù)芯片的不同取模的方式不同,有多種取模方式:單色點(diǎn)陣液晶字模,橫向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,橫向取模,字節(jié)倒序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序等等。而PROTUES中的AMPIRE12684為縱向取模,字節(jié)倒序液晶。2.2圖形顯示先設(shè)頁地址再設(shè)列地址頁地址圍0xb80xbf列平地址圍0x400x7f繪
16、圖RAM的地址計(jì)數(shù)器(AC)只對列地址自動加一,當(dāng)列地址=0x7F時會重新設(shè)為0DDRAM的坐標(biāo)地址與資料排列順序如下圖:1您-D&S2-Dr-D.62悶0162曾DBpDB0DSPDRQDSQ卿DRQOBQBQORQD11IIIIII1IIDB7DB7STDB7DQ7CB7DB7DB7DB7UB77DBDOBDDBDDBDDBDDBDDHDDBDBDDHDS111III1II1IIDH7DB737DH7DB7CB7DH70B7B7DH755K-7DBJDB0DBQDBODBQDBQDBUBBQ砧11III1II1IID87DB7S7DB7D87087D870S7B7087三、軟件仿真
17、1漢字顯示在Protues軟件中選擇所需元件,搭建的電路圖如圖1所示。jKFftllKFftlZJUSTar.&EP口3切FD2MHFQJIfia.勰卜FDAAUrDJafniFD.1W1ndiTzrrry匕T*sS:znp心蝕runiiP3.-hMrE壯"0T2S£MFO.VDJpszumiraaHWR.$raridPXpiTiTT將編寫的代碼燒寫到單片機(jī)里,運(yùn)行液晶顯示正常LCD1-'''.WmEiSSi-仁6-1DC2X1::.TOISElixr/12DT&:.7>PDIVrdapn.i>*M-ipnzrzPD3AU
18、CIpd則5rDJSfe噸幀PZii畑.侶P23W-IF*Z.4pi£P2AVM3rESAjRPZTlWSP3JFOIIP3.I/TM-FHTnrsarnrj.kniP31PJJnTTjPlViTEH日口z'bjsdl-3d£*3i-hTj-日彳;”羽£尹'frT”2向上滾動顯示LCDT.fiJUPIP.E1S-&'上T&dI-;®FE.IsloLCD11hjjpm.ei-&-STE=:-學(xué)班-E.H17宀i大1競“新o陳c.Ill11r韋西偉3S0E.=-?a:1BlslmAAfc丁gn-lIJLPgHt
19、r-MaIJIH 口G二口曰口 口占 mB MBl!J占匸更LECfl.AjjpmEis&!:TF=:T:11111111111|nXUJ_藝丄養(yǎng)陳竟虛埶cu西科技丈學(xué).41r-i1口I工lay00S-<s山EBQ目】*maSENmfflo£=EHaaaa口匚二“工工豈苗Oo咼w-口二flClG39aa3、PCB圖四、部分實(shí)驗(yàn)代碼(向上滾動顯示/*片選1*/*片選2*/*復(fù)位信號*/*數(shù)據(jù)/指令/*讀/寫選6;/*讀/寫#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#define
20、LCDLCDDisp_Off0x3e#defineLCDLCDDisp_On0x3f#definePage_Add0xb8/頁地址#defineLCDCol_Add0x40/列地址#defineStart_Line0xC0/行地址/*液晶顯示器的端口定義*/#definedata_oraP0/*液晶數(shù)據(jù)總線*/sbitLCDMcs二P2J;sbitLCDScs=P2"2;sbitRESET二P2飛;sbitLCDDi=P2"4;選擇*/sbitLCDRW=P2"5;擇*/sbitLCDEnable二P2"使能*/ucharcodeHz_guang=/*-
21、文字:廣-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0x00,0xF8,0x08,0x08,0x08,0x08,0x09,0x0E,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x80,0x60,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_xi=/*-文字:西-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x02,0x02,0xE2,0x22,0x22,0xFE,0x22,0x22,0x22,0xF
22、E,0x22,0x22,0xE2,0x02,0x02,0x00,0x00,0x00,0xFF,0x48,0x44,0x43,0x40,0x40,0x40,0x43,0x44,0x44,0xFF,0x00,0x00,0x00;ucharcodeHz_ke=/*-文字:科-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x0
23、4,0xFF,0x02,0x02,0x02,0x00;ucharcodeHz_ji=/*-文字:技-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00;ucharcodeHz_da=/*-文字:大-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x2
24、0,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00;0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00;ucharcodeHz_chen=/*-文字:-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0x
25、FE,0x22,0x5A,0x86,0x08,0x88,0x68,0x18,0x0F,0xE8,0x08,0x08,0x08,0x08,0x00,0x00,0xFF,0x04,0x08,0x07,0x20,0x11,0x0D,0x41,0x81,0x7F,0x01,0x05,0x09,0x30,0x00;ucharcodeHz_jing=/*-文字:競-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x20,0x20,0x24,0xA4,0xAC,0xB4,0xA5,0xA6,0xA4,0xB4,0xAC,0xA4,0x24,0x20,0x20,0x00,0x80,0x80,
26、0x40,0x47,0x24,0x1C,0x04,0x04,0x04,0x7C,0x84,0x87,0x80,0x80,0xE0,0x00;ucharcodeHz_xiong=/*-文字:雄-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0x08,0xC8,0x38,0x8F,0x08,0x28,0x10,0xFC,0x4B,0x48,0xF9,0x4A,0x48,0x08,0x00,0x04,0x23,0x70,0x2C,0x23,0x28,0x70,0x00,0xFF,0x22,0x22,0x3F,0x22,0x22,0x20,0x00;0x80,0x40,0x
27、3F,0x40,0x80,0xFF,0x89,0x89,0x89,0xBF,0x89,0xA9,0xC9,0xBF,0x80,0x00;ucharcodeHz_xin=/*-文字:信-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0x80,0x60,0xF8,0x07,0x00,0x04,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xF9,0x49,0x49,0x49,0x49,0x49,0xF9,0x00,0x00;ucharcodeHz_1=/*
28、-文字:1-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_0=/*-文字:0-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0
29、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_ban=/*-文字:班-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84,0x84,0x00,ucharcodeHz_tong=/*-文字:通-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x
30、16-*/0x40,0x42,0xCC,0x00,0x00,0xE2,0x22,0x2A,0x2A,0xF2,0x2A,0x26,0x22,0xE0,0x00,0x00,0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00;ucharcodeHz_wo=/*-文字:我-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
31、0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00;ucharcodeHz_ai=/*-文字:愛-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00;uchar
32、codeHz_m=/*-文字:M-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz
33、_u=/*-文字:U-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/函數(shù)功能:LCD延時程序入口參數(shù):t出口參數(shù):/voidLCDdelay(unsignedintt)unsignedinti,j;for(i=0;i<t;i+);for(j=0;j<
34、;10;j+);/狀態(tài)檢查,LCD是否忙/voidCheckState()unsignedchardat,DATA;/狀態(tài)信息(判斷是否忙)ucharcodeHz_c=/*-文字:C-*/*-宋體12;此字體下對應(yīng)的點(diǎn)陣為:寬x高=16x16-*/0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,LCDDi=0;/數(shù)據(jù)指令選擇,D/I(RS)="L",表示DB7sDB0為顯示指令數(shù)據(jù)LCDRW=1;/R/W="H",E="H"
35、數(shù)據(jù)被讀到DB7sDB0doDATA=0x00;LCDEnable=l;/EN下降源LCDdelay(2);/延時dat=DATA;LCDEnable=0;dat=0x80&dat;/僅當(dāng)?shù)?位為0時才可操作(判別busy信號)while(!(dat=0x00);/函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個脈沖寫一次入口參數(shù):cmdcode出口參數(shù):/voidwrite_(unsignedcharcmdcode)CheckState();/檢測LCD是否忙LCDDi=0;LCDRW=0;P0=cmdcode;LCDdelay(2);LCDEnable=
36、1;LCDdelay(2);LCDEnable=0;/函數(shù)功能:LCD初始化程序入口參數(shù):出口參數(shù):/voidinit_lcd()LCDdelay(100);LCDMcs=l;/剛開始關(guān)閉兩屏LCDScs=1;LCDdelay(100);write_(LCDLCDDisp_Off);/寫初始化命令write_(Page_Add+0);write_(Start_Line+0);write_(LCDCol_Add+0);write_(LCDLCDDisp_On);/函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個脈沖寫一次入口參數(shù):LCDDispdata出口參數(shù):/vo
37、idwrite_data(unsignedcharLCDDispdata)CheckState();/檢測LCD是否忙LCDDi=1;LCDRW=0;P0=LCDDispdata;LCDdelay(2);LCDEnable=1;LCDdelay(2);LCDEnable=0;/函數(shù)功能:清除LCD存程序入口參數(shù):pag,col,hzk出口參數(shù):/voidClr_Scr()unsignedcharj,k;LCDMcs=0;/左、右屏均開顯示LCDScs=0;write_(Page_Add+0);write_(LCDCol_Add+0);for(k=0;k8;k+)/控制頁數(shù)0-7,共8頁writ
38、e_(Page_Add+k);/每頁每頁進(jìn)行寫for(j=0;j<64;j+)/每頁最多可寫32個中文文字或64個ASCII字符write_(LCDCol_Add+j);write_data(0x00);/控制列數(shù)0-63,共64列,寫點(diǎn)容,列地址自動加1/函數(shù)功能:指定位置顯示漢字16*16程序入口參數(shù):page,column,hzk出口參數(shù):/voidhz_LCDDisp16(unsignedcharpage,unsignedcharcolumn,unsignedcharcode*hzk)unsignedcharj=0,i=0;for(j=0;j<2;j+)write_(Pag
39、e_Add+page+j);write_(LCDCol_Add+column);for(i=0;i<16;i+)write_data(hzk16*j+i);voiddis_gxkjdx()LCDMcs=0;/左屏開顯示LCDScs=1;hz_LCDDisp16(0,16,Hz_guang);/Hz_Wo為某個漢字的首地址hz_LCDDisp16(0,32,Hz_xi);hz_LCDDisp16(0,48,Hz_ke);LCDMcs=1;/右屏開顯示LCDScs=0;hz_LCDDisp16(0,0,Hz_ji);hz_LCDDisp16(0,16,Hz_da);hz_LCDDisp16(
40、0,32,Hz_xue);voiddis_txb()LCDMcs=0;/左屏開顯示LCDScs=1;hz_LCDDisp16(2,16,Hz_tong);/Hz_Wo為某個漢字的首地址hz_LCDDisp16(2,32,Hz_xin);hz_LCDDisp16(2,48,Hz_1);LCDMcs=1;/右屏開顯示LCDScs=0;hz_LCDDisp16(2,0,Hz_0);hz_LCDDisp16(2,16,Hz_1);hz_LCDDisp16(2,32,Hz_ban);dis_wa_mcu();while(1)總結(jié)voiddis_cjx()LCDMcs=0;/左屏開顯示LCDScs=1;h
41、z_LCDDisp16(4,16,Hz_chen);/Hz_Wo為某個漢字的首地址hz_LCDDisp16(4,48,Hz_jing);LCDMcs=1;/右屏開顯示LCDScs=0;hz_LCDDisp16(4,16,Hz_xiong);voiddis_wa_mcu()LCDMcs=0;/左屏開顯示LCDScs=1;hz_LCDDisp16(6,16,Hz_wo);/Hz_Wo為某個漢字的首地址hz_LCDDisp16(6,32,Hz_ai);hz_LCDDisp16(6,48,Hz_m);LCDMcs=1;/右屏開顯示LCDScs=0;hz_LCDDisp16(6,0,Hz_c);hz_LCDDisp16(6,16,Hz_u);voidmain()init_lcd();C
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個人承包物流配送合同3篇
- 2025涉外合同的相關(guān)事項(xiàng)
- 二零二五年度幼兒園園長任期教育信息化與智慧校園建設(shè)合同3篇
- 2025年度養(yǎng)豬場養(yǎng)殖保險與風(fēng)險防控合作協(xié)議3篇
- 2025年度店面轉(zhuǎn)讓定金及后續(xù)培訓(xùn)服務(wù)協(xié)議3篇
- 2025年度農(nóng)副產(chǎn)品電商平臺售后服務(wù)合作協(xié)議3篇
- 二零二五年度物流倉儲經(jīng)營權(quán)承包管理協(xié)議書3篇
- 二零二五年度農(nóng)村房屋買賣與景觀設(shè)計(jì)合同2篇
- 2025年度專利技術(shù)許可及推廣應(yīng)用協(xié)議3篇
- 二零二五年度內(nèi)墻膩?zhàn)邮┕づc智能家居安防系統(tǒng)合同3篇
- 《調(diào)水工程設(shè)計(jì)導(dǎo)則SL-T430-20XX-條文說明》
- 第二單元自測卷(試題)2023-2024學(xué)年統(tǒng)編版語文四年級下冊
- 六年級上冊數(shù)學(xué)應(yīng)用題分類練習(xí)100道
- 土方開挖過程中的文物保存方案
- 臨時安全用電要求安全培訓(xùn)
- 水稻田稻鴨共棲技術(shù)要點(diǎn)
- 肺功能科室工作報告
- 如何訓(xùn)練寶寶獨(dú)立就寢
- 血常規(guī)報告單
- 寶寶大便觀察及護(hù)理課件
- 學(xué)校最小應(yīng)急單元應(yīng)急預(yù)案
評論
0/150
提交評論