制作一个秒表计时器, 记录 0-15 秒时间. 要求精准, 可控.
1. 能够用按键控制秒表开始
2. 能够用按键控制秒表停止
3. 能够用按键控制秒表清零
4. 使用定时器控制时间, 要求精确.
5. 使用 1 个数码管和多个按键实现功能.
代码如下:
- #include<reg52.h>
- #define LED P0
- sbit KEY1 = P1^0;
- sbit KEY2 = P1^1;
- unsigned int i = 0;
- unsigned char LED_NUM[] = {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
- unsigned char n = 0;
- 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==1)
- {
- i = 0;
- n = 0;
- }
- }
- }
- void time0(void) interrupt 1
- {
- TH0 = 0XFC;
- TL0 = 0X18; // 初始值
- if(i < 1000)
- {
- i++;
- }
- else
- {
- LED = NUM[n];
- if(n<16)
- {
- n++;
- }
- else
- {
- n = 0;
- }
- i = 0;
- }
- }
来源: http://www.bubuko.com/infodetail-3280085.html