12232液晶汉字图形显示程序.doc

上传人:scccc 文档编号:13598009 上传时间:2022-01-19 格式:DOC 页数:18 大小:99.50KB
返回 下载 相关 举报
12232液晶汉字图形显示程序.doc_第1页
第1页 / 共18页
12232液晶汉字图形显示程序.doc_第2页
第2页 / 共18页
12232液晶汉字图形显示程序.doc_第3页
第3页 / 共18页
12232液晶汉字图形显示程序.doc_第4页
第4页 / 共18页
12232液晶汉字图形显示程序.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《12232液晶汉字图形显示程序.doc》由会员分享,可在线阅读,更多相关《12232液晶汉字图形显示程序.doc(18页珍藏版)》请在三一文库上搜索。

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.1184M 或11.0592

2、都可以 编译平台:Keil uV2 7.08/可能看起来有点乱,不过效果还是不错的,显示图形总的来说比显示汉字要简单,当然显示汉字也不难。希望此程序能给你一些帮助。=*/#i nclude #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 / 数据exter n un sig ned char code

3、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 ned char code bmp001; exter n

4、 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 Bmp01;exter n un sig ned c

5、har 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(i0)i-;while(k1)k-;/左页II发送数据void OUTMD(u nsig ned char i)A0=1; II写数据IIdelay(5);E1=1;delay(10);DATA=i;delay(5);E1=0;/左页/发送命令void OUTMI(u nsig ned char i

6、)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 lcdini( void)RW=0;OUTMI(OXE2);OUTSI(OXE2

7、); 复位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页。(内函数,私有,用户不直接调用)*/void SetPage(uchar pageO,u

8、char 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) OUTSD(ch);/*调用方式:void PutChar1(uchar ch)函

9、数说明:在左页当前地址画一个字节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,address,i=O; /address表示显存的物理地址uchar page=0

10、; /page表示上下两页bit win dow=0; /window表示左右两页/putcharR / 右边/putcharL / 左边for (x=width;x1;x-)if (i60) 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);SetPage(1,1);SetAddress(address,address);if(wi ndow=1)P

11、utCharR(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);i+;/*调用方式:void clrscr(void)函数说明:清屏-*/void clrscr

12、(void)uchar i;uchar page;for (page=0;page4;page+)SetPage(page,page);SetAddress(0,0);for (i=0;i1;x-)if (x_add60) 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 ndow=1

13、)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+;/II采

14、用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表示左右两页/putcharR /

15、 右边/putcharL / 左边d_where=d_where*32;for (x=width;x1;x-)if (x_add60) 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(wi ndow=1)P

16、utCharR(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(bmpOO1d_wher

17、e+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 ndow=1)PutCh

18、arR(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);*/液晶显示规则/ M(左)S

19、(右)/ page page/ 0 | 0/ 1 | 1/ 2 | 2/ 3 | 3void delay1s( un sig ned char i)while(i1)i-;delay(65530);/显示动态的等待图标void wait1( un sig ned char i)for(;i1;i-)delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); /DrawBmp1(76,19,Bmpt1); /delay1s(2);clrscr(); /DrawBmp1(0,60,Bmptc); /DrawBmp1(76,19,Bmpt2); /delay1s(2);c

20、lrscr(); /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(); /DrawBm

21、p1(0,60,Bmptc); / DrawBmp1(76,19,Bmpt7); / /演示程序void mai n()lcdi ni (); /resetclrscr(); clrDraw_word(0,0,0,16); /Draw_word(1,16,0,16); /Draw_word(2,32,0,16); /Draw_word(3,48,0,16); /Draw_word(0,64,0,16); /Draw_word(1,80,0,16); /Draw_word(2,96,0,16); /DrawBmp(1,120,Bmp002); /clrscr(); /delay1s(3);Dra

22、wBmp1(0,122,Bmp012); /LOGO while(1)delay1s(3);clrscr(); /DrawBmp1(10,101,Bmp07); /delay1s(8);clrscr(); /wait1(3);DrawBmp1(0,122,Bmp04); /delay1s(8);clrscr(); /wait1(3);DrawBmp1(0,122,Bmp03); /超前科技delay1s(8);clrscr(); /wait1(3);clrscr(); /DrawBmp1(10,101,Bmp05); / delay1s(8);clrscr(); /wait1(3);clrscr(); /DrawBmp1(10,101,Bmp06); / delay1s(8);clrscr(); /wait1(3);clrscr(); /DrawBmp1(10,101,Bmp08); /delay1s(8);clrscr(); /wait1(3);,用过都说好clrscr(); /DrawBmp1(0,122,Bmp01); /这仿真器真不错wait1(8);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1