实验要求是希望通过外部信号对led灯进行中断
本次实验是通过控制单一开关让4低位LED和4高位LED交替闪烁来体现外部中断的结果。
keil代码如下,借鉴了大佬的思路和代码并且根据需求自行修改了下。
#include<reg51.h>
#define uchar unsigned char
void main()
{
EA=1;
EX0=1; //打开外部中断
IT0=0; //外部中断为低电平触发方式
while(1)
{
P1=0;
}
}void Delay(unsigned int i)
{
unsigned int j =0;
for(;i>0;i--)
{
for( ;j<1234;j++); //用循环来延长LED亮灭的时间,有没有都差不多
}
}
void int0() interrupt 0 using 0{
uchar m;
EX0=0; //关闭外部中断
for(m=0;m<5;m++)
{
P1=0x0F; //低4位LED灭,高4位LED亮
Delay(123456789); //延长时间根据需求自行设置
P1=0xF0; //低4位LED亮,高4位LED灭
Delay(123456789);
}
EX0=1;
}
Proteus图示
视频还在审核,放几张结果图
演示视频如下:
2024-04-27 00-36-02