欢迎来到天天文库
浏览记录
ID:52677880
大小:1.36 MB
页数:10页
时间:2020-03-29
《单片机1602液晶显示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于单片机89C52的1602液晶显示2012年8月23日单片机1602液晶显示一、电路原理图如下图所示:二、程序调试源程序经Keil软件测试无错误,生成hex文件后烧写进89C52单片机。#include//包含头文件#defineuintunsignedint//预定义#defineucharunsignedcharsbitrs=P0^5;//1602的数据/指令选择控制线sbitrw=P0^6;//1602的读写控制线sbiten=P0^7;//1602的使能控制线ucharcodetable1[]="Hello!";//要显示的内容1放入数组tablelucha
2、rcodetable2[]="Nicetomeetyou";//要显示的内容2放入数组table2voiddelay(uintn)//延时函数{uintx,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}voidlcd_wcom(ucharcom)//1602写命令函数{rs=0;//选择指令寄存器rw=0;//选择写P2=com;//把命令字送入P2delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,命令送入1602的8位数据口en=0;}voidlcd_wdat(uchardat)//1602写数据函数{rs=1;//选
3、择数据寄存器rw=0;//选择写P2=dat;//把要显示的数据送入P2delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,数据送入1602的8位数据口en=0;}voidlcd_init()//1602初始化函数{lcd_wcom(0x38);//8位数据口,5*7字形lcd_wcom(0x0c);//开显示屏,关光标,光标不闪烁lcd_wcom(0x06);//写一个数据后,光标右移,屏幕文字不动lcd_wcom(0x01);//清屏}voidmain()//主函数{ucharn,m=0;lcd_init();//液晶初始化lcd_wcom(0x8
4、6);//显示地址设为86H(即06H,)第一行第6位for(m=0;m<6;m++)//将table1[]中的数据依次写入1602显示{lcd_wdat(table1[m]);delay(200);}lcd_wcom(0x0f);//开显示屏,有光标,光标不闪烁lcd_wcom(0x80+0x40);//设定显示地址为0xc0,第二行第1位for(n=0;n<16;n++)//将table2[]中的数据依次写入1602{lcd_wdat(table2[n]);delay(200);}while(1);//动态停机}三、方案改进增加了四个按键,s4实现功能切换。1、输出信息;2、实现数字
5、时钟;源程序如下:#include//包含头文件#defineuintunsignedint//预定义#defineucharunsignedcharsbitrs=P0^5;//1602的数据/指令选择控制线sbitrw=P0^6;//1602的读写控制线sbiten=P0^7;//1602的使能控制线sbits1=P3^0;//按键定义sbits2=P3^1;sbits3=P3^2;sbits4=P3^3;sbitrd=P3^7;ucharcount,s1num;charmiao,shi,fen;ucharcodetable1[]="Hello!";//要显示的内容1
6、放入数组tablelucharcodetable2[]="Nicetomeetyou";ucharcodetable3[]="2011-8-1MON";ucharcodetable4[]="00:00:00";voiddelay(uintn)//延时函数{uintx,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}voidlcd_wcom(ucharcom)//1602写命令函数{rs=0;//选择指令寄存器rw=0;//选择写P2=com;//把命令字送入P2delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,命令送入16
7、02的8位数据口en=0;}voidlcd_wdat(uchardat)//1602写数据函数{rs=1;//选择数据寄存器rw=0;//选择写P2=dat;//把要显示的数据送入P2delay(5);//延时一小会儿,让1602准备接收数据en=1;//使能线电平变化,数据送入1602的8位数据口en=0;}voidlcd_init()//1602初始化函数{lcd_wcom(0x38);//8位数据口,5*7字形lcd_wcom
此文档下载收益归作者所有