📄 clc.c
字号:
#include <reg51.h>
#include "seg_trd.c"
#define uchar unsigned char
#define uint unsigned int
sbit bell = P1^1;
uchar num;
char sec,min,hor;
void delay(uchar t)
{
unsigned char i, j;
for(i=255; i>0; i--)
for(j=t; j>0; j--);
}
uchar key_press(void)//返回1,则有按键按下
{
uchar i;
i = P3;
i&=0X3C;
if(i==0X3C)
{
return 0;
}
else
{
return 1;
}
}
uchar key_scan(void)
{
uchar key;
TR0 = 0;
delay(1);
if(key_press())//判断按键是否真的按下
{
key=P3;
key&=0X3C;
switch(key)
{
case 0X38:
min++;
if(min==60)min=0;
break;
case 0X34:
min--;if(min<0)min=59;
break;
case 0X2C:
hor++;if(hor==24)hor=0;
break;
case 0X1C:
hor--;if(hor<0)hor=23;
break;
default:
break;
}
while(key_press());//等待按键松开
}
TR0 = 1;
}
void timer0_ovf_isr(void) interrupt 1
{
TH0 = 0X4C;//4C00
TL0 = 0X0C;
num++;
if(num==20)
{
num = 0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hor++;
if(hor==24)
{
hor=0;
}
}
}
}
}
void main()
{
EA = 1;
TMOD = 0X01;//T0 方式1
TH0 = 0X4C;
TL0 = 0X0C;//初值
ET0 = 1;//溢出使能
TR0 = 1;//开始计时
while(1)
{
if(key_press())//判断是否有按键按下
{
key_scan();
}
display_sec(sec);
display_min(min);
display_hor(hor);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -