制作一个秒表计时器,记录0-15秒时间。要求精准,可控。
1.能够用按键控制秒表开始
2.能够用按键控制秒表停止
3.能够用按键控制秒表清零
4.使用定时器控制时间,要求精确。
5.使用1个数码管和多个按键实现功能。

先根据需求判断所需的功能,再改变电路图
然后根据要求开始写代码
1 #include<reg52.h>
2 sbit an = P1^0;
3 sbit qing = P1^1;
4 unsigned int i = 0;
5 unsigned int s = 0;
6 code unsigned char LED_CODE[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};
7 void INT_T0(void)
8 {
9 TMOD = 0X01; //打开定时器0 ,使用模式1定时
10 TH0 = 0XFC;
11 TL0 = 0X18; //初始值
12 EA = 1;//打开总开关
13 ET0 = 1;//打开中断T0开关
14 }
15 void main(void)
16 {
17 INT_T0();
18 TR0 = 0; //定时功能关闭
19 while(1)
20 {
21 if(an == 0)
22 TR0 = 1; //判断按键按下 ,是则打开定时功能
23 else
24 TR0 = 0; // 关闭定时功能
25 if(qing == 0)
26 break; //跳出循环,关闭程序,重新启动
27 }
28 }
29 void time0(void) interrupt 1
30 {
31 TH0 = 0XFC;
32 TL0 = 0X18; //初始值
33 if(i < 1000)
34 {
35 i++;
36 }
37 else
38 {
39 P0 = LED_CODE[s];
40 i = 0;
41 if(s<15)
42 s++;
43 else
44 s = 0;
45 }
46 }
