功能描述:
當無外部中斷時:
點亮LED
先點亮第1,3,5,7個LED
后點亮第0,2,4,6個LED
當INT0端口產生中斷時:
將LED燈組一個一個點亮,共循環一次
仿真電路圖:
仿真程序代碼:
- ORG 0000H
- AJMP MAIN
- ORG 0003H
- AJMP INT_0
- ORG 0013H
- AJMP INT_1
- ORG 0030H
- MAIN:
- MOV IE,#85H;
- ;MOV IP,#4H;
- MOV TCON,#5H;
- MOV P2,#10101010B;
- LCALL DELAY;
- MOV P2,#01010101B;
- LCALL DELAY;
- LJMP MAIN;
- ;================================================
- INT_0:
- PUSH ACC;
- PUSH PSW;
- MOV R0,#8;
- MOV A,#00000001B;
- LOOP:
- MOV P2,A;
- LCALL DELAY;
- RL A;
- DJNZ R0,LOOP;
- POP ACC;
- POP PSW;
- RETI;
- ;===============================================
- INT_1:
- PUSH ACC;
- PUSH PSW;
- SETB RS1;
- CHUTAI:
- MOV R2,#4;
- MOV DPTR,#TAB;
- CISHU:
- MOV R0,#0FFH;
- MOV R1,#10;
- DJNZ R2,NEX;
- LJMP FINAL;
- NEX:
- INC R0;
- MOV A,R0;
- MOVC A,@A+DPTR;
- SHOW:
- MOV P0,A;
- LCALL DELAY;
- LCALL DELAY;
- LCALL DELAY;
- DJNZ R1,NEX;
- LJMP CISHU;
- FINAL:
- POP ACC;
- POP PSW;
- RETI;
- ;==============================================
- DELAY:
- MOV R7,#11111111B;延時一段時間?
- D1:
- MOV R6,#11111111B;
- DJNZ R6,$;
- DJNZ R7,D1;?
- RET;子程序返回
- ;=============================================
- TAB:
- DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh;
- END;
復制代碼
|