📄 电子钟的设计.c
字号:
/***************************************************************************************
电子钟 的设计
****************************************************************************************/
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
code uchar d[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uint second=0,minter=50,hour=11;
uint sshi,sge,mge,mshi,hshi,hge;
static char court=0;
sbit P21=P2^1;
sbit P22=P2^2;
sbit P23=P2^3;
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;
sbit P20=P2^0;
void delay() //单个LED延时函数
{uchar i;
for(i=0;i<15;i++);
}
void int1() interrupt 1 using 2 //定时中断响应 定50MS
{ TH0=0x4c; TL0=0x00; court++;
}
void main() //主函数
{
TMOD=0x01; TH0=0x4c; TL0=0x00; EA=1; ET0=1; TR0=1;
P1=0XFF;
for(;;)
{
sshi=second/10; //求分秒时的个位
sge=second%10;
mshi=minter/10;
mge=minter%10;
hshi=hour/10;
hge=hour%10;
P0=d[sge]; //时分秒在LED的显示
P27=1; //P0口数据输出;P2口选通信号
delay();
P27=0;
P0=d[sshi];
P26=1;
delay();
P26=0;
P0=0xbf;
P25=1;
delay();
P25=0;
P0=d[mge];
P24=1;
delay();
P24=0;
P0=d[mshi];
P23=1;
delay();
P23=0;
P0=0xbf;
P22=1;
delay();
P22=0;
P0=d[hge];
P21=1;
delay();
P21=0;
P0=d[hshi];
P20=1;
delay();
P20=0;
if(court==20) //判断定时1S的时间到了吗 如果到了就执行IF后面的 ;否则就跳转
{court=0; //执行LED显示程序
second++;
if(second==60)
{ second=0;minter++;
if(minter==60)
{minter=0;hour++;
if(hour==24)
hour=0;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -