|
1.這個(gè)程序只能完成LED閃爍,不能左右流水,因?yàn)橥獠恐袛?、1都沒(méi)有開(kāi)啟。
2.這種外部中斷用法也不是嵌套。
3.LED當(dāng)前狀態(tài)無(wú)需另外保存,P1本身就是存儲(chǔ)器。
4.Int0Init();Int1Init();缺少函數(shù)體。
5.中斷優(yōu)先等級(jí)設(shè)置在此無(wú)意義。
- #include "reg52.h"
- #include <intrins.h>
- #define led P1
- typedef unsigned int u16;
- typedef unsigned char u8;
- u8 t=0;
- void delayms(u8 ms)
- {
- u8 i;
- while(ms--)
- for(i=0;i<123;i++);
- }
- void main()
- {
- IT0 = 1;
- EX0 = 1;
- IT1 = 1;
- EX1 = 1;
- EA = 1;
- while(1)
- {
- if(t==0)
- led=~led;
- if(t==1)
- led=_cror_(led,1);
- if(t==2)
- led=_crol_(led,1);
- delayms(200);
- }
- }
- void Int0() interrupt 0
- {
- if(led==0x00||led==0xff)
- led=0xfe;
- t=1;
- }
- void Int1() interrupt 2
- {
- if(led==0x00||led==0xff)
- led=0xfe;
- t=2;
- }
復(fù)制代碼 |
|