以下是使用 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口数据直接输出到PO口。在 main 函数中,我们开启了外部中断0和外部中断1,并设置它们的触发方式为下降沿触发。最后,我们在一个无限循环中等待中断的发生

编程实现:用随便一种MCS-51外部中断0请求在中断服务程序中读取P1口数据;然后使用外部中断1请求在中断服务程序中将读入的P1 口数据由PO口输出。

原文地址: http://www.cveoy.top/t/topic/hbME 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录