12232液晶汉字图形显示程序_第1页
12232液晶汉字图形显示程序_第2页
12232液晶汉字图形显示程序_第3页
12232液晶汉字图形显示程序_第4页
12232液晶汉字图形显示程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、12232液晶汉字图形显示程序时间:2006-08-08 来源: 作者: 点击:4879字体大小:【大 中小§创创遵& 硬件:TG12232B( 122*32 )模拟口线接线方式连接线图:I|DB0-P0.0 | DB4-P0.4 | RW-P1.1 | A0-P1.0 |DB1-P0.1 | DB5-P0.5 | RS-P2.1 | V0接1K电阻到GND |DB2-P0.2 | DB6-P0.6 | E1 -P1.3 |DB3-P0.3 | DB7-P0.7 | E2-P1.2 |注:AT89X52 使用22.1184M 或11.0592M 晶振,实测使用 22.1184

2、M 或11.0592都可以 编译平台:Keil uV2 7.08/可能看起来有点乱,不过效果还是不错的,显示图形总的来说比显示汉字要简单,当然显示汉字也不难。希望此程序能给你一些帮助。=*/#i nclude <AT89X52.H>#defi ne uchar un sig ned char#defi ne uint un sig ned int#defi ne E1 P1_3 / 块 1 左边#define E2 P1_2 / 块 2 右边#defi ne RW P1_1#define A0 P1_0 A0为1时是数据,0时为指令数据#defi ne DATA P0 / 数据ex

3、ter n un sig ned char code Bmpt1;exter n un sig ned char code Bmpt2;exter n un sig ned char code Bmpt3;exter n un sig ned char code Bmpt4; exter n un sig ned char code Bmpt5; exter n un sig ned char code Bmpt6; exter n un sig ned char code Bmpt7; exter n un sig ned char code Bmptc; exter n un sig ne

4、d char code bmp001; exter n un sig ned char code Bmp08; exter n un sig ned char code Bmp07; exter n un sig ned char code Bmp06; exter n un sig ned char code Bmp05; exter n un sig ned char code Bmp04; exter n un sig ned char code Bmp03; exter n un sig ned char code Bmp02; exter n un sig ned char code

5、 Bmp01;exter n un sig ned char code Bmp012; exter n un sig ned char code Bmp003; exter n un sig ned char code Bmp002;/延时void delay (un sig ned int i)un sig ned char k=200;while(i>0)i-;while(k>1)k-;/左页II发送数据void OUTMD(u nsig ned char i)A0=1; II写数据IIdelay(5);E1=1;delay(10);DATA=i;delay(5);E1=0;/

6、左页/发送命令void OUTMI(u nsig ned char i)A0=0; /写指令delay(5);E1=1;delay(10);DATA=i;delay(5);E1=0;/右页II发送数据void OUTSD(u nsig ned char i)A0=1; II写数据IIdelay(5);E2=1;IIdelay(10);DATA=i;IIdelay(5);E2=0;II右页II发送命令void OUTSI(u nsig ned char i)A0=0; II写指令delay(5);E2=1;delay(10);DATA=i;delay(5);E2=0;/初始化void lcdin

7、i( void)RW=0;OUTMI(OXE2);OUTSI(OXE2); 复位OUTMI(0XAE);OUTSI(OXAE);/POWER SAVEOUTMI(0XA4);OUTSI(0XA4);/ 动态驱动OUTMI(0XA9);OUTSI(0XA9);/1/32 占空比OUTMI(OXAO);OUTSI(OXAO);/时钟线输出OUTMI(0XEE);OUTSI(0XEE);/ 写模式OUTMI(OXOO);OUTMI(OXCO);OUTSI(0X00);OUTSI(0XC0);OUTMI(0XAF);OUTSI(OXAF);/*函数说明:同时设置主从显示页为0 3页。(内函数,私有,用

8、户不直接调用)*/void SetPage(uchar pageO,uchar pagel)OUTMI(OxB8|page1);OUTSI(OxB8|pageO);/*函数说明:同时设置主从列地址为0 121。(内函数,私有,用户不直接调用)*/void SetAddress(uchar address0,uchar address" OUTMI(address1);OUTSI(address0);/*调用方式:void PutChar0(uchar ch)函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)-*/void PutCharR(uchar ch)

9、OUTSD(ch);/*调用方式:void PutChar1(uchar ch)函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)-*/void PutCharL(uchar ch)OUTMD(ch);/*调用方式: void DrawBmp(bit layer,uchar width,uchar *bmp)函数说明:画一个图,layer表示上下层,width是图形的宽,高都是 16 , bmp是 图形指针使用zimo3软件,纵向取模,字节倒序/240字节-*/void DrawBmp(bit layer,uchar width,uchar *bmp)uchar x,a

10、ddress,i=O; /address表示显存的物理地址uchar page=0; /page表示上下两页bit win dow=0; /window表示左右两页/putcharR / 右边/putcharL / 左边for (x=width;x>1;x-)if (i>60) wi ndow=1;address=i%61;else address=i;if(layer=0) / 显示一行八个字SetPage(0,0);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi);else PutCharL(bmpi);SetPag

