制作一個秒表計時器,記錄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文件燒入單只數碼管顯示電路圖即可