📄 main.c
字号:
#include <reg51.h>
typedef unsigned char BYTE;
sbit S_SET=P1^0;
sbit M_SET=P1^1;
sbit H_SET=P1^2;
sbit P30=P3^0;
sbit P31=P3^1;
sbit P32=P3^2;
sbit P33=P3^3;
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;
BYTE SECOND;
BYTE MINUTE;
BYTE HOUR;
BYTE TCNT;
BYTE code TABLE[]={ 0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F};
void DELAY()
{
BYTE i=10;
do
{
BYTE j=250;
do
{}while(--j);
}while(--i);
}
void INT_T0()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TCNT++;
if(TCNT==20)
{
SECOND++;
TCNT=0;
if(SECOND==60)
{
MINUTE++;
SECOND=0;
if(MINUTE==60)
{
HOUR++;
MINUTE=0;
if(HOUR==24)
{
HOUR=0;
MINUTE=0;
SECOND=0;
TCNT=0;
}
}
}
}
}
void DISPLAY()
{
P36=0;
P0=TABLE[SECOND/10];
DELAY();
P36=1;
P37=0;
P0=TABLE[SECOND%10];
DELAY();
P37=1;
P35=0;
P0=0x40;
DELAY();
P35=1;
P33=0;
P0=TABLE[MINUTE/10];
DELAY();
P33=1;
P34=0;
P0=TABLE[MINUTE%10];
DELAY();
P34=1;
P32=0;
P0=0x40;
DELAY();
P32=1;
P30=0;
P0=TABLE[HOUR/10];
DELAY();
P30=1;
P31=0;
P0=TABLE[HOUR%10];
DELAY();
P31=1;
}
main()
{
HOUR=0;
MINUTE=0;
SECOND=0;
TCNT=0;
TMOD=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE=0x82;
TR0=1;
while(1)
{
DISPLAY();
if(!S_SET)
{
DELAY();
if(S_SET) continue;
SECOND++;
if(SECOND==60)
{
SECOND=0;
goto K1;
}
else
{
while(!S_SET)
DISPLAY();
}
}
if(!M_SET)
{
DELAY();
if(M_SET) continue;
K1: MINUTE++;
if(MINUTE==60)
{
MINUTE=0;
goto K2;
}
else
{
while(!M_SET)
DISPLAY();
}
}
if(!H_SET)
{
DELAY();
if(H_SET) continue;
K2: HOUR++;
if(HOUR==24)
{
HOUR=0;
MINUTE=0;
SECOND=0;
}
else
{
while(!H_SET)
DISPLAY();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -