以上是部份代码,完全代码与仿真电路图在附件中
该代码实现了当前正执行的工作 ,同时两次被打断去执行两种不同的任务,并且实现了高优先级允许级别不被低优先级中断打断和理念
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机程序源码:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^2;
sbit k2=P3^3;
void delay(uint z);
void liushui();
main()
{
EA=1;//开总中断
EX0=1;//开外部中断0
EX1=1;//开外部中断1
IT0=1;//跳沿触发
IT1=1;//跳沿触发
}
void delay(uint z)//延时函数
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void liushui()//流水灯函数
{
uchar t;
t=0xfe;
P0=t;
while(1)
{
t=_crol_(t,1);//循环左移一位
delay(600);
P0=t;
}
}
void ZOD0() interrupt 0//外部中断0
{
P0=0xf0;
delay(600);
P0=0x0f;
delay(600);
}
全部资料51hei下载地址:
51单片机知识点之中断嵌套的应用.zip
(15.7 KB, 下载次数: 66)
|