AT89C51 外部中断控制LED二进制计数 - Keil 5µVision 代码示例
以下是使用Keil 5µVision编写的代码,利用AT89C51芯片和两个74LS240芯片,通过P3.3外部中断接口连接一个外部中断输入(按键),通过P1口连接8个发光二极管显示中断的次数。每按下一次与P3.3连接的按键,8个发光二极管以二进制加1的方式点亮。
#include <reg52.h>
// 定义全局变量
unsigned char counter = 0;
// 初始化函数
void init() {
// 将P1口设置为输出模式
P1 = 0x00;
// 将P3.3设置为输入模式
P3 = P3 | 0x08;
// 使能外部中断0
EX0 = 1;
// 设置中断0下降沿触发
IT0 = 1;
// 允许总中断
EA = 1;
// 允许外部中断0
ET0 = 1;
}
// 外部中断0的中断处理函数
void interrupt0() interrupt 0 {
counter++; // 每次按下按键,计数器加1
// 将计数器的值通过P1口显示(通过两个74LS240芯片)
P1 = counter;
// 通过两个74LS240芯片连接开关量显示的8个灯
P2 = counter;
}
// 主函数
void main() {
init(); // 初始化
while (1) {
// 主循环
}
}
请注意,你需要将上述代码粘贴到Keil 5µVision中,进行编译和烧录到AT89C51芯片中,以实现所需的功能。同时,按照原理图进行连线,确保P1.0~P1.7与两个74LS240芯片分别连接,并连接到要显示的8个发光二极管。
原文地址: https://www.cveoy.top/t/topic/bKoP 著作权归作者所有。请勿转载和采集!