MCS-51 外部中断编程:P1 口数据读取和 P0 口输出
以下是使用 Keil C51 编写的示例代码:
#include <reg51.h>
sbit LED = P0^0; // 输出引脚
void ext0_isr() interrupt 0 { // 外部中断0中断服务程序
LED = P1; // 读取P1口数据并输出到LED
}
void ext1_isr() interrupt 2 { // 外部中断1中断服务程序
P0 = P1; // 将P1口数据输出到PO口
}
void main() {
EA = 1; // 允许中断
EX0 = 1; // 允许外部中断0
EX1 = 1; // 允许外部中断1
IT0 = 1; // 外部中断0触发方式为下降沿触发
IT1 = 1; // 外部中断1触发方式为下降沿触发
while(1); // 循环等待中断发生
}
在上述代码中,我们使用 sbit 定义了一个输出引脚 LED,并在外部中断 0 中断服务程序中读取 P1 口数据并输出到该引脚。在外部中断 1 中断服务程序中,我们将读取的 P1 口数据直接输出到 P0 口。在 main 函数中,我们开启了外部中断 0 和外部中断 1,并设置它们的触发方式为下降沿触发。最后,我们在一个无限循环中等待中断的发生。
原文地址: https://www.cveoy.top/t/topic/oEIj 著作权归作者所有。请勿转载和采集!