在五一单片机控制的数码管,用c语言让他开始计时并在15暂停计时,并要在数码管上持续显示
时间: 2023-06-17 19:03:46 浏览: 48
下面是一个基于定时器的计时器示例代码,可以在计时器中断中更新数码管的显示。您可以根据自己的需要进行调整。
```c
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
// 数码管显示的数字
uchar code num[] = {
0xc0, // 0
0xf9, // 1
0xa4, // 2
0xb0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xf8, // 7
0x80, // 8
0x90 // 9
};
// 定时器计数器
uint timer_count = 0;
void timer0_init() {
TMOD = 0x01; // 定时器0, 模式1
TH0 = 0xfc; // 初始值
TL0 = 0x66;
ET0 = 1; // 开启定时器0中断
TR0 = 1; // 启动定时器0
EA = 1; // 开启总中断
}
void timer0_isr() interrupt 1 {
TH0 = 0xfc; // 重置计数器
TL0 = 0x66;
timer_count++; // 计数器加1
}
void main() {
uchar i = 0;
timer0_init();
while(1) {
if (timer_count >= 15000) { // 计时15秒
timer_count = 0; // 重置计数器
TR0 = 0; // 暂停定时器
}
P0 = num[i]; // 显示数字
i++;
if (i >= 10) {
i = 0;
}
}
}
```
此代码的基本思路是使用定时器来计时,每次计时器中断中更新计数器并检查是否已经计时到15秒。如果计时器到达15秒,则暂停定时器。在主循环中,我们不断更新数码管的显示,以显示数字计时器的值。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)