用Keil+uVision5写一个程序利用四位数目管实现分钟和秒钟计时,每隔1秒钟,秒数加1,当秒数范围为 00-59。计时60秒后,分钟数加1,分钟数最大为60。
时间: 2024-06-13 10:08:23 浏览: 32
```c
#include <reg52.h> // 引入头文件
typedef unsigned char uchar; // 定义无符号字符类型
typedef unsigned int uint; // 定义无符号整型类型
sbit LSA = P2^2; // 定义数码管引脚
sbit LSB = P2^3;
sbit LSC = P2^4;
uchar code table[] = { // 数码管显示0-9的编码
0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f
};
uint second = 0; // 定义秒数和分钟数
uint minute = 0;
void delay(uint i) { // 延时函数
while(i--);
}
void display(uchar num) { // 数码管显示函数
LSA = 0; // 先关闭所有数码管
LSB = 0;
LSC = 0;
P0 = table[num]; // 显示对应数字
}
void main() {
TMOD = 0x01; // 定时器0工作在模式1
TH0 = 0xfc; // 定时器0初始值
TL0 = 0x18;
TR0 = 1; // 启动定时器0
ET0 = 1; // 开启定时器0中断
EA = 1; // 开启总中断
while(1) { // 主循环
display(second % 10); // 显示秒数个位
LSA = 1; // 打开个位数码管
delay(100);
display(second / 10); // 显示秒数十位
LSB = 1; // 打开十位数码管
delay(100);
display(minute % 10); // 显示分钟数个位
LSC = 1; // 打开百位数码管
delay(100);
}
}
void timer0() interrupt 1 { // 定时器0中断函数
TH0 = 0xfc; // 重新赋值定时器0初始值
TL0 = 0x18;
second++; // 秒数加1
if(second == 60) { // 如果秒数为60,分钟数加1
second = 0;
minute++;
if(minute == 60) { // 如果分钟数为60,分钟数清零
minute = 0;
}
}
}
```
--相关问题--:
1. 如何在Keil中配置定时器?
2. 怎样使用中断实
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)