执行结果: 程序执行后8只LED每隔0.5S亮灭一次,当按下按键P3.2时,产生外部中断,则LED会变为走马灯右移展示,右移16次后返回主程序继续执行程序,LED继续闪烁。

本实验原程序如下: ;********************************************************************** ;* Date : 2004.4.20 ---------- ---------------------------------------* ;* Support Mb: 020-34007281 -mail:c51cn@163.com ------------* ;* Create by :dengdewu http://www.c51.cn 更多例程请登陆网站 - ------* ;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 -- -------------* ;********************************************************************** ORG 0000H ;程序由地址0开始执行 JMP DDW ORG 0003H ;设置外部中断矢量地址 JMP INT ;跳转到中断控制入口处 DDW: MOV SP,#60H MOV TCON,#00000000B MOV IP,#00000001B MOV IE,#10000001B RUN: MOV A,#0 LOOP: MOV P1,A MOV R5,#50 CALL DELAY CPL A JMP LOOP INT: PUSH ACC PUSH PSW CLR RS1 SETB RS0 CLR C MOV A,#11111111B MOV R4,#16 LOOPR: RRC A MOV P1,A MOV R5,#5 CALL DELAY DJNZ R4,LOOPR POP PSW POP ACC RETI DELAY: MOV R6,#50 S1: MOV R7,#100 DJNZ R7,$ DJNZ R6,S1 DJNZ R5,DELAY RET END |