ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:357.95KB ,
资源ID:12591370      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12591370.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2864液晶屏与单片机连接图.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

2864液晶屏与单片机连接图.docx

1、2864液晶屏与单片机连接图Protel 制图Protues原理图程序部分:#include#define uchar unsigned char#define uint unsigned int/sbit databus=P1;#define databus P1/sbit Reset = P30; /复位sbit rs = P37; /指令数据选择sbit e = P35; /指令数据控制sbit cs1 = P33; /左屏幕选择,低电平有效sbit cs2 = P34; /右屏幕选择sbit wr = P36; /读写控制/sbit busy = P17; /忙标志void SendC

2、ommand(uchar command); /写指令void WriteData(uchar dat);/写数据void LcdDelay(uint time); /延时void SetOnOff(uchar onoff);/开关显示void ClearScreen(uchar screen); /清屏void SetLine(uchar line); /置页地址void SetColum(uchar colum);/置列地址void SetStartLine(uchar startline);/置显示起始行void SelectScreen(uchar screen);/选择屏幕void

3、Show1616(uchar lin,uchar colum,uchar *address);/显示一个汉字void InitLcd(); /初始化void ResetLcd(); /复位void Show_english(uchar lin,uchar colum,uchar *address);const uchar code hzk = /*- 文字: I -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*

4、- 文字: -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: c -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,/*- 文字: a -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00

5、,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,/*- 文字: n -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,/*- 文字: -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0

6、x00,0x00,0x00,0x00,/*- 文字: m -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,/*- 文字: a -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,/*- 文字: k -*/*- 宋体12; 此字体下对应的点阵

7、为:宽x高=8x16 -*/0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,/*- 文字: e -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,/*- 文字: -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0

8、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: i -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,/*- 文字: t -*/*- 宋体12; 此字体下对应的点阵为:宽x高=8x16 -*/0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,/*- 文字:

9、! -*/*- 宋体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: 我 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x80,0x90,0xF0,0x48,0x40,0x7F,0xC0,0x20,0x24,0

10、xA8,0x00,0x00,0x00,0x00,0x08,0x08,0x04,0x14,0x3F,0x02,0x09,0x08,0x05,0x06,0x09,0x10,0x20,0x78,0x00,0x00,/*- 文字: 的 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0xC0,0x60,0x50,0x2C,0xE0,0x80,0x40,0xA0,0x38,0x26,0x10,0xF0,0x00,0x00,0x00,0x00,0x07,0x19,0x09,0x08,0x1F,0x00,0x00,0x00,0x03,0x10,0x20,0x1F,0x00,

11、0x00,0x00,/*- 文字: 未 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x80,0x80,0x90,0x90,0xFF,0xC8,0x48,0x48,0x40,0x40,0x00,0x00,0x00,0x00,0x10,0x10,0x08,0x04,0x02,0x01,0x7F,0x00,0x01,0x02,0x04,0x08,0x18,0x10,0x10,0x00,/*- 文字: 来 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x80,0x80,0xA8,0xC8,0x88,0xFF,0x8

12、4,0x64,0x54,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x08,0x04,0x02,0x7F,0x01,0x02,0x04,0x0C,0x08,0x08,0x08,0x08,0x00,/*- 文字: 不 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x08,0x08,0x08,0x88,0x48,0xE4,0x14,0x8C,0x84,0x04,0x04,0x04,0x00,0x00,0x00,0x04,0x04,0x02,0x01,0x00,0x00,0x3F,0x00,0x00,0x

13、00,0x01,0x03,0x06,0x00,0x00,/*- 文字: 是 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x80,0x80,0x82,0x9E,0xAA,0xAA,0xA1,0x5D,0x43,0x40,0x00,0x00,0x00,0x00,0x20,0x20,0x10,0x08,0x06,0x04,0x08,0x1F,0x12,0x22,0x22,0x20,0x20,0x20,0x20,0x00,/*- 文字: 梦 -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x90,0x50,0x30,

14、0xFE,0x28,0x48,0x28,0x18,0xFF,0x14,0x24,0x24,0x40,0x40,0x00,0x00,0x00,0x40,0x48,0x44,0x26,0x2B,0x12,0x0A,0x06,0x00,0x00,0x00,0x00,0x00,0x00,/*- 文字: ! -*/*- 楷体12; 此字体下对应的点阵为:宽x高=16x16 -*/0x00,0x00,0x00,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x00,0x00

