(中斷優先級和中斷嵌套實驗)
1、兩個外部中斷:P1接8個LED燈,點動開關接P3.2 (INT0),K0開關接P3.3(INT1),均為負跳變產生中斷和低優先級,編寫程序實現如下功能:①主程序8只LED燈一起亮滅閃爍循環往復。②INT0中斷程序實現:8個LED燈左點亮循環5次后退出中斷;INT1中斷程序實現8個LED燈右點亮循環5次后退出中斷。(為方便實驗現象觀察,中斷程序里的循環次數可改為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();
- }
- }
復制代碼
|