基于Proteus仿真的12864液晶的顯示_第1頁(yè)
基于Proteus仿真的12864液晶的顯示_第2頁(yè)
基于Proteus仿真的12864液晶的顯示_第3頁(yè)
基于Proteus仿真的12864液晶的顯示_第4頁(yè)
基于Proteus仿真的12864液晶的顯示_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Proteus實(shí)驗(yàn)報(bào)告課程題目:基于Proteus仿真的12864液晶的顯示班級(jí):XXX姓名:XXX學(xué)號(hào):XXX完成時(shí)間:XXX目錄概述…………………3LCD簡(jiǎn)介…………………3LCD引腳說明……………3LCD原理簡(jiǎn)圖4LCD主要功能介紹……..4指令說明………………...6液晶顯示原理………8………8圖形顯示……………………9三、軟件仿真……10……………………10………………11………11四、局部實(shí)驗(yàn)代碼………………12五、總結(jié)…………18概述LCD簡(jiǎn)介在Protues仿真軟件中,AMPIRE12864是一種圖形點(diǎn)陣液晶顯示器。它主要采用動(dòng)態(tài)驅(qū)動(dòng)原理由行驅(qū)動(dòng)—控制器和列驅(qū)動(dòng)器兩局部組成了128(列)×64(行)的全點(diǎn)陣液晶顯示。軟件中不提供中文字庫(kù),但可完成圖形顯示,也可以通過漢字取模軟件顯示8×4個(gè)(16×16點(diǎn)陣)漢字。LCD引腳說明管腳名稱LEVER管腳功能描述3VSS0電源地4VDD電源電壓5V0-液晶顯示器驅(qū)動(dòng)電壓6D/I(RS)H/LD/I=“H〞,表示DB7∽DB0為顯示數(shù)據(jù)D/I=“L〞,表示DB7∽DB0為顯示指令數(shù)據(jù)7R/WH/LR/W=“H〞,E=“H〞數(shù)據(jù)被讀到DB7∽DB0R/W=“L〞,E=“H→L〞數(shù)據(jù)被寫到IR或DR8EH/LR/W=“L〞,E信號(hào)下降沿鎖存DB7∽DB0R/W=“H〞,E=“H〞DDRAM數(shù)據(jù)讀到DB7∽DB09DB0H/L數(shù)據(jù)線10DB1H/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:選擇芯片(右半屏)信號(hào)2CS2H/LH:選擇芯片(左半屏)信號(hào)17RETH/L復(fù)位信號(hào),低電平復(fù)位18VOUT-10VLCD驅(qū)動(dòng)負(fù)電壓19LED+-LED背光板電源20LED--LED背光板電源LCD原理簡(jiǎn)圖LCD主要功能介紹1〕顯示數(shù)據(jù)RAM(DDRAM)DDRAM〔64×8×8bits〕是存儲(chǔ)圖形顯示數(shù)據(jù)的。此RAM的每一位數(shù)據(jù)對(duì)應(yīng)顯示面板上一個(gè)點(diǎn)的顯示〔數(shù)據(jù)為H〕與不顯示〔數(shù)據(jù)為L(zhǎng)〕。DDRAM的地址與顯示位置關(guān)系對(duì)照?qǐng)D(見附錄一)2〕I/O緩沖器〔DB0~DB7〕I/O緩沖器為雙向三態(tài)數(shù)據(jù)緩沖器。是LCM〔液晶顯示模塊〕內(nèi)部總線與MPU總線的結(jié)合部。其作用是將兩個(gè)不同時(shí)鐘下工作的系統(tǒng)連接起來,實(shí)現(xiàn)通訊。I/O緩沖器在片選信號(hào)/CS有效狀態(tài)下,I/O緩沖器開放,實(shí)現(xiàn)LCM〔液晶顯示模塊〕與MPU之間的數(shù)據(jù)傳遞。當(dāng)片選信號(hào)為無效狀態(tài)時(shí),I/O緩沖器將中斷LCM〔液晶顯示模塊〕內(nèi)部總線與MPU數(shù)據(jù)總線的聯(lián)系,對(duì)外總線呈高阻狀態(tài),從而不影響MPU的其他數(shù)據(jù)操作功能。3〕輸入存放器輸入存放器用于接收在MPU運(yùn)行速度下傳送給LCM〔液晶顯示模塊〕的數(shù)據(jù)并將其鎖存在輸入存放器內(nèi),其輸出將在LCM〔液晶顯示模塊〕內(nèi)部工作時(shí)鐘的運(yùn)作下將數(shù)據(jù)寫入指令存放器或顯示存儲(chǔ)器內(nèi)。4〕輸出存放器輸出存放器用于暫存從顯示存儲(chǔ)器讀出的數(shù)據(jù),在MPU讀操作時(shí),輸出存放器將當(dāng)前鎖存的數(shù)據(jù)通過I/O緩沖器送入MPU數(shù)據(jù)總線上。5〕指令存放器指令存放器用于接收MPU發(fā)來的指令代碼,通過譯碼將指令代碼置入相關(guān)的存放器或觸發(fā)器內(nèi)。6〕狀態(tài)字存放器狀態(tài)字存放器是LCM〔液晶顯示模塊〕與MPU通訊時(shí)唯一的“握手〞信號(hào)。狀態(tài)字存放器向MPU表示了LCM〔液晶顯示模塊〕當(dāng)前的工作狀態(tài)。尤其是狀態(tài)字中的“忙〞標(biāo)志位是MPU在每次對(duì)LCM〔液晶顯示模塊〕訪問時(shí)必須要讀出判別的狀態(tài)位。當(dāng)處于“忙〞標(biāo)志位時(shí),I/O緩沖器被封鎖,此時(shí)MPU對(duì)LCM〔液晶顯示模塊〕的任何操作〔除讀狀態(tài)字操作外〕都將是無效的。7〕X地址存放器X地址存放器是一個(gè)三位頁(yè)地址存放器,其輸出控制著DDRAM中8個(gè)頁(yè)面的選擇,也是控制著數(shù)據(jù)傳輸通道的八選一選擇器。X地址存放器可以由MPU以指令形式設(shè)置。X地址存放器沒有自動(dòng)修改功能,所以要想轉(zhuǎn)換頁(yè)面需要重新設(shè)置X地址存放器的內(nèi)容。8〕Y地址計(jì)數(shù)器Y地址計(jì)數(shù)器是一個(gè)6位循環(huán)加一計(jì)數(shù)器。它管理某一頁(yè)面上的64個(gè)單元。Y地址計(jì)數(shù)器可以由MPU以指令形式設(shè)置,它和頁(yè)地址指針結(jié)合唯一選通顯示存儲(chǔ)器的一個(gè)單元,Y地址計(jì)數(shù)器具有自動(dòng)加一功能。在顯示存儲(chǔ)器讀/寫操作后Y地址計(jì)數(shù)將自動(dòng)加一。當(dāng)計(jì)數(shù)器加至3FH后循環(huán)歸零再繼續(xù)加一。9〕Z地址計(jì)數(shù)器Z地址計(jì)數(shù)器是一個(gè)6位地址計(jì)數(shù)器,用于確定當(dāng)前顯示行的掃描地址。Z地址計(jì)數(shù)器具有自動(dòng)加一功能。它與行驅(qū)動(dòng)器的行掃描輸出同步,選擇相應(yīng)的列驅(qū)動(dòng)的數(shù)據(jù)輸出。10〕顯示起始行存放器顯示起始行存放器是一個(gè)6位存放器,它規(guī)定了顯示存儲(chǔ)器所對(duì)應(yīng)顯示屏上第一行的行號(hào)。該行的數(shù)據(jù)將作為顯示屏上第一行顯示狀態(tài)的控制信號(hào)。11〕顯示開/關(guān)觸發(fā)器顯示開/關(guān)觸發(fā)器的作用就是控制顯示驅(qū)動(dòng)輸出的電平以控制顯示屏的開關(guān)。在觸發(fā)器輸出為“關(guān)〞電平時(shí),顯示數(shù)據(jù)鎖存器的輸入被封鎖并將輸出置“0〞,從而使顯示驅(qū)動(dòng)輸出全部為非選擇波形,顯示屏呈不顯示狀態(tài)。在觸發(fā)器輸出為“開〞電平時(shí),顯示數(shù)據(jù)鎖存器被控制,顯示驅(qū)動(dòng)輸出受顯示驅(qū)動(dòng)數(shù)據(jù)總線上數(shù)據(jù)控制,顯示屏將呈顯示狀態(tài)。12〕復(fù)位端/RES復(fù)位端/RES用于在LCM〔液晶顯示模塊〕上電時(shí)或需要時(shí)實(shí)現(xiàn)硬件電路對(duì)LCM〔液晶顯示模塊〕的復(fù)位。該復(fù)位功能將實(shí)現(xiàn):A設(shè)置顯示狀態(tài)為關(guān)顯示狀態(tài)B顯示起始存放器清零。顯示RAM第一行對(duì)應(yīng)顯示屏上的第一行。C在復(fù)位期間狀態(tài)字中RESET位置1。指令說明1.指令表指令名稱控制信號(hào)控制代碼RSR/WD7D6D5D4D3D2D1D0顯示開關(guān)設(shè)置000011111D顯示起始行設(shè)置0011L5L4L3L2L1L0頁(yè)面地址設(shè)置0010111P2P1P0列地址設(shè)置0001C5C4C3C2C1C0讀取狀態(tài)字01BUSY0ON/OFFRESET0000寫顯示數(shù)據(jù)10數(shù)據(jù)讀顯示數(shù)據(jù)11數(shù)據(jù)詳細(xì)解釋各個(gè)指令功能讀狀態(tài)字格式BUSY0ON/OFFRESET0000狀態(tài)字是MPU了解LCM〔液晶顯示模塊〕當(dāng)前狀態(tài),或LCM向MPU提供其內(nèi)部狀態(tài)的唯一的信息渠道。BUSY表示當(dāng)前LCM接口控制電路運(yùn)行狀態(tài)。BUSY=1表示LCM正在處理MPU發(fā)過來的指令或數(shù)據(jù)。此時(shí)接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0表示LCM接口控制電路已外于“準(zhǔn)備好〞狀態(tài),等待MPU的訪問。ON/OFF表示當(dāng)前的顯示狀態(tài)。ON/OFF=1表示關(guān)顯示狀態(tài),ON/OFF=0表示開顯示狀態(tài)。RESET表示當(dāng)前LCM的工作狀態(tài),即反映/RES端的電平狀態(tài)。當(dāng)/RES為低電平狀態(tài)時(shí),LCM處于復(fù)位工作狀態(tài),標(biāo)志位RESET=1。當(dāng)/REST為高電平狀態(tài)時(shí),LCM為正常工作狀態(tài),標(biāo)志位RESET=0。在指令設(shè)置和數(shù)據(jù)讀寫時(shí)要注意狀態(tài)字中的BUSY標(biāo)志。只有在BUSY=0時(shí),MPU對(duì)LCM的操作才能有效。因此MPU在每次對(duì)LCM操作之前,都要讀出狀態(tài)字判斷BUSY是否為“0〞。假設(shè)不為“0〞,那么MPU需要等待,直至BUSY=0為止。2)顯示開關(guān)設(shè)置格式0011111D該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開/關(guān)的控制位。當(dāng)D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。此時(shí)在狀態(tài)字中ON/OFF=0。當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲(chǔ)器并沒有被破壞,在狀態(tài)字中ON/OFF=1。3)顯示起始行設(shè)置格式11L5L4L3L2L1L0該指令設(shè)置了顯示起始行存放器的內(nèi)容。LCM通過/CS的選擇分別具有64行顯示的管理能力,該指令中L5~L0為顯示起始行的地址,取值在0~3FH〔1~64行〕范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對(duì)應(yīng)的顯示存儲(chǔ)器的行地址。如果定時(shí)間隔地,等間距地修改〔如加一或減一〕顯示起始行存放器的內(nèi)容,那么顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動(dòng)的顯示效果。4)頁(yè)面地址設(shè)置格式10111P2P1P0該指令設(shè)置了頁(yè)面地址—X地址存放器的內(nèi)容。LCM將顯示存儲(chǔ)器分成8頁(yè),指令代碼中P2~P0就是要確定當(dāng)前所要選擇的頁(yè)面地址,取值范圍為0~7H,代表第1~8頁(yè)。該指令規(guī)定了以后的讀/寫操作將在哪一個(gè)頁(yè)面上進(jìn)行。5)列地址設(shè)置格式01C5C4C3C2C1C0該指令設(shè)置了Y地址數(shù)計(jì)數(shù)器的內(nèi)容,LCM通過/CS的選擇分別具有64列顯示的管理能力,C5~C0=0~3FH〔1~64〕代表某一頁(yè)面上的某一單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個(gè)單元上進(jìn)行。Y地址計(jì)數(shù)器具有自動(dòng)加一功能,在每一次讀/寫數(shù)據(jù)后它將自動(dòng)加一,所以在連續(xù)進(jìn)行讀/寫數(shù)據(jù)時(shí),Y地址計(jì)數(shù)器不必每次都設(shè)置一次。頁(yè)面地址的設(shè)置和列地址的設(shè)置將顯示存儲(chǔ)器單元唯一地確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。6)寫顯示數(shù)據(jù)格式數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲(chǔ)器的單元內(nèi)。操作完成后列地址計(jì)數(shù)器自動(dòng)加一。7)讀顯示數(shù)據(jù)格式數(shù)據(jù)該操作將LCM接口部的輸出存放器內(nèi)容讀出,然后列地址計(jì)數(shù)器自動(dòng)加一。液晶顯示原理1漢字和英文顯示原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對(duì)LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位〔一字節(jié)〕即可。而對(duì)于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)方法,就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位那么留給英文字符使用,即英文的內(nèi)碼。那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖1所示:圖1“A〞字模圖

