以上是部份代碼,完全代碼與仿真電路圖在附件中
該代碼實現了當前正執行的工作 ,同時兩次被打斷去執行兩種不同的任務,并且實現了高優先級允許級別不被低優先級中斷打斷和理念
仿真原理圖如下(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)
2018-12-11 13:49 上傳
點擊文件名下載附件
|