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