基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)

上传人:xmg****18 文档编号:121231886 上传时间:2020-02-19 格式:DOC 页数:31 大小:64KB
返回 下载 相关 举报
基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)_第1页
第1页 / 共31页
基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)_第2页
第2页 / 共31页
基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)_第3页
第3页 / 共31页
基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)_第4页
第4页 / 共31页
基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)》由会员分享,可在线阅读,更多相关《基于51单片机的1602液晶时钟设计的C程序(闰年补偿,月份调整)(31页珍藏版)》请在金锄头文库上搜索。

1、.专业整理.#include#define uchar unsigned char#define uint unsigned intuchar code table= 2012-02-29 MON;uchar code table1= 23:59:55;uchar num,count,shi,fen,miao,nian,yue,ri,xingqi,s1num,flag;sbit lcden=P25; sbit lcdrs=P10;sbit lcdrw=P11;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit s4=P33;sbit feng=P23;/*延迟函数

2、*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*写命令*/void write_com(uchar com)lcdrs=0;lcdrw=0; P0=com;lcden=1; delay(5);lcden=0;/*写数据*/void write_data(uchar date)lcdrs=1;lcdrw=0;P0=date;lcden=1;delay(5);lcden=0;/*时分秒调节函数*/ void write_sfm(uchar add,uchar date) uchar shi,ge;shi=date/10;g

3、e=date%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge); /*年月日调节函数*/ void write_nyr(uchar ad,uchar dat) uchar shi,ge;shi=dat/10;ge=dat%10;write_com(0x80+0x00+ad);write_data(0x30+shi);write_data(0x30+ge); /*星期显示函数*/ void display_week() switch (xingqi) case 1: write_data(M); write_

4、data(O); write_data(N); write_com(0x80+0x00+14); break; case 2: write_data(T); write_data(U); write_data(E); write_com(0x80+0x00+14); break;case 3: write_data(W); write_data(E); write_data(D); write_com(0x80+0x00+14); break;case 4: write_data(T); write_data(H); write_data(U); write_com(0x80+0x00+14)

5、; break; case 5: write_data(F); write_data(R); write_data(I); write_com(0x80+0x00+14); break; case 6: write_data(S); write_data(A); write_data(T); write_com(0x80+0x00+14); break; case 7: write_data(S); write_data(U); write_data(N); write_com(0x80+0x00+14); break;void keycan() /*光标左移*/if(s1=0)delay(5

6、);if(s1=0) s1num+;while(!s1);if(s1num=1)TR0=0;write_com(0x80+0x40+11);write_data();write_com(0x80+0x40+10);/光标重新回到闪烁点,写光标地址同样加一write_com(0x0f); /光标闪烁 if(s1num=2) write_com(0x80+0x40+11);write_data( );write_com(0x80+0x40+8);write_data();write_com(0x80+0x40+7);if(s1num=3) write_com(0x80+0x40+8);write_

7、data(:);write_com(0x80+0x40+5);write_data();write_com(0x80+0x40+4); if(s1num=4) write_com(0x80+0x40+5);write_data(:);write_com(0x80+15);write_data();write_com(0x80+14);if(s1num=5) write_com(0x80+15);write_data( );write_com(0x80+11);write_data();write_com(0x80+10); if(s1num=6) write_com(0x80+11);writ

8、e_data( );write_com(0x80+8);write_data();write_com(0x80+7); if(s1num=7) write_com(0x80+8);write_data(-);write_com(0x80+5);write_data();write_com(0x80+4); if(s1num=8)s1num=0;write_com(0x80+5);write_data(-);write_com(0x0c);TR0=1; /*光标右移*/ /* if(s2=0)delay(5);if(s2=0) s1num-;while(!s2);if(s1num=1)TR0=0

9、;write_com(0x80+0x40+11);write_data();write_com(0x80+0x40+11);/光标重新回到闪烁点,写光标地址同样加一write_com(0x0f); /光标闪烁 if(s1num=2) write_com(0x80+0x40+11);write_data( );write_com(0x80+0x40+8);write_data();write_com(0x80+0x40+8);if(s1num=3) write_com(0x80+0x40+8);write_data(:);write_com(0x80+0x40+5);write_data();write_com(0x80+0x40+5); if(s1num=4) write_com(0x80+0x40+5);write_data(:);write_com(0x80+15);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号