【單片機】中斷嵌套



 

要求:使用一個外部中斷和定時器中斷,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元件圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM