LCD2004 LCD1602显示自定义汉字详解_第1页
LCD2004 LCD1602显示自定义汉字详解_第2页
LCD2004 LCD1602显示自定义汉字详解_第3页
LCD2004 LCD1602显示自定义汉字详解_第4页
LCD2004 LCD1602显示自定义汉字详解_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、LCD2004 LCD1602显示自定义汉字详解1. 取字模1.1 打开取字模软件1.2 新建图像881.3 描绘自定义汉字,只用后58点阵(因为LCD2004/LCD1602每个显示单元为58点阵)1.4 修改图像图像旋转901.5 取模方式C51格式1.5 复制字模代码,给每一个自定义图汉字/图标定义一个数组1.6 LCD2004共可显示80个字符(LCD1602共可显示32个字符,原理相同,程序通用)1.7 只需根据不同的硬件注意PIN口的定义就能正确显示2. 仿真3. 源程序/ .c 文件 /#include#include/_nop_();#includelcd.h/#include

2、temp.h/#includeds1302.h/#includei2c.hsbit K1=P30;/数据-sbit K2=P31;/数据+sbit K3=P32;/设置sbit BZ=P15; /蜂鸣器uchar Set12 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00;uchar sheng=0x04,0x14,0x1f,0x14,0x0e,0x04,0x1f,0x00; /“生”字字模uchar ri=0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00; /“日”

3、字字模uchar kuai=0x0a,0x0a,0x1f,0x1b,0x1f,0x0a,0x0d,0x00; /“快”字字模uchar le=0x1e,0x10,0x14,0x1f,0x04,0x15,0x15,0x00; /“乐”字字模void IntConfiguration();uchar SetState=0,SetPlace=10;uchar SetState2=0,SetPlace2=10;void Delay10ms(void); /误差 0usvoid Delayms(unsigned char c);void Delay(uint y);/* 函数名 : main* 函数功能

4、 : 主函数* 输入 : 无* 输出 : 无*/void main()uint i;uint count=0;LcdInit();IntConfiguration();K3=1;Delay10ms();Delay(1);Delayms(1);for(i=0;i8;i+)/1 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x80);LcdWriteData(0x00);for(i=0;i8;i+)/2 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100)

5、;LcdWriteCom(0x80+1);LcdWriteData(0x01); for(i=0;i8;i+)/3 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x80+2);LcdWriteData(0x02);for(i=0;i8;i+)/4 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x80+3);LcdWriteData(0x03);for(i=0;i8;i+)/5 显示生LcdWriteCom(0x40+i)

6、;LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x80+4);LcdWriteData(0x00);for(i=0;i8;i+)/6 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x80+5);LcdWriteData(0x01); for(i=0;i8;i+)/7 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x80+6);LcdWriteData(0x02);for(i=

7、0;i8;i+)/8 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x80+7);LcdWriteData(0x03);for(i=0;i8;i+)/9 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x80+8);LcdWriteData(0x00);for(i=0;i8;i+)/10 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x

8、80+9);LcdWriteData(0x01); for(i=0;i8;i+)/11 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x80+10);LcdWriteData(0x02);for(i=0;i8;i+)/12 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x80+11);LcdWriteData(0x03);for(i=0;i8;i+)/13 显示生LcdWriteCom(0x40+i);LcdWriteD

9、ata(shengi);/Delay(100);LcdWriteCom(0x80+12);LcdWriteData(0x00);for(i=0;i8;i+)/14 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x80+13);LcdWriteData(0x01); for(i=0;i8;i+)/15 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x80+14);LcdWriteData(0x02);for(i=0;i8;

10、i+)/16 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x80+15);LcdWriteData(0x03);for(i=0;i8;i+)/17 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x80+16);LcdWriteData(0x00);for(i=0;i8;i+)/18 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x8

11、0+17);LcdWriteData(0x01); for(i=0;i8;i+)/19 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x80+18);LcdWriteData(0x02);for(i=0;i8;i+)/20 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x80+19);LcdWriteData(0x03);for(i=0;i8;i+)/21 显示生LcdWriteCom(0x40+i);LcdWriteD

12、ata(shengi);/Delay(100);LcdWriteCom(0xc0);LcdWriteData(0x00);for(i=0;i8;i+)/22 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xc0+1);LcdWriteData(0x01);for(i=0;i8;i+)/23 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xc0+2);LcdWriteData(0x02);for(i=0;i8;i+)/24

13、 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xc0+3);LcdWriteData(0x03);for(i=0;i8;i+)/25 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xc0+4);LcdWriteData(0x00);for(i=0;i8;i+)/26 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xc0+5);Lcd

14、WriteData(0x01);for(i=0;i8;i+)/27 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xc0+6);LcdWriteData(0x02);for(i=0;i8;i+)/28 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xc0+7);LcdWriteData(0x03);for(i=0;i8;i+)/29 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);

15、/Delay(100);LcdWriteCom(0xc0+8);LcdWriteData(0x00);for(i=0;i8;i+)/30 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xc0+9);LcdWriteData(0x01);for(i=0;i8;i+)/31 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xc0+10);LcdWriteData(0x02);for(i=0;i8;i+)/32 显示乐LcdWr

16、iteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xc0+11);LcdWriteData(0x03);for(i=0;i8;i+)/33 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xc0+12);LcdWriteData(0x00);for(i=0;i8;i+)/34 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xc0+13);LcdWriteD

17、ata(0x01);for(i=0;i8;i+)/35 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xc0+14);LcdWriteData(0x02);for(i=0;i8;i+)/36 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xc0+15);LcdWriteData(0x03);for(i=0;i8;i+)/37 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Del

18、ay(100);LcdWriteCom(0xc0+16);LcdWriteData(0x00);for(i=0;i8;i+)/38 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xc0+17);LcdWriteData(0x01);for(i=0;i8;i+)/39 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xc0+18);LcdWriteData(0x02);for(i=0;i8;i+)/40 显示乐LcdWrit

19、eCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xc0+19);LcdWriteData(0x03);for(i=0;i8;i+)/41 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x94);LcdWriteData(0x00);for(i=0;i8;i+)/42 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x94+1);LcdWriteData(0x

20、01);for(i=0;i8;i+)/43 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x94+2);LcdWriteData(0x02);for(i=0;i8;i+)/44 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x94+3);LcdWriteData(0x03);for(i=0;i8;i+)/45 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);

21、LcdWriteCom(0x94+4);LcdWriteData(0x00);for(i=0;i8;i+)/46 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x94+5);LcdWriteData(0x01);for(i=0;i8;i+)/47 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x94+6);LcdWriteData(0x02);for(i=0;i8;i+)/48 显示乐LcdWriteCom(0x58+i

22、);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x94+7);LcdWriteData(0x03);for(i=0;i8;i+)/49 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x94+8);LcdWriteData(0x00);for(i=0;i8;i+)/50 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x94+9);LcdWriteData(0x01);for(i=

23、0;i8;i+)/51 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x94+10);LcdWriteData(0x02);for(i=0;i8;i+)/52 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x94+11);LcdWriteData(0x03);for(i=0;i8;i+)/53 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWrite

24、Com(0x94+12);LcdWriteData(0x00);for(i=0;i8;i+)/54 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x94+13);LcdWriteData(0x01);for(i=0;i8;i+)/55 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x94+14);LcdWriteData(0x02);for(i=0;i8;i+)/56 显示乐LcdWriteCom(0x58+i);Lcd

25、WriteData(lei);/Delay(100);LcdWriteCom(0x94+15);LcdWriteData(0x03);for(i=0;i8;i+)/57 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0x94+16);LcdWriteData(0x00);for(i=0;i8;i+)/58 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0x94+17);LcdWriteData(0x01);for(i=0;

26、i8;i+)/59 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0x94+18);LcdWriteData(0x02);for(i=0;i8;i+)/60 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0x94+19);LcdWriteData(0x03);for(i=0;i8;i+)/61 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCo

27、m(0xd4);LcdWriteData(0x00);for(i=0;i8;i+)/62 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xd4+1);LcdWriteData(0x01);for(i=0;i8;i+)/63 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xd4+2);LcdWriteData(0x02);for(i=0;i8;i+)/64 显示乐LcdWriteCom(0x58+i);LcdWriteDa

28、ta(lei);/Delay(100);LcdWriteCom(0xd4+3);LcdWriteData(0x03);for(i=0;i8;i+)/65 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xd4+4);LcdWriteData(0x00);for(i=0;i8;i+)/66 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xd4+5);LcdWriteData(0x01);for(i=0;i8;i+)/67

29、显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xd4+6);LcdWriteData(0x02);for(i=0;i8;i+)/68 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xd4+7);LcdWriteData(0x03);for(i=0;i8;i+)/69 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xd4+8);Lc

30、dWriteData(0x00);for(i=0;i8;i+)/70 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xd4+9);LcdWriteData(0x01);for(i=0;i8;i+)/71 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xd4+10);LcdWriteData(0x02);for(i=0;i8;i+)/72 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/

31、Delay(100);LcdWriteCom(0xd4+11);LcdWriteData(0x03);for(i=0;i8;i+)/73 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xd4+12);LcdWriteData(0x00);for(i=0;i8;i+)/74 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xd4+13);LcdWriteData(0x01);for(i=0;i8;i+)/75 显示快Lcd

32、WriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xd4+14);LcdWriteData(0x02);for(i=0;i8;i+)/76 显示乐LcdWriteCom(0x58+i);LcdWriteData(lei);/Delay(100);LcdWriteCom(0xd4+15);LcdWriteData(0x03);for(i=0;i8;i+)/77 显示生LcdWriteCom(0x40+i);LcdWriteData(shengi);/Delay(100);LcdWriteCom(0xd4+16);LcdWr

33、iteData(0x00);for(i=0;i8;i+)/78 显示日LcdWriteCom(0x48+i);LcdWriteData(rii);/Delay(100);LcdWriteCom(0xd4+17);LcdWriteData(0x01);for(i=0;i8;i+)/79 显示快LcdWriteCom(0x50+i);LcdWriteData(kuaii);/Delay(100);LcdWriteCom(0xd4+18);LcdWriteData(0x02);for(i=0;i0;c-) for(b=38;b0;b-) for(a=130;a0;a-);void Delayms(u

34、nsigned char c) /误差 0us unsigned char a,b; for( ;c0;c-) for(b=38;b0;b-) for(a=130;a0;a-);void Delay(uint y)unsigned int x;for(y;y0;y-)for(x=65;x0;x-);/ lcd.c 文件 /#includelcd.h/* 函 数 名 : Lcd1602_Delay1ms* 函数功能 : 延时函数,延时1ms* 输 入 : c* 输 出 : 无* 说 名 : 该函数是在12MHZ晶振下,12分频单片机的延时。*/void Lcd1602_Delay1ms(uint

35、 c) /误差 0us uchar a,b;for (; c0; c-) for (b=55;b0;b-) for(a=1;a0;a-); /* 函 数 名 : void LCDWrite_String(uchar x, uchar y, uchar *s)* 函数功能 : 向LCD写入一个字符串* 输 入 : x,y,*s* 输 出 : 无*/void LCDWrite_String(uchar x, uchar y, uchar z, uchar *s)/x 015 , y 0,1,2,3 LCD_set_xy(x,y,z);while(*s)LcdWriteData(*s);s+;/* 函 数 名 : void LCD_set_xy(uchar x, uchar y,uchar z)* 函数功能 : 指定向LCD写入字符串的位置* 输 入 : x,y,z /x:横坐标 y:纵坐标 z:字符串长度* 输 出 : 无*/void LCD_set_xy(uchar x,uchar y,uchar z)uchar i;if(y=0)LcdWriteCom(0x80+x);for(i=0;iz;i+)LcdWriteData( );LcdWriteCom(0x80+x);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论