15、,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;void main() uchar i,line,colum/*,j */; uchar *address ; InitLcd(); while(1)/*显示第一行*/*下面这段程序用来卷页*/* line=0; for(j=0;j4;j+) ClearScreen(2);/清屏 line=line+1; colum=0; address=hzk; SetOnOff(1); for(i=0;i14;i+) if(i=8) if(i13) SelectScreen(1); Show_english(li

16、ne,colum,address); address+=16; colum+=8; else Show1616(line,colum,address); address+=32; colum+=16; for(i = 0;i 50;i +) /延时 LcdDelay(3000); */ line=1; /开始从第2页(第9行)开始显示, colum=0; /开始从第一列开始显示 address=hzk;/给地址指针赋初值 SetOnOff(1);/显示开,注意:如果这里设置显示关,显示会出现错误 for(i=0;i14;i+)/设置要显示的字符个数 if(i8) /i=8) /当i8时(当然最

17、多只能是16)在右屏显示 if(i13) /本程序第一行前13个字符为英文字符,最后一个字符为中文字符,英文字符和中文字符必须分开显示 SelectScreen(1); Show_english(line,colum,address); address+=16; colum+=8; else /显示中文字符“!” Show1616(line,colum,address);/显示一个汉字 address+=32; /每个汉字要用32个16进制表示 colum+=16; /每个汉字占16列 /*显示第二行*/ /*显示原理与第一行完全相同,这里不再赘述了*/ line=4; colum=1; Se

18、tOnOff(1); for(i=0;i8;i+) if(i4) SelectScreen(0); Show1616(line,colum,address); address+=32; colum+=16; else SelectScreen(1); Show1616(line,colum,address); address+=32; colum+=16; SetOnOff(1); for(i = 0;i 63) colum=0; /*延时函数*/void LcdDelay(uint time) while(time-);/*写指令*/void SendCommand(uchar comman

19、d) e=1; wr=0; rs=0; databus=command; e=0;/*写数据*/void WriteData(uchar dat) e=1; wr=0; rs=1; databus=dat; e=0;/*显示开/关*/void SetOnOff(uchar onoff) if(onoff=1) SendCommand(0x3f); else SendCommand(0x3e); /*选择页*/void SetLine(uchar line) /12864总共有8页(07),每页有8行 line=line&0x07; /只取后三位xxxx x111 ,这3个是要改变位置的数据 l

20、ine=line|0xb8; /页设置的固定格式 SendCommand(line);/*选择列*/void SetColum(uchar colum) /12864每半屏有64列(063),分为左右2屏 colum=colum&0x3f; /xx11 1111,这个是要改变Y位置的数据 colum=colum|0x40; /固定格式 SendCommand(colum);/*选择起始行*/void SetStartLine(uchar startline) startline=startline&0x3f;/xx11 1111,这个是要改变x位置的数据 startline=startline

21、|0xc0;/11xxxxxx,是起始行设置的固定指令 SendCommand(startline);/*选择左右屏0:左屏,1:右屏,2:全屏*/void SelectScreen(uchar screen) switch(screen) case 0: cs1=0; LcdDelay(2); cs2=1; LcdDelay(2); break; case 1: cs1=1; LcdDelay(2); cs2=0; LcdDelay(2); break; case 2: cs1=0; LcdDelay(2); cs2=0; LcdDelay(2); break; /*显示一个汉字*/void

22、 Show1616(uchar lin,uchar colum,uchar *address) uchar i; SetLine(lin); SetColum(colum); for(i=0;i16;i+) WriteData(*address); address+; SetLine(lin+1); SetColum(colum); for(i=0;i16;i+) WriteData(*address); address+; /*显示一个英文字符*/void Show_english(uchar lin,uchar colum,uchar *address) uchar i; SetLine(

23、lin); SetColum(colum); for(i=0;i8;i+) WriteData(*address); address+; SetLine(lin+1); SetColum(colum); for(i=0;i8;i+) WriteData(*address); address+; /*清屏*/ void ClearScreen(uchar screen) uchar i,j; SelectScreen(screen); for(i=0;i8;i+) SetLine(i); SetColum(0); for(j=0;j64;j+) WriteData(0); /*12864初始化*/void InitLcd()/ ResetLcd(); SetOnOff(0);/显示关 ClearScreen(2);/清屏 SetLine(0);/页设置 SetColum(0);/列设置 SetStartLine(0);/设置起始页 SetOnOff(1);/显示开仿真实图:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1