制作一个秒表计时器,记录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 }