📄 clock.c
字号:
#include<reg51.h>
#include<lcd.h>
#include<keyboard.h>
#include<keyservice.h>
#define intot1 P2_3
sbit P2_3=P2^3;
char second=00,minute=00,hour=00;
void delay_50ms(unsigned int t)//延时程序,延时时间=t*50ms
{
unsigned int j;
for(;t>0;t--)
for(j=6245;j>0;j--)
;
}
void timer0() interrupt 1 using 1 //定时/计数器0中断服务程序
{
intot1=!intot1;
TH0=15536/256;
TL0=15536%256;
}
void timer1() interrupt 3 using 2//定时/计数器1中断服务程序
{
if(second==59)
{
second=00;
write_LCD_command(0x86);
display_LCD_number(second);
if(minute==59)
{
minute=00;
write_LCD_command(0x83);
display_LCD_number(minute);
if(hour==23)
{
hour=00;
write_LCD_command(0x80);
display_LCD_number(hour);
}
else
{
hour++;
write_LCD_command(0x80);
display_LCD_number(hour);
}
}
else
{
minute++;
write_LCD_command(0x83);
display_LCD_number(minute);
}
}
else
{
second++;
write_LCD_command(0x86);
display_LCD_number(second);
}
}
void s01service(void)//按键s1用于修改时间的小时位
{
if(hour==23)
{
hour=00;
write_LCD_command(0x80);
display_LCD_number(hour);
}
else
{
hour++;
write_LCD_command(0x80);
display_LCD_number(hour);
}
delay_50ms(5);
}
void s02service(void)//按键s2用于修改时间的分钟位
{
if(minute==59)
{
minute=00;
write_LCD_command(0x83);
display_LCD_number(minute);
}
else
{
minute++;
write_LCD_command(0x83);
display_LCD_number(minute);
}
delay_50ms(5);
}
void main(void)
{
SP=0x31;
IP=0x08;
IE=0xff;
TMOD=0x61;
TH0=15536/256;
TL0=15536%256;
TH1=246;
TH0=246;
intot1=1;
TR0=1;
TR1=1;
init_LCD();
clear_LCD();
display_LCD_number(hour);
write_LCD_data(':');
display_LCD_number(minute);
write_LCD_data(':');
display_LCD_number(second);
while(1)
{ unsigned char key;
key=keyboard();
if(key!=00)
{
EA=0;
keyservice(key);
EA=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -