C语言编写的万年历 有平年闰年 有闹钟功能.docx

上传人:李医生 文档编号:7194882 上传时间:2020-11-04 格式:DOCX 页数:5 大小:35.49KB
返回 下载 相关 举报
C语言编写的万年历 有平年闰年 有闹钟功能.docx_第1页
第1页 / 共5页
C语言编写的万年历 有平年闰年 有闹钟功能.docx_第2页
第2页 / 共5页
C语言编写的万年历 有平年闰年 有闹钟功能.docx_第3页
第3页 / 共5页
C语言编写的万年历 有平年闰年 有闹钟功能.docx_第4页
第4页 / 共5页
C语言编写的万年历 有平年闰年 有闹钟功能.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言编写的万年历 有平年闰年 有闹钟功能.docx》由会员分享,可在线阅读,更多相关《C语言编写的万年历 有平年闰年 有闹钟功能.docx(5页珍藏版)》请在三一文库上搜索。

1、#include#includelcd1602.h#includeds1302.h#includeds18b20.h#define uint unsigned int#define uchar unsigned charuint b6;/年月日时分秒uchar code row1=2009-01-01;uchar code row2=00:00:00;uchar year112=31,28,31,30,31,30,31,31,30,31,30,31;/平年uchar year212=31,29,31,30,31,30,31,31,30,31,30,31;/润年uchar j6=0x85,0x8

2、8,0x8b,0x84+0x40,0x87+0x40,0x8a+0x40;/LCD地址uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num;/i循环数 k温度缓存 jj地址位uint temp;sbit b1=P30;/设置sbit b2=P31;/上调sbit b3=P32;/下调sbit b4=P33;/转换sbit b5=P34;/闹钟sbit speaker=P35;lcdscan()for(i=0;i6;i+)lcdwrite(ji);lcdshuju(a11-i*2+0x30);lcdwrite(ji+0x01);lcdshuju(a10-i*2+

3、0x30);void key()if(b1=0)dsaddshuju(0x80,(a14)+a0+0x80);while(b1=0)for(i=0;iyear2b1-1)b2=1;else if(b2year1b1-1)b2=1;if(b1=13)b1=1;if(b0=100)b0=0;if(b3=0)delay(3);bjj-;if(b5=-1)b5=59;if(b4=-1)b4=59;if(b3=-1)b3=23;if(b0%4=0 & b0%100!=0) | b0%400=0)if(b2=0)b2=year2b1-1;else if(b2=0)b2=year1b1-1;if(b1=0)

4、b1=12;if(b0=-1)b0=99;for(i=0;i6;i+)a11-i*2+clock=bi/10;a10-i*2+clock=bi%10;lcdwrite(jjj);lcdshuju(0);lcdwrite(jjj+1);lcdshuju(0);delay(200);lcdwrite(jjj);lcdshuju(a11-2*jj+clock+0x30);lcdwrite(jjj+1);lcdshuju(a10-2*jj+clock+0x30);delay(200);if(b1=1)dsaddshuju(0x80,(a14)+a0);dson();if(b5=0)clock=12;v

5、oid main()speaker=0;lcdrw=0;dson();lcdon();lcdwrite(0x83);for(i=0;i10;i+)lcdshuju(row1i);delay(1);lcdwrite(0x84+0x40);for(i=0;i8;i+)lcdshuju(row2i);delay(1);dsrst=0;dssclk=0;while(1)for(i=0;i4)&0x0f;dsrst=1;dswrite(0x8d);k=dsread();dsrst=0;a10=k&0x0f;a11=(k4)&0x0f;delay(100);lcdscan();key();if(b5=0)

6、for(i=0;i12;i+)if(ai+12=ai)num+;if(num=12)bigclock=1;else num=0;lcdwrite(0x8e);lcdshuju(&);else lcdwrite(0x8e);lcdshuju(0x00);if(bigclock=1)speaker=1;c+;if(c=100)bigclock=0;speaker=0;temp=readtemperature();/temp是uint型的。不然会出现温度到25后回00的现象。可能是由于十六进制与十进制的差异。lcdwrite(0x8d+0x40);lcdshuju(temp/100+0x30);lcdwrite(0x8e+0x40);lcdshuju(temp/10%10+0x30);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1