而中文的“你〞在字模中的記載卻如圖2所示:圖2“你〞字模圖根據(jù)芯片的不同取模的方式不同,有多種取模方式:?jiǎn)紊c(diǎn)陣液晶字模,橫向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,橫向取模,字節(jié)倒序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)正序,單色點(diǎn)陣液晶字模,縱向取模,字節(jié)倒序等等。而PROTUES中的AMPIRE12684為縱向取模,字節(jié)倒序液晶。圖形顯示先設(shè)頁(yè)地址再設(shè)列地址頁(yè)地址范圍0xb8~0xbf列平地址范圍0x40~0x7f繪圖RAM的地址計(jì)數(shù)器〔AC〕只對(duì)列地址自動(dòng)加一,當(dāng)列地址=0x7FDDRAM的坐標(biāo)地址與資料排列順序如下列圖:軟件仿真1漢字顯示在Protues軟件中選擇所需元件,搭建的電路圖如圖1所示。將編寫的代碼燒寫到單片機(jī)里,運(yùn)行液晶顯示正常2向上滾動(dòng)顯示3、PCB圖四、局部實(shí)驗(yàn)代碼〔向上滾動(dòng)顯示〕#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineLCDLCDDisp_Off0x3e#defineLCDLCDDisp_On0x3f#definePage_Add0xb8//頁(yè)地址#defineLCDCol_Add0x40//列地址#defineStart_Line0xC0//行地址/*****液晶顯示器的端口定義*****/#definedata_oraP0/*液晶數(shù)據(jù)總線*/sbitLCDMcs=P2^1;/*片選1*/sbitLCDScs=P2^2;/*片選2*/sbitRESET=P2^3;/*復(fù)位信號(hào)*/sbitLCDDi=P2^4;/*數(shù)據(jù)/指令選擇*/sbitLCDRW=P2^5;/*讀/寫選擇*/sbitLCDEnable=P2^6;/*讀/寫使能*/ucharcodeHz_guang[]={/*--文字:廣--*//*--宋體12;此字體下對(duì)應(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;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x02,0x02,0xE2,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,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;此字體下對(duì)應(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,0x04,0xFF,0x02,0x02,0x02,0x00};ucharcodeHz_ji[]={/*--文字:技--*//*--宋體12;此字體下對(duì)應(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;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x20,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};ucharcodeHz_xue[]={/*--文字:學(xué)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00};ucharcodeHz_chen[]={/*--文字:陳--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x00,0xFE,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[]={/*--文字:競(jìng)--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x20,0x20,0x24,0xA4,0xAC,0xB4,0xA5,0xA6,0xA4,0xB4,0xAC,0xA4,0x24,0x20,0x20,0x00,0x80,0x80,0x40,0x47,0x24,0x1C,0x04,0x04,0x04,0x7C,0x84,0x87,0x80,0x80,0xE0,0x00};ucharcodeHz_xiong[]={/*--文字:雄--*//*--宋體12;此字體下對(duì)應(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};ucharcodeHz_tong[]={/*--文字:通--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x40,0x42,0xCC,0x00,0x00,0xE2,0x22,0x2A,0x2A,0xF2,0x2A,0x26,0x22,0xE0,0x00,0x00,0x80,0x40,0x3F,0x40,0x80,0xFF,0x89,0x89,0x89,0xBF,0x89,0xA9,0xC9,0xBF,0x80,0x00};ucharcodeHz_xin[]={/*--文字:信--*//*--宋體12;此字體下對(duì)應(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[]={/*--文字:1--*//*--宋體12;此字體下對(duì)應(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;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,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;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84,0x84,0x00,0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00};ucharcodeHz_wo[]={/*--文字:我--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00};ucharcodeHz_ai[]={/*--文字:愛--*//*--宋體12;此字體下對(duì)應(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};ucharcodeHz_m[]={/*--文字:M--*//*--宋體12;此字體下對(duì)應(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};ucharcodeHz_c[]={/*--文字:C--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0xC0,0x30,0x08,0x08,0x08,0x08,0x38,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_u[]={/*--文字:U--*//*--宋體12;此字體下對(duì)應(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í)程序入口參數(shù):t出口參數(shù):****************************************************************************/voidLCDdelay(unsignedintt){ unsignedinti,j; for(i=0;i<t;i++); for(j=0;j<10;j++);}/****************************************************************************狀態(tài)檢查,LCD是否忙*****************************************************************************/voidCheckState() {unsignedchardat,DATA;//狀態(tài)信息〔判斷是否忙〕LCDDi=0;//數(shù)據(jù)\指令選擇,D/I〔RS〕="L",表示DB7∽DB0為顯示指令數(shù)據(jù)LCDRW=1;//R/W="H",E="H"數(shù)據(jù)被讀到DB7∽DB0do{DATA=0x00;LCDEnable=1; //EN下降源 LCDdelay(2);//延時(shí) dat=DATA;LCDEnable=0;dat=0x80&dat;//僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信號(hào))}while(!(dat==0x00));}/*****************************************************************************函數(shù)功能:寫命令到LCD程序,RS(DI)=L,RW=L,EN=H,即來一個(gè)脈沖寫一次入口參數(shù):cmdcode出口參數(shù):*****************************************************************************/voidwrite_com(unsignedcharcmdcode){CheckState();//檢測(cè)LCD是否忙 LCDDi=0; LCDRW=0; P0=cmdcode; LCDdelay(2); LCDEnable=1; LCDdelay(2); LCDEnable=0;}/*****************************************************************************函數(shù)功能:LCD初始化程序入口參數(shù):出口參數(shù):*****************************************************************************/voidinit_lcd(){ LCDdelay(100); LCDMcs=1;//剛開始關(guān)閉兩屏 LCDScs=1; LCDdelay(100); write_com(LCDLCDDisp_Off); //寫初始化命令 write_com(Page_Add+0); write_com(Start_Line+0); write_com(LCDCol_Add+0); write_com(LCDLCDDisp_On);}/*****************************************************************************函數(shù)功能:寫數(shù)據(jù)到LCD程序,RS(DI)=H,RW=L,EN=H,即來一個(gè)脈沖寫一次入口參數(shù):LCDDispdata出口參數(shù):*****************************************************************************/voidwrite_data(unsignedcharLCDDispdata){CheckState();//檢測(cè)LCD是否忙 LCDDi=1; LCDRW=0; P0=LCDDispdata; LCDdelay(2); LCDEnable=1; LCDdelay(2); LCDEnable=0;}/*****************************************************************************函數(shù)功能:去除LCD內(nèi)存程序入口參數(shù):pag,col,hzk出口參數(shù):*****************************************************************************/voidClr_Scr(){ unsignedcharj,k; LCDMcs=0;//左、右屏均開顯示 LCDScs=0; write_com(Page_Add+0); write_com(LCDCol_Add+0); for(k=0;k<8;k++)//控制頁(yè)數(shù)0-7,共8頁(yè) { write_com(Page_Add+k);//每頁(yè)每頁(yè)進(jìn)行寫 for(j=0;j<64;j++)//每頁(yè)最多可寫32個(gè)中文文字或64個(gè)ASCII字符 { write_com(LCDCol_Add+j); write_data(0x00);//控制列數(shù)0-63,共64列,寫點(diǎn)內(nèi)容,列地址自動(dòng)加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_com(Page_Add+page+j); write_com(LCDCol_Add+column); for(i=0;i<16;i++) write_data(hzk[16*j+i]); }}voiddis_gxkjdx(){ LCDMcs=0;//左屏開顯示 LCDScs=1; hz_LCDDisp16(0,16,Hz_guang);//Hz_Wo為某個(gè)漢字的首地址 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(0,32,Hz_xue);}voiddis_txb(){ LCDMcs=0;//左屏開顯示 LCDScs=1; hz_LCDDisp16(2,16,Hz_tong);//Hz_Wo為某個(gè)漢字的首地址 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);}voiddis_cjx(){ LCDMcs=0;//左屏開顯示 LCDScs=1; hz_LCDDisp16(4,16,Hz_chen);//Hz_Wo為某個(gè)漢字的首地址 hz_LCDDisp16(4,48,Hz_jing); LC

溫馨提示

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

評(píng)論

0/150

提交評(píng)論