要实现倒计时并在数码管上显示,需要学习定时器,数组,以及数码管的显示。
将0~15的数值储存在数组里即可。
点亮数码管的方法和点亮led小灯的方法一样。
至于定时器的运用可按照以下四个步骤:
通过设置TMOD来确定定时器工作模式。
M1=0,M=1设置工作模式1,16位定时器。
值得一提的是通过设置TH0和TL0的值计算一共有多少机器周期即时间。
#include<STC12C5A60S2.H>
void main()
{
unsigned char cnt = 0;
signed char see = 15;
unsigned char code LEDchar[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0x88,0x83, 0xC6, 0xA1, 0x86, 0x8E};
P22 = 0; P21 = 0;
P20 = 0; P11 = 0;
TMOD = 0X01;
TH0 = 0XB8;
TL0 = 0X00;
TR0 = 1;
while(1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0XB8;
TL0 = 0X00;
cnt++;
if(cnt>=50)
{
cnt = 0;
P0 = LEDchar[see];
see--;
if(see<=-1)
see = 15;
}
}
}
}
|