版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LCD12864原理與應(yīng)用 1、LCD12864簡(jiǎn)介: LCD12864分為兩種,帶字庫(kù)的和不帶字庫(kù)的,不帶字庫(kù)的液晶顯示漢字的時(shí)候可以選擇自己喜歡的字體。而帶字庫(kù)的液晶,只能顯示GB2312字體,當(dāng)然也可以顯示其他的字體,不過是用圖片的形式顯示。 下面介紹不帶字庫(kù)的LCD12864,以Proteus中的AMPIRE12864為例,如下圖所示,它的液晶驅(qū)動(dòng)器為KS0108。引腳功能:引腳符號(hào)狀態(tài)引腳名稱功能CS1,CS2輸入芯片片選端,都是低電平有效CS1=0開左屏幕,CS1=1關(guān)左屏幕CS2=0開右屏幕,CS2=1關(guān)右屏幕RS輸入數(shù)據(jù)/命令選擇信號(hào)RS=1為數(shù)據(jù)操作,RS=0為寫指令或讀狀態(tài)
2、RW輸入讀寫選擇信號(hào)R/W=1為讀選通,R/W=0為寫選通E輸入讀寫使能信號(hào)在E下降沿,數(shù)據(jù)被鎖存(寫)入液晶,在E高電平期間,數(shù)據(jù)被讀出 DB0DB7三態(tài)數(shù)據(jù)總線數(shù)據(jù)或指令的傳送通道RST輸入復(fù)位信號(hào),低電平時(shí)復(fù)位復(fù)位時(shí),關(guān)閉液晶顯示,使顯示起始行為0,可以跟單片機(jī)的復(fù)位引腳RST相連,也可以直接接VCC,使之不起作用V0液晶顯示器驅(qū)動(dòng)電壓-Vout-10VLCD驅(qū)動(dòng)負(fù)電壓 與帶字庫(kù)的液晶不同,此塊液晶含有兩個(gè)液晶驅(qū)動(dòng)器,每塊驅(qū)動(dòng)器都控制64*64個(gè)點(diǎn),分為左右兩個(gè)屏幕顯示,總共為128*64個(gè)點(diǎn)(即有12864個(gè)點(diǎn))。這就是為什么AMPIRE128*64有CS1和CS2兩個(gè)片選端的原因。此
3、液晶有8頁(yè),一頁(yè)有8行點(diǎn)陣點(diǎn),左右各64列,共128列。如下圖所示:2、LCD12864中的幾條重要指令(一)行(line)設(shè)置命令:由此可見顯示的起始行地址為0XC0,共64行,有規(guī)律地改變起始行號(hào),可以實(shí)現(xiàn)滾屏效果。(二)頁(yè)(page)設(shè)置指令:起始頁(yè)地址為0XB8,因?yàn)橐壕в?4行點(diǎn),分為8頁(yè),每頁(yè)就有8行點(diǎn)。(三)列(column)地址設(shè)置指令每塊驅(qū)動(dòng)器的列地址都是從0X40到0X7F,共64列,所以此液晶共有128列點(diǎn)。(四)讀狀態(tài)指令3、用LCD12864顯示漢字(一) 由于這塊液晶不帶字庫(kù),我們就要自己編寫字庫(kù),編寫字庫(kù)所用的字模提取軟件為Zimo21(軟件下載地址),LCD16
4、02顯示自定義字符的時(shí)候也是用它。在取模之前我們要進(jìn)行一些設(shè)定,根據(jù)此液晶的顯示原理,設(shè)置為“縱向取模,字節(jié)倒序”,如下圖所示:(若不是這樣,則取模得到的數(shù)據(jù)不是我們想要的,將會(huì)出現(xiàn)亂碼,同樣可以在下載到關(guān)于字模提取原理文檔)字體選擇默認(rèn)的“宋體,常規(guī),小四號(hào)”,小四號(hào)為16*16大小,如下圖所示:LCD12864與單片機(jī)的連接如下圖所示:C程序如下:#include#include#define uchar unsigned char#define uint unsigned int/下面是“歡迎訪問伊人憔悴百度空間”點(diǎn)陣數(shù)據(jù),一個(gè)漢字有32字節(jié)數(shù)據(jù)組成unsigned char code
5、huan= / 歡0x04,0x24,0x44,0x84,0x64,0x9C,0x40,0x30,0x0F,0xC8,0x08,0x08,0x28,0x18,0x00,0x00,0x10,0x08,0x06,0x01,0x82,0x4C,0x20,0x18,0x06,0x01,0x06,0x18,0x20,0x40,0x80,0x00;unsigned char code ying= /迎0x40,0x40,0x42,0xCC,0x00,0x00,0xFC,0x04,0x02,0x00,0xFC,0x04,0x04,0xFC,0x00,0x00,0x00,0x40,0x20,0x1F,0x20
6、,0x40,0x4F,0x44,0x42,0x40,0x7F,0x42,0x44,0x43,0x40,0x00;unsigned char code fang= /訪0x40,0x40,0x42,0xCC,0x00,0x08,0x08,0xF8,0x89,0x8E,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x00,0x00,0x3F,0x90,0x48,0x30,0x0F,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x00;unsigned char code wen= /問0x00,0xF8,0x01,0x02,0x00,0xE2,0
7、x22,0x22,0x22,0xE2,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x1F,0x00,0x40,0x80,0x7F,0x00,0x00;unsigned char code yi= /伊0x00,0x80,0x60,0xF8,0x07,0x20,0x22,0x22,0xFE,0x22,0x22,0x22,0xFE,0x20,0x20,0x00,0x01,0x00,0x00,0xFF,0x00,0x80,0x42,0x32,0x0F,0x02,0x02,0x02,0x07,0
8、x00,0x00,0x00;unsigned char code ren= /人0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00;unsigned char code qiao= /憔0xE0,0x00,0xFF,0x10,0x20,0x10,0xFC,0x27,0x24,0x25,0xFE,0x24,0x24,0x24,0x0
9、4,0x00,0x01,0x00,0xFF,0x00,0x80,0x60,0x1F,0x29,0xC9,0x09,0x2F,0xC9,0x09,0x29,0xC8,0x00;unsigned char code cui= /悴0x80,0x70,0x00,0xFF,0x08,0x90,0x44,0x34,0x45,0x86,0x44,0x34,0x44,0x84,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x04,0x04,0x04,0x04,0xFE,0x04,0x04,0x04,0x04,0x04,0x00;unsigned char code bai= /百0
10、x02,0x02,0xE2,0x22,0x22,0x32,0x2A,0x26,0x22,0x22,0x22,0x22,0xE2,0x02,0x02,0x00,0x00,0x00,0xFF,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFF,0x00,0x00,0x00;unsigned char code du= /度0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00,0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0
11、x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00;unsigned char code kong= /空0x10,0x0C,0x44,0x24,0x14,0x04,0x05,0x06,0x04,0x04,0x14,0x24,0x44,0x14,0x0C,0x00,0x00,0x40,0x40,0x41,0x41,0x41,0x41,0x7F,0x41,0x41,0x41,0x41,0x40,0x40,0x00,0x00;unsigned char code jian= /間0x00,0xF8,0x01,0x06,0x00,0xF0,0x12,0x12,0x
12、12,0xF2,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x1F,0x11,0x11,0x11,0x1F,0x00,0x40,0x80,0x7F,0x00,0x00;sbit CS1=P20;/片選1,低電平有效,CS1=0開左屏幕,CS1=1關(guān)左屏幕sbit CS2=P21;/片選2,低電平有效,CS2=0開右屏幕,CS2=1關(guān)右屏幕sbit RS=P22;/數(shù)據(jù),指令選擇信號(hào),RS=1為數(shù)據(jù)操作,RS=0為寫指令或讀狀態(tài)(一般為讀忙標(biāo)志)sbit RW=P23;/讀寫選擇信號(hào),RW=1為讀選通,RW=0為寫選通sbit
13、EN=P24;/讀寫使能信號(hào)void busy()/忙檢測(cè)函數(shù)P0=0X00; /這句不能少RS=0; RW=1;EN=1;while(P0&0X80);/P0&0X80結(jié)果為真則一直執(zhí)行空操作,也就是說(shuō)P0&0X80為0則結(jié)束循環(huán)EN=0;void wcmd(uchar cmd)busy(); /每次寫入指令或數(shù)據(jù)之前都進(jìn)行忙檢測(cè)RS=0;RW=0;P0=cmd;EN=1;_nop_();_nop_();/在EN下降沿寫入數(shù)據(jù)和指令EN=0;void wdata(uchar dat) /寫命令和寫數(shù)據(jù)只在RS=0或RS=1上不同,其余都相同busy();RS=1;RW=0;P0=dat;EN
14、=1;_nop_();_nop_();/在EN下降沿寫入數(shù)據(jù)和指令EN=0;void set_page(uchar page)/設(shè)置頁(yè),12864LCD共有8頁(yè),每頁(yè)有8行點(diǎn)陣點(diǎn)。page=0xb8|page; /首頁(yè)地址為0XB8wcmd(page); /page取值范圍為07,表示第1到8頁(yè)void set_line(uchar line)/設(shè)置顯示的起始行,共有063行,一般從0行開始顯示line=0xc0|line; /起始行地址0XC0wcmd(line);/line取值范圍為063,表示第1到64行void set_column(uchar column)/設(shè)置顯示的列/colum
15、n=column&0x3f; /列的最大值為0X3F,即64column=0x40|column; /列的首地址為0X40,wcmd(column); /column的取值范圍為063,共64列void set_onoff(uchar onoff)/設(shè)置顯示開關(guān),onoff取值為0或1onoff|=0x3e;/0X3E是關(guān)顯示,0X3F是開顯示wcmd(onoff);/所以若onoff為0,則表示關(guān)顯示,onoff為1,則表示開顯示void select_screen(uchar screen)/選屏,screen取值范圍為0,1,2switch(screen)case 0:CS1=0;CS2
16、=0;break; /全屏case 1:CS1=0;CS2=1;break; /左半屏case 2:CS1=1;CS2=0;break; /右半屏default:break;void clear_screen(uchar screen)/清屏uchar i,j;select_screen(screen);/先選屏for(i=0;i8;i+)/控制頁(yè)數(shù)07,共8頁(yè)set_page(i);/設(shè)置頁(yè)set_column(0); /設(shè)置列,每頁(yè)都從第1列開始,共64列for(j=0;j64;j+)/控制列數(shù)063,共64列wdata(0x00);/寫入0,列地址指針會(huì)自動(dòng)加1 void init()/
17、LCD初始化busy(); /忙檢測(cè)select_screen(0);/選屏,全屏set_onoff(0);/關(guān)顯示select_screen(0); /選屏,全屏set_onoff(1); /開顯示select_screen(0); /選屏,全屏clear_screen(0); /清屏set_line(0); /起始行:0void show(uchar screen,uchar page,uchar column,uchar *p)/顯示一個(gè)漢字,一個(gè)漢字有32字節(jié)數(shù)據(jù) uchar i;/screen表示選擇屏幕,page表示頁(yè),column表示列,*p表示漢字的數(shù)組select_scree
18、n(screen); /選屏set_page(page); /設(shè)置頁(yè),寫上半頁(yè)set_column(column);/設(shè)置列for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出wdata(pi); /漢字的上半部分set_page(page+1); /寫下半頁(yè)set_column(column);/控制列for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出wdata(pi+16); /漢字的下半部分void main()init(); /LCD初始化clear_screen(0); /清屏set_line(0); /顯示開始行/1表示左屏顯示,0表示從0頁(yè)開始顯示。因?yàn)橐豁?yè)只有8行點(diǎn),/而
19、顯示一個(gè)漢字需要16行點(diǎn)(整屏有64行點(diǎn)),所以顯示一個(gè)漢字需要2頁(yè)/第0頁(yè)顯示“歡”字的上半部分,第1頁(yè)顯示“歡”漢字的下半部分/2*16表示從第32列開始顯示,前面空出031列(即2個(gè)字的位置)show(1,0,2*16,huan);/歡/1表示左屏顯示,0表示從0頁(yè)開始顯示/3*16表示從第48列開始顯示,前面空出0477列(即3個(gè)漢字的位置)show(1,0,3*16,ying);/迎/2表示右屏顯示,0表示從0頁(yè)開始顯示/0*16表示從第0列開始顯示(即第一個(gè)漢字的位置)show(2,0,0*16,fang);/訪/1*16表示從第16列開始顯示,前面空出015列(即一個(gè)漢字的位置)
20、show(2,0,1*16,wen); /問/左屏開,從第3頁(yè)(共8頁(yè))第0列開始顯示,即第3,4頁(yè)顯示”伊人憔悴百度空間“幾個(gè)字show(1,2,0*16,yi); /伊show(1,2,1*16,ren); /人show(1,2,2*16,qiao); /憔show(1,2,3*16,cui); /悴show(2,2,0*16,bai); /百show(2,2,1*16,du); /度show(2,2,2*16,kong); /空show(2,2,3*16,jian); /間while(1);4、用LCD12864顯示漢字(二)電路圖如下圖所示:C程序如下:#include #includ
21、e#define uchar unsigned char#define uint unsigned int#define screen_on 0x3f /設(shè)置屏幕開關(guān)顯示,0x3f表示開顯示#define screen_off 0x3e /0x3e表示關(guān)顯示#define line 0xC0 /首行地址為0XC0#define page 0xb8 /首頁(yè)地址為0XB8#define col 0x40 /首列地址為0X40sbit CS1=P20 ; /*片選1*/sbit CS2=P21 ; /*片選2*/sbit RS=P22 ; /*數(shù)據(jù)/指令 選擇*/sbit RW=P23 ; /*讀/
22、寫 選擇*/sbit EN=P24 ; /*讀/寫 使能*/void delay(uint t) while(-t);uchar code dong= /*- 文字: 東 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x08,0x88,0x48,0x28,0x18,0x0F,0xE8,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x20,0x11,0x09,0x05,0x41,0x81,0x7F,0x01,0x01,0x05,0x09,0x11,0x20,0x00,0x00;uchar code hua= /*
23、- 文字: 華 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x20,0x10,0x08,0xFC,0x03,0x20,0x20,0x10,0x7F,0x88,0x88,0x84,0x82,0xE0,0x00,0x00,0x04,0x04,0x04,0x05,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00;uchar code li=/*- 文字: 理 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x04,0x84,0x84,0xFC,0x84,0x84,0x00,0
24、xFE,0x92,0x92,0xFE,0x92,0x92,0xFE,0x00,0x00,0x20,0x60,0x20,0x1F,0x10,0x10,0x40,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x40,0x00;uchar code gong=/*- 文字: 工 -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16 -*/0x00,0x04,0x04,0x04,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20
25、,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00;uchar code 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;uchar code xue=/*- 文字: 學(xué) -*/*- 宋體1
26、2; 此字體下對(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;void busy()/狀態(tài)檢查,LCD是否忙P0=0X00;RS=0;RW=1;EN=1;while(P0&0X80);EN=0; void wcmd(uchar cmd) /寫命令函數(shù) busy();/檢測(cè)LCD是否忙RS=0;RW=0;P0=cmd;EN=1;_nop_();_nop_();EN=0;void wdata(uchar dat)/寫數(shù)據(jù)函數(shù)與寫命令函數(shù)只在RS=1或RS=0上不同,其余都相同 busy();/檢測(cè)LCD是否忙RS=1;RW=0;P0=dat;EN=1;_nop_();_nop_();EN=0;void init()/初始化LCDdelay(100);CS1=1;/剛開始關(guān)閉兩屏CS2=1;delay(100);wcmd(screen_off);/關(guān)屏幕顯示,0X3E表示關(guān)顯示,0X3F表示開顯示wcmd(page);/設(shè)置頁(yè)地
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版權(quán)授權(quán)與分成協(xié)議
- 2024年軟件定制開發(fā)與技術(shù)支持服務(wù)合同
- 2024年精準(zhǔn)醫(yī)療體檢服務(wù)合同
- 2024年蔬菜種植與農(nóng)業(yè)科技創(chuàng)新承包協(xié)議3篇
- 疫苗接種服務(wù)的總結(jié)與未來(lái)計(jì)劃
- 化工行業(yè)危險(xiǎn)品處理流程總結(jié)
- 2025版股權(quán)轉(zhuǎn)讓合同標(biāo)的及義務(wù)規(guī)定書3篇
- 2024年貨車租賃合同:貨車類型多樣滿足不同需求3篇
- 媒體行業(yè)安全管理經(jīng)驗(yàn)分享
- 外科門診護(hù)理工作總結(jié)
- 招標(biāo)代理成果文件質(zhì)量保證措施
- 石油英語(yǔ)詞匯
- 《夜宿山寺》-完整版課件
- 滬教牛津版八年級(jí)上冊(cè)初二英語(yǔ)期末測(cè)試卷(5套)
- 北京市海淀區(qū)2020-2021學(xué)年度第一學(xué)期期末初三物理檢測(cè)試卷及答案
- 《潔凈工程項(xiàng)目定額》(征求意見稿)
- 家庭室內(nèi)裝飾裝修工程保修單
- 小學(xué)語(yǔ)文課堂提問有效性策略研究方案
- 物業(yè)上門維修收費(fèi)標(biāo)準(zhǔn)
- ATS技術(shù)交流(新型發(fā)動(dòng)機(jī)智能恒溫節(jié)能冷卻系統(tǒng))100318
- 手術(shù)區(qū)皮膚的消毒和鋪巾ppt課件
評(píng)論
0/150
提交評(píng)論