1. 程式人生 > 實用技巧 >【微控制器】中斷巢狀

【微控制器】中斷巢狀


要求:使用一個外部中斷和定時器中斷,P1口連線的8個發光二極體;

系統通過定時器中斷的方式使得LED呈流水燈顯示,外部中斷打斷定時器中斷,控制8個流水燈閃爍顯示。


程式碼如下:


#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit s=P3^2;//外部中斷訊號

void delay(uint i)
{
    uchar t;
    while(i--)
    {
        for(t=0;t<120;t++);
    }
}
void main() { TMOD=0x01; TH0=0xee; TL0=0X00;//賦初值 EA=1; ET0=1;//允許定時器T0中斷 TR0=1; EX0=1;//允許外部中斷0中斷 IT0=1; while(1); {;} } //定時器T0中斷 void timer0() interrupt 1 using 1 { TH0=0xee; TL0=0x00; P1=0xfe; while(s==1){ delay(200); P1=_crol_(P1,1); } } //外部中斷0中斷 void int0() interrupt 0
using 0 { EX0=0; while(s==0) { P1=0x00; EX0=1; } }

proteus元件圖: