(中斷優(yōu)先級(jí)和中斷嵌套實(shí)驗(yàn))
1、兩個(gè)外部中斷:P1接8個(gè)LED燈,點(diǎn)動(dòng)開(kāi)關(guān)接P3.2 (INT0),K0開(kāi)關(guān)接P3.3(INT1),均為負(fù)跳變產(chǎn)生中斷和低優(yōu)先級(jí),編寫(xiě)程序?qū)崿F(xiàn)如下功能:①主程序8只LED燈一起亮滅閃爍循環(huán)往復(fù)。②INT0中斷程序?qū)崿F(xiàn):8個(gè)LED燈左點(diǎn)亮循環(huán)5次后退出中斷;INT1中斷程序?qū)崿F(xiàn)8個(gè)LED燈右點(diǎn)亮循環(huán)5次后退出中斷。(為方便實(shí)驗(yàn)現(xiàn)象觀察,中斷程序里的循環(huán)次數(shù)可改為10次) 程序如下: - #include<reg51.h>
- #include<intrins.h>
- void delay()
- {
- unsignedchar i,j;
- for(i=0;i<255;i++)
- for(j=0;j<255;j++);
- }
- void main()
- {
- EA=1;
- EX0=1;
- EX1=1;
- PX0=0;
- PX1=1;
- IT0=1;
- IT1=1;
- while(1)
- {
- P1=0;
- delay();
- P1=0xff;
- delay();
- }
- }
- void key0()interrupt 0
- {
-
- chari,j;
- P1=0x01;
- for(i=0;i<5;i++)
- for(j=0;j<8;j++)
- {
- P1=_crol_(P1,1);
- delay();
- }
- }
- void key1()interrupt 2
- {
- chari,j;
- P1=0x80;
- for(i=0;i<5;i++)
- for(j=0;j<8;j++)
- {
- P1=_cror_(P1,1);
- delay();
- }
- }
復(fù)制代碼
|