📄 memory clockί
字号:
#include<reg52.h>
#include"24c02.h"
#include "MacroAndConst.h"
#include "Key.h"
#include "Lcd.h"
#include "Assistance.h"
char flag=0;
uint year;
uchar time;
uchar count,s1num;
char a,b,c,d,year1,year2;
void yearConvert(uint Year)
{
a=Year/1000;
b=Year/100%10;
c=Year/10%10;
d=Year%10;
year1=c*10+d;
year2=a*10+b;
if(year1==100)
{
year1=0;
year2++;
}
}
void timer0Init()
{
TMOD = 0x11;//设置定时器0和定时器1为工作方式1
TH0 = (65536 - 45872) / 256;
TL0 = (65536 - 45872) % 256; //20ms延时
EA = 1;//开总中断
ET0 = 1;//开定时器0中断
TR0 = 1;
}
void timer1Init()
{
TH1 = (65536 - 32110) / 256;
TL1 = (65536 - 32110) % 256; //20ms延时
ET1 = 1;//开定时器0中断
TR1 = 1;
}
void timer0() interrupt 1//定时器0中断服务程序
{
TH0=(65536-45872)/256;//再次装定时器初值
TL0=(65536-45872)%256;
count++; //中断次数累加
if(count==20) //20次50毫秒为1秒
{
count=0;
miao++;
if(miao==60)//秒加到60则进位分钟
{
miao=0;//同时秒数清零
fen++;
if(fen==60)//分钟加到60则进位小时
{
fen=0;//同时分钟数清零
shi++;
if(shi==24)//小时加到24则小时清零
{
shi=0;
day++;
weekDay++;
if(weekDay==7)
{
weekDay=0;
}
if( (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month == 12) && day==32 )
{
month++;
day=1;
flag=1;
}
if( (month==4 || month==6 || month==9 || month==11) && day==31 )
{
month++;
day=1;
flag=1;
}
if( month==2 && ((year%4 == 0 && year%100 != 0) || (year%400 == 0)) && day==30 )
{
month++;
day=1;
flag=1;
}
if( month==2 && ((year%4 == 0 && year%100 != 0) || (year%400 == 0)) == 0 && day==29)
{
month++;
day=1;
flag=1;
}
if(month==13)
{
year++;
month=1;
yearConvert(year);
write_year(4,year1);
write_addbyte(7,year1);
write_year(2,year2);
write_addbyte(8,year2);
}
if(flag==1)
{
write_month(7,month);
write_addbyte(6,month);
flag=0;
}
write_day(10,day);
write_addbyte(5,day);
write_weekDay(13,weekDay);
write_addbyte(4,weekDay);
}
write_sfm(4,shi);//小时若变化则重新写入
write_addbyte(3,shi);//数据改变立即存入24C02
}
write_sfm(7,fen);//分钟若变化则重新写入
write_addbyte(2,fen);//数据改变立即存入24C02
}
write_sfm(10,miao);//秒若变化则重新写入
write_addbyte(1,miao);//数据改变立即存入24C02
}
}
void timer1() interrupt 3
{
time=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -