制作一个秒表计时器,记录0-15秒时间。要求精准,可控。
所需keil_proteus电路图链接:https://pan.baidu.com/s/1QWcxt7-lTIe9_cJGrILpsQ 提取码:tkn4
一,要求
1.能够用按键控制秒表开始
2.能够用按键控制秒表停止
3.能够用按键控制秒表清零
4.使用定时器控制时间,要求精确。
5.使用1个数码管和多个按键实现功能。
1.打开单只数码管显示proteus电路图
2.打开keil4开始写代码如下图:
3.具体代码如下
#include<reg52.h> #define LED_ALL P0 sbit KEY1 = P1^0; sbit KEY2 = P1^1; unsigned int i = 0; unsigned char 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; //定时功能打开 LED_ALL = LED_NUM[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; } }
4.最后只需将生成hex文件烧入单只数码管显示电路图即可