码迷,mamicode.com
首页 > 其他好文 > 详细

期中考试王乐平

时间:2019-11-07 18:55:11      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:include   精确   计时器   代码   interrupt   清零   根据   void   判断   

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

 

要求:

 

能够用按键控制秒表开始

能够用按键控制秒表停止

能够用按键控制秒表清零

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

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

1.首先根据要求把电路图加上2个按钮,如图下图所示

 

 

 

 

 

 2.根据要求写出代码,下面是参考代码

 

 

 

#include<reg52.h>

#define LED P0

unsigned int i = 0;

unsigned int j =0;

sbit KEY1 = P1^0;     //暂停,开始按钮

sbit KEY2 = P1^2;       //复位按键

unsigned char NUM[]= {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;      //定时功能关闭

    LED = NUM[0];

    while(1)

    {            

        if(KEY1 == 0)

        {

            TR0= 1 ;  //判断按键按下  ,则打开定时计时功能

        }

        else

        {

            TR0=0;       //判断按键松开,则断开计时功能

        }

        if(KEY2 == 0)

        {

             break;        //跳出循环,计时归零

        }    

    }

}

 

void time0(void) interrupt 1 

{

    TH0 = 0XFC;

    TL0    = 0X18; //初始值

    if(i < 1000)

    {

        i++;

    }

    else

    {

         LED= NUM[j]    ;

        if(j < 16)

        {

         j++;

        }

        else

        {

             j=0;

        }

        i = 0;

    }

    

}

期中考试王乐平

标签:include   精确   计时器   代码   interrupt   清零   根据   void   判断   

原文地址:https://www.cnblogs.com/wangdalao/p/11814069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!