采用外部中断控制定时器,用四位数数码管显示60计时的proteus电路图
时间: 2023-06-16 08:08:37 浏览: 206
抱歉,我无法提供图纸。但是我可以为您提供以下基本思路:
1. 配置定时器:使用外部中断控制定时器。配置定时器的时钟源和计数器,使其每隔一定时间触发一次中断。
2. 编写中断服务程序:中断程序需要检查定时器状态并更新计数器。每次中断时,计数器减一。当计数器为零时,表示经过了一定的时间,需要重新设置定时器并更新数码管的值。
3. 驱动数码管:使用数码管驱动芯片或者直接使用 MCU 的 GPIO 端口驱动数码管。根据计数器的值,将对应的数字输出到数码管上。
希望这些基本思路能够帮助您完成电路设计和程序编写。
相关问题
基于AT89S52控制的秒计时表的设计 设计要求 制作一个两位的LED数码管显示的计时表,最小计时单位“秒”,显示时间的范围为00∽99s,每秒自动加1,另设置一个“开始”键和一个“复位”键。如“开始”按键按下,时钟开始走时,LED数码管显示两位的秒时间;如“复位”按键按下,LED数码管清零显示“00”。C语言代码及Proteus仿真电路
下面是基于AT89S52控制的秒计时表的设计方案和代码:
## 设计方案
1. 显示模块:使用两个共阳数码管来显示秒数,数码管共用7个引脚,其中6个引脚用于控制数码管的每一位,第7个引脚用于选择要显示的数码管。
2. 控制模块:使用AT89S52单片机来控制秒表的计时和显示,使用定时器和外部中断来实现计时功能,按键输入用外部中断实现。
## 电路图
![秒计时表电路图](https://img-blog.csdn.net/20170224121218808?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxvZy5wbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
## 代码
```c
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit D1 = P2^2; // 数码管第一位
sbit D2 = P2^3; // 数码管第二位
sbit S1 = P3^2; // 开始键
sbit S2 = P3^3; // 复位键
uchar code table[] = { // 数码管显示表,0~9的编码
0x3f, 0x06, 0x5b, 0x4f, 0x66,
0x6d, 0x7d, 0x07, 0x7f, 0x6f
};
uchar second; // 秒数
bit running; // 计时状态
// 定时器0中断服务程序,每1ms执行一次
void timer0_isr() interrupt 1 {
TH0 = 0xFC; // 重置计数值
TL0 = 0x67;
if (running) {
second++; // 秒数加1
if (second >= 100) { // 秒数满100时,清零并停止计时
second = 0;
running = 0;
}
}
}
// 外部中断0服务程序,按下开始键时触发
void int0_isr() interrupt 0 {
if (!running) { // 未开始计时
running = 1;
}
}
// 外部中断1服务程序,按下复位键时触发
void int1_isr() interrupt 2 {
second = 0;
running = 0;
}
// 数码管显示函数
void display(uchar num) {
D1 = D2 = 1; // 关闭数码管显示
if (num < 10) { // 显示个位数
D2 = 0;
P0 = table[num];
} else { // 显示十位数
D1 = 0;
P0 = table[num/10];
}
}
void main() {
TMOD = 0x01; // 定时器0工作在模式1
TH0 = 0xFC; // 设置计数值,产生1ms中断
TL0 = 0x67;
ET0 = 1; // 开启定时器0中断
EX0 = 1; // 开启外部中断0
EX1 = 1; // 开启外部中断1
IT0 = 1; // 设置外部中断0为下降沿触发
IT1 = 1; // 设置外部中断1为下降沿触发
EA = 1; // 开启总中断
while (1) {
if (running) {
display(second);
} else {
display(0);
}
}
}
```
## Proteus仿真电路
![秒计时表仿真电路](https://img-blog.csdn.net/20170224121251362?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmxvZy5wbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
阅读全文