制作一个秒表计时器,记录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重新开始跳动
原文:https://www.cnblogs.com/xieyu2333/p/11832198.html