Document number【980KGB-6898YT-769T8CB-246UT-18GG08】
Document number【980KGB-6898YT-769T8CB-246UT-18GG08】
单片机c语言电子万年历完整程序
该程序为51单片机c语言电子万年历
#include"reg52.h"
//#include
#defineucharunsignedchar
#defineuintunsignedint
sbitlcden=P3^4;
sbitlcdrs=P3^5;
sbitDATA=P0^7;
sbitRST=P0^5;
sbitSCLK=P0^6;
sbitmenu=P3^0;//菜单
sbitadd=P3^1;//加一
sbitdec=P3^7;//减一
sbitled0=P1^0;
sbitled1=P1^1;
sbitled2=P1^2;
sbitled3=P1^3;
sbitds=P3^2;
//sbitbeep=P3^3;
uinttemp;
floatf_temp;
uintwarn_l1=270;
uintwarn_l2=250;
uintwarn_h1=300;
uintwarn_h2=320;
uintget_temp();
voiddelayms(uintx);
voidwrite_com(ucharcom);
voidwrite_data(uchardate);
voidinit();
voiddis_temp(uintt);
voidWrite1302(uchardat);
voidWriteSet1302(ucharCmd,uchardat);
ucharRead1302(void);
ucharReadSet1302(ucharCmd);
voidInit_DS1302(void);
voidDisplaySecond(ucharx);
voidDisplayMinute(ucharx);
voidDisplayHour(ucharx);
voidDisplayDay(ucharx);
voidDisplayMonth(ucharx);
voidDisplayYear(ucharx);
voidDisplayWeek(ucharx);
voiddis_temp(uintt);
voidread_date(void);
voidturn_val(charnewval,ucharflag,
ucharnewaddr,uchars1num);
voidkey_scan(void);
ucharcodetable2[]="TUEWESTHUFRISATSUNMON";
ucharsecond,minute,hour,day,month,year,week,count=0;
ucharReadValue,num,time;
voiddelayms(uintx)
{
uinti,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
voidwrite_com(ucharcom)
{
lcdrs=0;
P2=com;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
voidwrite_data(uchardate)
{
lcdrs=1;
P2=date;
delayms(5);
lcden=1;
delayms(5);
lcden=0;
}
voidinit()
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
/
voidWrite1302(uchardat)
{
uchari;
SCLK=0;//拉低SCLK,为脉冲上升沿写入数据做好准备
delayms(2);//稍微等待,使硬件做好准备
for(i=0;i<8;i++)//连续写8个二进制位数据
{
DATA=dat&0x01;//取出dat的第0位数据写入1302
delayms(2);//稍微等待,使硬件做好准备
SCLK=1;//上升沿写入数据
delayms(2);//稍微等待,使硬件做好准备
SCLK=0;//重新拉低SCLK,形成脉冲
dat>>=1;//将dat的各数据