单片机+LCD1602液晶显示字符串_第1页
单片机+LCD1602液晶显示字符串_第2页
单片机+LCD1602液晶显示字符串_第3页
单片机+LCD1602液晶显示字符串_第4页
单片机+LCD1602液晶显示字符串_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1602液晶显示字符串(附带程序)(注意说明:使用的实验板是郭天祥老师的52单片机板)基本操作电路状态字说明RAM地址映射图初始化相关指令的意思读时序图写时序图要想通过1602液晶来显示你想要显示字符串,其实是很简单的,程序虽然有点长,但是都是按照步骤来的。1602的五大步骤第一个步骤:检查LCD忙状态 lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 第二个步骤:写指令数据到LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。 第三个步骤:写显示数据到LCD RS=H,RW=L,E=高脉冲,D0-D7=数据。 第四个步骤:设定显示位置 第五个步骤: LCD初始化设定 只要这五步你弄懂了,什么样的字符串都可以按照你的方式显示。至于这其中的步骤的具体的方式,我们就要参照1602的资料和时序图!不过你大可不必,这份文档就足够了! #include #include #define uchar unsigned char#define uint unsigned intsbit dula=P26;sbit wela=P27;sbit LCD_RS = P35; sbit LCD_RW = P36;sbit LCD_EN = P34;uchar code dis1 = WLCOME TO ;uchar code dis2 = JIANG GAN HUA ;uchar code dis3 = NAN CHANG ;uchar code dis4 = HANG KONG DX;void delay(int ms) int i; while(ms-) for(i = 0; i 110; i+) _nop_(); bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P0&0x80); LCD_EN = 0; return result; void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 0; void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 1; _nop_(); _nop_(); _nop_(); _nop_(); LCD_EN = 0; void lcd_pos(uchar pos) lcd_wcmd(pos|0x80); /数据指针=80+地址变量void lcd_init() dula=0; wela=0; lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /显示开,关光标 delay(5); lcd_wcmd(0x06); /移动光标 delay(5); lcd_wcmd(0x01); /清除LCD的显示内容 delay(5);main() uchar i; delay(10); lcd_init(); / 初始化LCD while(1) lcd_wcmd(0x06); /向右移动光标 lcd_pos(0); /设置显示位置为第一行的第1个字符 i = 0; while(dis1i != 0) /显示字符 lcd_wdat(dis1i); i+; delay(50); /控制两字之间显示速度 lcd_pos(0x40); /设置显示位置为第二行第1个字符 i = 0; while(dis2i != 0) lcd_wdat(dis2i); /显示字符 i+; delay(50); /控制两字之间显示速度 /闪动二次 lcd_wcmd(0x01); /清除LCD的显示内容 delay(200); /控制转换时间 lcd_wcmd(0x04); /向左移动光标 lcd_pos(15); /设置显示位置为第一行的第16个字符 i = 0; delay(50); while(dis3i != 0) /显示字符 lcd_wdat(dis3i); i+; delay(50); /控制两字之间显示速度 lcd_pos(0x4F); /设置显示位置为第二行的第16个字符 i = 0; while(dis4i != 0) lcd_wdat(dis4i); /显示字符 i+

温馨提示

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

评论

0/150

提交评论