📄 main.c
字号:
/*******************************************************/
#include<reg51.h>
#include"lcd1602.c"
#include"ds1302.c"
#include"ds18b20.c"
#include"key.c"
#include"24C04.c"
#define uchar unsigned char
#define uint unsigned int
sbit fmq = P2^7;
uchar cp,flash,ds,df,d;
uint zs,xs,kj;
/*******************************显示函数***************************/
void display(void)
{
if(key1_flag >=8)
{
gotoxy(1,0);
display_string("*****dingshi*****");
gotoxy(2,0);
display_string("time:");
if(key1_flag == 8)//定时小时的调整值并闪烁
{
if(flash)display_num(time_tmp[7]);
else display_string(" ");
}
else display_num(time_tmp[7]);
if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
if(key1_flag == 9)//定时分钟的调整值并闪烁
{
if(flash)display_num(time_tmp[8]);
else display_string(" ");
}
else display_num(time_tmp[8]);
display_string(" ");
}
else
{
gotoxy(1,0); //第一行
display_string("20");//显示20
if(key1_flag == 1)//显示年的调整值并闪烁
{
if(flash)display_num(time_tmp[0]);
else display_string(" ");
}
else display_num(time_tmp[0]);
display_string("/");
if(key1_flag == 2)//显示月的调整值并闪烁
{
if(flash)display_num(time_tmp[1]);
else display_string(" ");
}
else display_num(time_tmp[1]);
display_string("/");
if(key1_flag == 3)//显示日的调整值并闪烁
{
if(flash)display_num(time_tmp[2]);
else display_string(" ");
}
else display_num(time_tmp[2]);
display_string(" WEEK");
if(key1_flag == 4)//显示星期的调整值并闪烁
{
if(flash)write_data(num[time_tmp[3]]);
else display_string(" ");
}
else write_data(num[time_tmp[3]]);
gotoxy(2,0); //第二行
if(key1_flag == 5)//显示小时的调整值并闪烁
{
if(flash)display_num(time_tmp[4]);
else display_string(" ");
}
else display_num(time_tmp[4]);
if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
if(key1_flag == 6)//显示分的调整值并闪烁
{
if(flash)display_num(time_tmp[5]);
else display_string(" ");
}
else display_num(time_tmp[5]);
if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
if(key1_flag == 7)//显示秒的调整值并闪烁
{
if(flash)display_num(time_tmp[6]);
else display_string(" ");
}
else display_num(time_tmp[6]);
display_string(" T");display_num(zs);display_string(".");write_data(num[xs]);write_data(0xdf);display_string("C");
}
}
/*****************************************************************************/
void timer0_init(void)
{
TMOD = 0x01;
TH0 = 0xec;
TL0 = 0x78;
TR0 = 1;
EA = 1;
ET0 = 1;
}
/*****************************************************************************/
void timer0_isr(void) interrupt 1
{
TH0 = 0xec;
TL0 = 0x78;
cp++;
if(cp >= 100) //刚好1秒
{
cp = 0;
flash = ~flash;
zs = Read_Temperature();
xs = c;
xs = xs * 0.66;
}
}
/*****************************************************************************/
void main (void)
{
timer0_init();
fmq = 0;
F1602_init();
F1602_clear();
gotoxy(1,0);
display_string(" welcome ");
gotoxy(2,0);
for(kj = 1;kj <= 16;kj++)
{
display_string(">");
delay_us(6000);
}
ds1302_init();
init_24c04();
write_add_dat_24c04(1,0x08);
write_add_dat_24c04(2,0x00);
while(1)
{
key();
get_ds1302_time();
d = read_add_dat_24c04(1);
ds = BCD_DEC_conv(d);
delay(500);
d = read_add_dat_24c04(2);
df = BCD_DEC_conv(d);
delay(500);
if(min == df && hour == ds)fmq = 1;
if(min != df || hour != ds) fmq = 0;
if(hour == time_tmp[7] && min == time_tmp[8])fmq = 1;
if(hour != time_tmp[7] || min != time_tmp[8])fmq = 0;
if(key1_flag == 0)
{
if(key4 == 0)
{
delay(300);
if(key4 == 0)
{
delay(300);
key4_s = 1;
}
}
if(key4 == 1 && key4_s == 1)
{
fmq = 0;
time_tmp[8] = time_tmp[8]-1;
}
}
if(key1_flag > 10 || key1_flag < 1)
{
gotoxy(1,0);
display_string("20");
display_num(year);
display_string("/");
display_num(moon);
display_string("/");
display_num(date);
display_string(" WEEK");
write_data(num[xingqi]);
gotoxy(2,0);
display_num(hour);
if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
display_num(min);
if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
display_num(sec);
display_string(" T");display_num(zs);display_string(".");write_data(num[xs]);write_data(0xdf);display_string("C");
}
else
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -