欢迎来到天天文库
浏览记录
ID:9947056
大小:31.00 KB
页数:7页
时间:2018-05-16
《基于51单片机24小时可调时钟1602液晶显示程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机24小时可调时钟1602液晶显示程序#include#defineucharunsignedchar#defineuintunsignedintsbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;sbitkey5=P1^4;sbitkey6=P1^5;sbitrs=P0^0;//液晶的第4端RS由开关独立s2p3^5控制高电平写数据,低电平写命令。sbitlecdn=P0^1;//使能端需控制LECDN,p3^6控制。根据硬件电路而定u
2、charmiao,fen,shi,num;ucharmiao1,miao2,shi1,shi2,fen1,fen2;uchartable[]="0123456789";voiddelay(uintx){uinti,j;for(i=x;i>0;i--)for(j=10;j>0;j--);}voidwrite_com(ucharcom)//写指令{P2=com;//RW=0;写指令位定义一个io口控制???lecdn=0;//起初为低电平时序图rs=0;//写指令rs为低delay(10);//简短延时lecdn=1;//给以高脉
3、冲delay(5);lecdn=0;}voidwrite_data(ucharshu)//写数据{P2=shu;//将数据送给控制数据位的io口//RW=0;写指令位定义一个io口控制???lecdn=0;rs=1;//写数据rs为低区别delay(10);lecdn=1;delay(5);lecdn=0;}voidinit()//初始化{write_com(0x38);//显示模式设置delay(20);write_com(0x0f);//显示开关,和光标设置,开关必开,光标不开ox0c,开并闪烁0x0fdelay(20);
4、write_com(0x06);//写完一个数据,数据地址指针自动往后移动一位delay(20);write_com(0x01);//清屏指令,按下复位键上次的结果变清掉。}voidtiaoshi(){if(key1==0){delay(100);if(key1==0){TR0=0;if(miao!=59)miao++;elsemiao=0;delay(10000);if(key1==1)TR0=1;}}if(key2==0){delay(100);if(key2==0){TR0=0;if(miao!=0)miao--;els
5、emiao=59;delay(10000);if(key1==1)TR0=1;}}if(key3==0){delay(100);if(key3==0){if(fen!=59)fen++;elsefen=0;}}if(key4==0){delay(100);if(key4==0){if(fen!=0)fen--;elsefen=59;}}if(key5==0){delay(100);if(key5==0){if(shi!=23)shi++;elseshi=0;}}if(key6==0){delay(100);if(key6==0
6、){if(shi!=0)shi--;elseshi=23;}}}voidshuzi(){miao1=miao/10;miao2=miao%10;shi1=shi/10;shi2=shi%10;fen1=fen/10;fen2=fen%10;}voidmain(){EA=1;//总中断一定是允许的。ET0=1;//打开定时器中断0TMOD=0x01;//设置工作模式方式一TH0=(65526-50000)/256;//给定时器装初值,高八位取整,低八位取余。TL0=(65526-50000)%256;TR0=1;//启动定时器i
7、nit();//缺少此初始化屏幕出现乱码//shuzi();//数字函数应该放在大循环里,否则会出现数字全0while(1){shuzi();write_com(0x82);delay(100);write_data(table[shi1]);delay(100);write_com(0x83);delay(100);write_data(table[shi2]);delay(100);write_com(0x85);delay(20);write_data(table[fen1]);delay(20);write_com(0
8、x86);delay(20);write_data(table[fen2]);delay(50);write_com(0x88);delay(100);write_data(table[miao1]);delay(100);write_com(0x89);delay(100)
此文档下载收益归作者所有