开发板制作秒表计时器---我太难了丶

Posted leizl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发板制作秒表计时器---我太难了丶相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

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

 

  将下面代码复制粘贴到C51软件里,编译运行生成.hex文件,再将文件添加到下面电路中,运行。(软件文件,安装方法,创建工程,电路图在我前面博客里有)

  右边数码管呈现从1到9数字一次增加,鼠标点击连接接口P1的按钮,数码管启动,再次按下数码管数字停止;点击连接接口P2的按钮,数码管数字清零,从0开始计时。

  功能就是这样,喜欢的可以给个关注谢谢~

                  技术图片

 

 

#include<reg52.h>
sbit an = P1^0;
sbit qing = P1^1;
unsigned int i = 0;
unsigned int s = 0;
code unsigned char LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,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(an == 0)          
            TR0 = 1;       //判断按键按下  ,是则打开定时功能
        else
            TR0 = 0;       //  关闭定时功能
        if(qing == 0)
            break;            //跳出循环,关闭程序,重新启动            
    }
}
void time0(void) interrupt 1 
{
    TH0 = 0XFC;
    TL0    = 0X18; //初始值
    if(i < 1000)
    {
        i++;
    }
    else
    {
        P0 = LED_CODE[s];
        i = 0;
        if(s<15)
            s++;
        else
            s = 0;        
    }
}

 

 

 

 

 

    

以上是关于开发板制作秒表计时器---我太难了丶的主要内容,如果未能解决你的问题,请参考以下文章

进程调度:我太难了!

维护开源项目,我太难了

当年一穷二白搞微服务的日子……我太难了

在职搞副业,领导知道后让我要么停了副业要么辞职,我太难了

常见的链表翻转,字节跳动加了个条件,面试者高呼:我太难了!

Android开发太难了:Java Lambda ≠ Android Lambda (上)