秒表计时器

制作一个秒表计时器,记录0-15秒时间。要求精准,可控。

1.能够用按键控制秒表开始

2.能够用按键控制秒表停止

3.能够用按键控制秒表清零

4.使用定时器控制时间,要求精确。

5.使用1个数码管和多个按键实现功能。

根据题目打开Keil uVision4编撰代码如下

#include<reg52.h>
#define LED_ALL P0
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
unsigned int i = 0;
unsigned int n = 0;
unsigned char LED_NUM[] = {0xc0,0xf9,0xa4,0xb0,\
                           0x99,0x92,0x82,0xf8,\
                           0x80,0x90,0x88,0x83,0xc6,\
                           0xa1,0x86,0x8e};
void INT_T0(void)
{
    TMOD = 0X01; //???????0 ???????1???
    TH0 = 0XFC;
    TL0    = 0X18; //????
    EA = 1;//???????
    ET0 = 1;//???ж?T0????
}
void main(void)
{    
    INT_T0();
    TR0 = 0; //????????
    while(1)
    {
        if(KEY1==0)
        {
            TR0 = 1;
        }
        if(KEY2==0)
        {
            
            i=0;
            n=0;
        }                    
    }

}
void time0(void) interrupt 1 
{
    TH0 = 0XFC;
    TL0    = 0X18; //????
    if(i < 1000)
    {
        i++;
    }
    else
    {
        LED_ALL = LED_NUM[n];
        if(n<16)
            n++;
        else
            n=0;
        i = 0;            
        
    }
}

将代码烧入如下的图中

 

 打开程序,按下按键1,数字灯开始跳动

 

 按住按键二不放,数字灯暂停,松开按键二,数字灯归0重新开始跳动

 

posted @ 2019-11-10 22:32  优克莉伍德丶  阅读(261)  评论(0)    收藏  举报