




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、main.c#include #includest7565.h sbit key1=P20; sbit key2=P21; sbit key3=P30; sbit key4=P31;keyscan1(); keyscan2(); keyscan3();keyscan4();/k1=0,k2=0,k3=0,k4=0;/-全局變量-/ void Delay10ms(unsigned void delay(uchar z)uchar x,y; for(x=z;x0;x-)for(y=110;y0;y-);c);/z(ms)/*函 數(shù) 名函數(shù)功能: main: 主函數(shù): 無(wú): 無(wú)輸輸入出*/uchar
2、 i = 192; void main()Lcd12864_Init();Lcd12864_ClearScreen();while(1)a1: if(keyscan1()!=1)&(keyscan2()!=1)&(keyscan3()!=1)&(keyscan1()!=1)for (i=0; i192; i += 16)Lcd12864_ClearScreen();/-由于這個(gè)函數(shù)顯示方向正好相反-/、LCHAR(0, i, 園);Delay10ms(100);if(keyscan2()|keyscan3()|keyscan4()|keyscan1()goto a1;if(keyscan1()
3、=1)Lcd12864_Init(); Lcd12864_ClearScreen();while(1)for (i=0; i128; i += 16)Lcd12864_ClearScreen();/-由于這個(gè)函數(shù)顯示方向正好相反-/LDelay10ms(100);CHAR(0, i, );if(keyscan2()|keyscan3()|keyscan4()goto a1;if(keyscan2()=1)Lcd12864_Init(); Lcd12864_ClearScreen(); while(1)for (i=0; i128; i += 16)Lcd12864_ClearScreen();
4、/-由于這個(gè)函數(shù)顯示方向正好相反-/LDelay10ms(100);CHAR(0, i,);if(keyscan1()|keyscan3()|keyscan4()goto a1;if(keyscan3()=1)Lcd12864_Init(); Lcd12864_ClearScreen();while(1)for (i=0; i128; i += 16)Lcd12864_ClearScreen();/-由于這個(gè)函數(shù)顯示方向正好相反-/LDelay10ms(100);CHAR(0, i,);if(keyscan1()|keyscan2()|keyscan4()goto a1;if(keyscan4
5、()=1)Lcd12864_Init(); Lcd12864_ClearScreen();while(1)for (i=0; i0;c-)for(b=38;b0;b-)for(a=130;a0;a-);keyscan1()if( key1=0)delay(5);if( key1=0)while(!key1); return 1;return 0;return 0;0uskeyscan2()if( key2=0)delay(5);if( key2=0)while(!key2); return 1;return 0;return 0;keyscan3()if( key3=0)delay(5);if
6、( key3=0)while(!key3); return 1;return 0;return 0;keyscan4()if( key4=0)delay(5);if( key4=0)while(!key4); return 1;return 0;return 0;Reg51.h/*REG51.HHeader file feneric 80C51 and 80C31 microcontroller.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.s.*/#ifndef REG51_H#define REG51
7、_H/*BYTE Register*/sfr P0sfr P1 sfr P2 sfr P3 sfr PSW sfr ACC sfr Bsfr SP sfr DPLsfr DPH= 0 x80;= 0 x90;= 0 xA0;= 0 xB0;= 0 xD0;= 0 xE0;= 0 xF0;= 0 x81;= 0 x82;= 0 x83;sfr PCON = 0 x87;sfr TCON = 0 x88; sfr TMOD = 0 x89;sfr TL0sfr TL1 sfr TH0 sfr TH1 sfr IE sfr IP= 0 x8A;= 0 x8B;= 0 x8C;= 0 x8D;= 0
8、xA8;= 0 xB8;sfr SCON = 0 x98;sfr SBUF = 0 x99;/*BIT Register*/*PSWsbit CY sbit AC sbit F0 sbit RS1 sbit RS0sbit OV*/= 0 xD7;= 0 xD6;= 0 xD5;= 0 xD4;= 0 xD3;= 0 xD2;sbit P= 0 xD0;/*TCON*/sbit TF1sbit TR1 sbit TF0 sbit TR0 sbit IE1 sbit IT1 sbit IE0 sbit IT0= 0 x8F;= 0 x8E;= 0 x8D;= 0 x8C;= 0 x8B;= 0
9、x8A;= 0 x89;= 0 x88;/*IEsbit EA sbit ES sbit ET1 sbit EX1 sbit ET0 sbit EX0*/= 0 xAF;= 0 xAC;= 0 xAB;= 0 xAA;= 0 xA9;= 0 xA8;/*IPsbit PS sbit PT1 sbit PX1 sbit PT0sbit PX0*/= 0 xBC;= 0 xBB;= 0 xBA;= 0 xB9;= 0 xB8;/*P3sbit RD sbit WR sbit T1 sbit T0*/= 0 xB7;= 0 xB6;= 0 xB5;= 0 xB4;sbitsbit1 = 0 xB3;
10、0 = 0 xB2;sbit TXD= 0 xB1;sbit RXD= 0 xB0;/*SCON*/sbit SM0sbit SM1 sbit SM2 sbit REN sbit TB8sbit RB8= 0 x9F;= 0 x9E;= 0 x9D;= 0 x9C;= 0 x9B;= 0 x9A;sbit TIsbit RI= 0 x99;= 0 x98;#endifSt7565.h#ifndef ST7565_H #define ST7565_H#include#include/-包含字庫(kù)頭文件 #define CHAR_CODE/-重定義 #ifndef uchar#define ucha
11、r unsigned char#endif-/#ifndef u#define u #endifunsigned/-定時(shí)使用的 IO 口-/ #define DATA_PORT P0sbit LCD12864_CS= P32;sbit LCD12864_RSET = P33;sbit LCD12864_RSsbit LCD12864_RW sbit LCD12864_RD= P26;= P27;= P25;/-定義全局函數(shù)-/void LcdSt7565_WriteCmd(cmd); void LcdSt7565_WriteData(dat); void Lcd12864_Init();voi
12、d Lcd12864_ClearScreen(void);uchar LCHAR(uchar x, uchar y, uchar *cn);#endifrins.h/*RINS.Hrinsic functions for C51.Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.s.*/#ifndef #define RINS_HRINS_Hextern voidextern bit_nop_(void);_testbit_ (bit);extern unsigned char _cror_(unsigned
13、 char, unsigned char);extern unsigned_iror_(unsigned,unsigned char);extern unsigned long _lror_extern unsigned char _crol_(unsigned long, unsigned char);(unsigned char, unsigned char);extern unsigned_irol_(unsigned,unsigned char);extern unsigned long _lrol_(unsigned long, unsigned char);extern unsig
14、ned char _chkfloat_(float);extern voidextern void_push_pop_(unsigned char _sfr);(unsigned char _sfr);#endifSt7565.c#includest7565.h/*函 數(shù) 名函數(shù)功能: LCD12864_WriteCmd: 寫(xiě)入一個(gè)命令到 12864: cmd: 無(wú)輸輸入出*/void LcdSt7565_WriteCmd(cmd)/chip select,打開(kāi)片選/disable read,讀失能LCD12864_CS = 0;LCD12864_RD = 1;LCD12864_RS = 0;
15、LCD12864_RW = 0;d,選擇命令/select/select write,選擇寫(xiě)模式_nop_();_nop_();ommand,放置命令DATA_PORT = cmd; /p_nop_();_nop_();mand writing ,寫(xiě)入命令LCD12864_RW = 1;/*函 數(shù) 名函數(shù)功能: LcdSt7565_WriteData: 寫(xiě)入一個(gè)數(shù)據(jù)到 12864: dat: 無(wú)輸輸入出*/void LcdSt7565_WriteData(dat)LCD12864_CS = 0;/chip select,打開(kāi)片選 LCD12864_RD = 1;/disable read,讀失
16、能/select data,選擇數(shù)據(jù)/select write,選擇寫(xiě)模式LCD12864_RS = 1;LCD12864_RW = 0;_nop_();_nop_();/put data,放置數(shù)據(jù)DATA_PORT = dat;_nop_();_nop_();LCD12864_RW = 1;/data writing,寫(xiě)數(shù)據(jù)/*函 數(shù) 名函數(shù)功能: LCD12864_Init初始化 12864無(wú)無(wú):輸輸說(shuō)*入出明令指令可以查看例程文件夾下的ST7565p: LCD12864* 的第 51 頁(yè)的位置。*/void Lcd12864_Init()uchar i; LCD12864_RSET =
17、0;for (i=0; i100; i+); LCD12864_CS = 0;LCD12864_RSET = 1;/-Star Initial Sequence/-程序初始化設(shè)置,具體命令可以看文件夾下/-初始化-/ LcdSt7565_WriteCmd(0 xE2);/resetfor (i=0; i100; i+);/延時(shí)一下/-表格第 8 個(gè)命令,0 xA0 段(左右)方向選擇正常方向(0 xA1 為反方向)-/LcdSt7565_WriteCmd(0 xA1);/Aelect segment direction/-表格第 15 個(gè)命令,0 xC8 普通(上下)方向選擇選擇反向,0 xC
18、0 為正常方向-/LcdSt7565_WriteCmd(0 xC8);mon direction/-表格第 9 個(gè)命令,0 xA6 為設(shè)置字體為黑色,背景為白色-/-0 xA7 為設(shè)置字體為白色,背景為黑色-/ LcdSt7565_WriteCmd(0 xA6);/reverse display/-表格第 10 個(gè)命令,0 xA4 像素正常顯示,0 xA5 像素全開(kāi)-/ LcdSt7565_WriteCmd(0 xA4);/normal display/-表格第 11 個(gè)命令,0 xA3 偏壓為 1/7,0 xA2 偏壓為 1/9-/ LcdSt7565_WriteCmd(0 xA2);/bi
19、as set 1/9/-表格第 19 個(gè)命令,這個(gè)是個(gè)雙字節(jié)令,0 xF800 選擇增壓為 4X;-/-0 xF801,選擇增壓為 5X,其實(shí)效果差不多-/ LcdSt7565_WriteCmd(0 xF8);/Boost ratio setLcdSt7565_WriteCmd(0 x01);/x4/-表格第 18 個(gè)命令,這個(gè)是個(gè)雙字節(jié)命令,高字節(jié)為 0X81,低字節(jié)可以-/-選擇從 0 x00 到 0X3F。用來(lái)設(shè)置背景光對(duì)比度。-/ LcdSt7565_WriteCmd(0 x81);/V0 a setLcdSt7565_WriteCmd(0 x23);/-表格第 17 個(gè)命令,選擇調(diào)節(jié)
20、電阻率-/ LcdSt7565_WriteCmd(0 x25);/Ra/Rb set/-表格第 16 個(gè)命令,電源設(shè)置。-/ LcdSt7565_WriteCmd(0 x2F);for (i=0; i100; i+);/-表格第 2 個(gè)命令,設(shè)置顯示開(kāi)始位置-/ LcdSt7565_WriteCmd(0 x40);/start line/-表格第 1 個(gè)命令,開(kāi)啟顯示-/ LcdSt7565_WriteCmd(0 xAF);/ display onfor (i=0; i100; i+);/*函 數(shù) 名函數(shù)功能: LCD12864_ClearScreen: 清屏 12864: 無(wú): 無(wú)輸輸入出*
21、/void Lcd12864_ClearScreen(void)uchar i, j;for(i=0; i8; i+)/-表格第 3 個(gè)命令,設(shè)置 Y 的坐標(biāo)-/-Y 軸/所以一般個(gè),一個(gè)坐標(biāo) 8 位,也就是有 8 個(gè)坐標(biāo)-/使用的也就是從 0 xB0 到 0 x07,就夠了-/LcdSt7565_WriteCmd(0 xB0+i);/-表格第 4 個(gè)命令,設(shè)置 X 坐標(biāo)-/-當(dāng)你的段初始化為 0 xA1 時(shí),X 坐標(biāo)從 0 x10,0 x04 到 0 x18,0 x04,一共 128 位-/-當(dāng)你的段初始化為 0 xA0 時(shí),X 坐標(biāo)從 0 x10,0 x00 到 0 x18,0 x00,一
22、共 128 位-/-在寫(xiě)入數(shù)據(jù)之后 X 坐標(biāo)的坐標(biāo)是會(huì)自動(dòng)加 1 的,/-的 X 坐標(biāo)從 0 x10,0 x00 開(kāi)始-/ LcdSt7565_WriteCmd(0 x10);LcdSt7565_WriteCmd(0 x04);初始化使用 0 xA0 所以-/-X 軸有 128 位,就一共刷 128 次,X 坐標(biāo)會(huì)自動(dòng)加 1,所以不用再設(shè)置坐標(biāo)-/for(j=0; j 7)return 0;/-X 的坐標(biāo)只能從 0 到 128,大于則直接返回-/ if(x 128)return 0;/求取 Y 坐標(biāo)的值y += 0 xB0;/-設(shè)置 Y 坐標(biāo)-/ LcdSt7565_WriteCmd(y);w
23、hile ( *cn != 0)/在 C 語(yǔ)言中字符串結(jié)束以0結(jié)尾/-設(shè)置 Y 坐標(biāo)-/ LcdSt7565_WriteCmd(y);x1 = (x 4) & 0 x0F;/由于 X 坐標(biāo)要兩句命令,分高低 4 位,所以這里先取出高4 位/去低四位x2 = x & 0 x0F;/-設(shè)置 X 坐標(biāo)-/LcdSt7565_WriteCmd(0 x10 + x1);/高 4 位LcdSt7565_WriteCmd(0 x04 + x2); /低 4 位for (wordNum=0; wordNum50; wordNum+)/-查詢要寫(xiě)的字在字庫(kù)中的位置-/if (CN16CHARwordNum.In
24、dex0 = *cn) &(CN16CHARwordNum.Index1 = *(cn+1)for (j=0; j32; j+) /寫(xiě)一個(gè)字/由于 16X16 用到兩個(gè) Y 坐標(biāo),當(dāng)大于等于 16 時(shí),切if (j = 16)換坐標(biāo)/-設(shè)置 Y 坐標(biāo)-/LcdSt7565_WriteCmd(y + 1);/-設(shè)置 X 坐標(biāo)-/ LcdSt7565_WriteCmd(0 x10 + x1);/高 4 位 LcdSt7565_WriteCmd(0 x04 + x2); /低 4 位LcdSt7565_WriteDN16CHARwordNum.Mskj);x += 16;/if 查到字結(jié)束 /for
25、 查字結(jié)束cn += 2;/while 結(jié)束return 1;#endifCharcode.h#ifndef CHARCODE_H #define CHARCODE_H#ifdef CHAR_CODE/ -漢字字模的數(shù)據(jù)結(jié)構(gòu)定義/ 漢字字模數(shù)據(jù)結(jié)構(gòu)struct Cn16CharTypeDefunsigned charIndex2; unsigned char Msk32;/ 漢字內(nèi)碼索引,一個(gè)漢字占兩個(gè)字節(jié)/ 點(diǎn)陣碼數(shù)據(jù)(16*16 有 32 個(gè)數(shù)據(jù))struct Cn16CharTypeDef code CN16CHAR=/*-文字:洋 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高
26、=16x16-*/洋,0 x00,0 x04,0 x04,0 xF4,0 x54,0 x54,0 xFF,0 x54,0 x54,0 x54,0 xFF,0 x54,0 x54,0 xF4,0 x04,0 x04, 0 x00,0 x00,0 x00,0 x01,0 xFD,0 x55,0 x55,0 x55,0 x55,0 x55,0 x55,0 x55,0 xFD,0 x01,0 x00,0 x00,/*-文字:雪 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/雪,0 x00,0 x0C,0 x14,0 x05,0 x55,0 x55,0 x55,0 x05,0
27、x7F,0 x05,0 x55,0 x55,0 x55,0 x05,0 x0C,0 x10, 0 x00,0 x00,0 x00,0 xFF,0 x49,0 x49,0 x49,0 x49,0 x49,0 x49,0 x49,0 x49,0 x49,0 x41,0 x00,0 x00,/*-文字:曹 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/曹,0 x00,0 x00,0 x10,0 x93,0 x94,0 x90,0 xF0,0 x90,0 x96,0 x91,0 x10,0 x00,0 x8C,0 x02,0 x60,0 x10, 0 x00,0 x04,0
28、x04,0 x04,0 x04,0 x04,0 xFF,0 x04,0 x04,0 x04,0 x04,0 x00,0 x01,0 x7E,0 x04,0 x04,/*-文字:、 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/、,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00, 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x30,0 x18,0 x
29、08,0 x04,0 x00,0 x00,/*-文字:蒙 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/蒙,0 x00,0 x80,0 x84,0 x44,0 x44,0 x24,0 x14,0 x0C,0 xFF,0 x0C,0 x14,0 x24,0 x44,0 x44,0 x84,0 x80, 0 x00,0 x08,0 x08,0 x08,0 x08,0 x09,0 x0B,0 x0D,0 x79,0 x89,0 x49,0 x09,0 x08,0 x08,0 x08,0 x08,/*-文字:李 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x1
30、6-*/李,0 x00,0 x1A,0 xAA,0 x8A,0 x8A,0 xAF,0 xAA,0 xAA,0 xAA,0 xAA,0 xAA,0 xAF,0 x8A,0 x8A,0 x9A,0 x22, 0 x00,0 x40,0 x40,0 x22,0 x24,0 x14,0 x08,0 x7C,0 x8A,0 x53,0 x25,0 x2A,0 x4A,0 x52,0 x50,0 x00,/*-文字:順 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/順,0 x00,0 x04,0 xC4,0 x24,0 x14,0 x04,0 xFC,0 x04,0 x06,0
31、 x05,0 xFC,0 x04,0 x34,0 x44,0 x84,0 x04, 0 x00,0 x44,0 x44,0 x24,0 x24,0 x14,0 x0C,0 x04,0 xFE,0 x04,0 x0C,0 x14,0 x24,0 x24,0 x44,0 x44,/*-文字:紹 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/紹,0 x00,0 x00,0 x7E,0 x82,0 x42,0 x02,0 x02,0 x1E,0 x62,0 x82,0 x00,0 x30,0 x63,0 xAC,0 x30,0 x20, 0 x00,0 x00,0 xFE,0
32、 x42,0 x42,0 x42,0 x42,0 x42,0 xFE,0 x00,0 x01,0 x12,0 x12,0 x22,0 x67,0 x22,/*-文字:欒 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/欒,0 x00,0 x02,0 xF2,0 x12,0 x12,0 xD6,0 x1A,0 x12,0 xF2,0 x00,0 xFF,0 x00,0 xFC,0 x00,0 xFE,0 x00, 0 x00,0 x80,0 x4F,0 x20,0 x10,0 x07,0 x18,0 x20,0 x4F,0 x80,0 xFF,0 x00,0 x3F,0 x00,0 x3F,0 x40,/*-文字:杰 -*/*-宋體 12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬 x 高=16x16-*/杰,0 x00,0 x80,0 x80,0 x86,0 x88,0 x90,0 xA0,0 x80,0 xFF,0 x80,0 x80,0 x3E,0 x22,0 x22,0 xE2,0 x02
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025水泥供貨合同模板
- 2025鋁材采購(gòu)合同書(shū)樣本
- 2025年光伏支架鋼結(jié)構(gòu)加工合同
- 2025年招投標(biāo)與合同管理:合同風(fēng)險(xiǎn)控制案例分析
- 2025學(xué)校翻新教學(xué)樓合同書(shū)
- 2025標(biāo)準(zhǔn)集體土地使用權(quán)轉(zhuǎn)讓合同
- 2025年度工程承包合同簽訂年度
- 《2025版權(quán)授權(quán)合同模板》
- 2025玉米買賣合同模板
- 《守護(hù)健康熱愛(ài)生命》課件
- 人教版中職數(shù)學(xué)拓展模塊一:6.1.1復(fù)數(shù)的相關(guān)概念課件
- 街道辦消防安全知識(shí)培訓(xùn)課件
- 2024-2025學(xué)年數(shù)學(xué)人教版八年級(jí)上冊(cè)期中檢測(cè)卷
- 教育培訓(xùn)機(jī)構(gòu)運(yùn)營(yíng)流程手冊(cè)
- 人力資源許可證制度(服務(wù)流程、服務(wù)協(xié)議、收費(fèi)標(biāo)準(zhǔn)、信息發(fā)布審查和投訴處理)
- 山東鐵投集團(tuán)社會(huì)招聘筆試真題2023
- 2024小學(xué)語(yǔ)文新教材培訓(xùn)講稿:一年級(jí)新教材修訂概況及教材介紹
- 2024年江西省高考生物試卷(含答案)
- JJF(民航) 0114-2024 民用航空自動(dòng)氣象觀測(cè)系統(tǒng)氣壓傳感器校準(zhǔn)規(guī)范
- 三級(jí)電子商務(wù)師測(cè)試試題庫(kù)與答案
- DZ/T 0430-2023 固體礦產(chǎn)資源儲(chǔ)量核實(shí)報(bào)告編寫(xiě)規(guī)范(正式版)
評(píng)論
0/150
提交評(píng)論