用PROTEUS设计、仿真89C51单片机的外部中断功能。在主程序中通过P1口在数码管循环显示十六进制数0~F(两个数字显示之间的时间间隔为0.5s,由延时程序实现);外部中断通过INT1输入,由按键输入,下降沿有效,普通优先级,在中断服务程序中在P2口实现流水灯功能(两个灯点亮之间的时间间隔为0.5s,由延时程序实现),从上到下显示一遍后结束,回到主程序。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
包含仿真文件及源程序 - ORG 0000H
- AJMP START
- ORG 0013H
- AJMP INTX0
- ORG 0030H
- START: MOV P3,#0FFH
- MOV SP,#6FH
- SETB IT1
- SETB EA
- SETB EX1
- CLR PX1
- DISP0: MOV R1,#16
- MOV DPTR,#TABLE
- MOV R2,#0
- NEXT: MOV A,R2
- MOVC A,@A+DPTR
- MOV P1,A
- ACALL DELAY
- INC R2
- DJNZ R1,NEXT
- INTX0: PUSH PSW
- PUSH ACC
- SETB RS1
- MOV R1,#8
- MOV A,#0FEH
- DII0: MOV P2,A
- ACALL DELAY
- RL A
- DJNZ R1,DII0
- MOV P2,#0FFH
- POP ACC
- POP PSW
- RETI
- DELAY: PUSH PSW
- SETB RS0
- MOV R7,#10
- DEL1: MOV R6,#50
- DEL2: MOV R5,#250
- DEL3: NOP
- NOP
- DJNZ R5,DEL3
- DJNZ R6,DEL2
- DJNZ R7,DEL1
- POP PSW
- RET
- TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,73H,3EH,76H,38H,40H,6EH,0FFH,00H
- END
复制代码
全部资料51hei下载地址:
text.zip
(35.04 KB, 下载次数: 15)
|