主要实现功能:利用定时器/计数器实现60秒正计时时钟,两只数码管从00开始静态显示正计时的秒值,当显示为59时,再从00开始显示正计时。
程序设计思想:用秒脉冲发生器、计数器、译码显示电路、控制电路四个模块组成。其中计数器和控制电路是系统的主要模块。计数器完成60秒计时功能,控制电路完成计数器的的显示功能。实现两只数码管从00开始静态显示正计时的秒值,当显示为59时,再从00开始显示正计时。
仿真图为:
源代码为:
不懂得地方可私聊博主!博主会进行讲解!!
博主还会提供Hex文件
#include<stdio.h>
#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d};
u8 code table2[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
u8 second;
u8 timer=0;
void init_T0()
{
EA = 1;
ET0 = 1;
TMOD = 0X01;
TH0 = 0xee;
TL0 = 0x00;
TR0 = 1;
}
void main()
{
init_T0();
while(1)
{
P0=table1[second/10];//
P2=table2[second%10];
}
}
void Timer0() interrupt 1
{
TH0=0xee;
TL0=0x00;
timer++;
if(timer==200)
{
timer=0;
second++;
}
if(second == 60)
{
second = 0;
}
}