11、e(1,1);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi+width);else PutCharL(bmpi+width);else /显示第二行八个汉字SetPage(2,2);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi);else PutCharL(bmpi);SetPage(3,3);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi+width); else PutCharL(bmpi+width)

12、;i+;/*调用方式:void clrscr(void)函数说明:清屏-*/void clrscr(void)uchar i;uchar page;for (page=0;page<4;page+)SetPage(page,page);SetAddress(0,0);for (i=0;i<61;i+)PutCharR(0);PutCharL(0);/图片显示II采用字模2生成或字模3生成的都可以/void DrawBmp1( uint x_add, uchar width,uchar *bmp)uchar x,address,i=O; /address表示显存的物理地址uchar

13、page=0; /page 表示上下两页bit win dow=0; /window表示左右两页/putcharR / 右边/putcharL / 左边for (x=width;x>1;x-)if (x_add>60) wi ndow=1;address=x_add%61;else address=x_add;SetPage(0,0);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi);else PutCharL(bmpi);SetPage(1,1);SetAddress(address,address);if(wi nd

14、ow=1)PutCharR(bmpi+width);else PutCharL(bmpi+width);SetPage(2,2);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi+width+width);else PutCharL(bmpi+width+width);SetPage(3,3);SetAddress(address,address);if(wi ndow=1)PutCharR(bmpi+width+width+width);else PutCharL(bmpi+width+width+width);i+;x_add+;

15、/II采用zimo2显示汉字,以汉字的显示方式/void Draw_word(uchar d_where ,uint x_add,bit layer,uchar width)d_where表示在码表中第几个汉字,x_add横坐标位置,layer显示的层,width显示的宽度。/void Draw_word(uchar d_where ,uint x_add,bit layer,uchar width)uchar x,i=O,address; /address表示显存的物理地址uchar page=0; /page表示上下两页bit win dow=0; /window表示左右两页/putcha

16、rR / 右边/putcharL / 左边d_where=d_where*32;for (x=width;x>1;x-)if (x_add>60) wi ndow=1;address=x_add%61;else address=x_add;if(layer=0) /显示一行八个字SetPage(0,0);SetAddress(address,address);if(wi ndow=1)PutCharR(bmp001d_where);右边else PutCharL(bmp001d_where);左边SetPage(1,1);SetAddress(address,address);if

17、(wi ndow=1)PutCharR(bmp001d_where+width);else PutCharL(bmp001d_where+width);else /显示第二行八个汉字SetPage(2,2);SetAddress(address,address);if(wi ndow=1)PutCharR(bmp001d_where);右边else PutCharL(bmpOO1d_where);左边SetPage(3,3);SetAddress(address,address);if(wi ndow=1)PutCharR(bmp001d_where+width);else PutCharL(

18、bmpOO1d_where+width);x_add+;d_where+;/*/字模2显示一个汉字/纵向取模,字节倒序void disp_ on e(bit top_low,bit widows,uchar address,uchar width,uchar*bmp) if(top_low=0)SetPage(0,0);SetAddress(address,address);if(win dow=1)PutCharR(bmp001 nexti);else PutCharL(bmp001 nexti);SetPage(1,1);SetAddress(address,address);if(wi

19、ndow=1)PutCharR(bmp001 nexti+width);else PutCharL(bmp001 nexti+width);elseSetPage(0,0);SetAddress(address,address);if(win dow=1)PutCharR(bmp001 nexti);else PutCharL(bmp001 nexti);SetPage(1,1);SetAddress(address,address);if(wi ndow=1)PutCharR(bmp001 nexti+width); else PutCharL(bmpOO1 nexti+width);*/液

20、晶显示规则/ M(左)S(右)/ page page/ 0 | 0/ 1 | 1/ 2 | 2/ 3 | 3void delay1s( un sig ned char i)while(i>1)i-;delay(65530);/显示动态的等待图标void wait1( un sig ned char i)for(;i>1;i-)delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); /DrawBmp1(76,19,Bmpt1); /delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); /DrawBmp1(76,19,B

21、mpt2); /delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt3); / delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt4); / delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt5); / delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt6); / delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt7); / /演示程序void mai n()lcdi ni (); /rese

温馨提示

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

评论

0/150

提交评论