带按键的单片机汇编流水灯设计

老师要求加一个按键 在外部中断 说这样简单 我一共4种花型 要求按键按一下 花型变一种 还得加防抖延时
请问以下程序怎么改写呀 是加中断子程序吗 帮帮忙了
利用左移与右移指令方法实现的控制流水灯源程序清单

ORG 0000H
START: MOV A, # 0FFH ;左移前使灯都不亮
CLR C
MOV R1, # 02H ;从左向右移动两轮
M1: MOV R2, # 07H ;左移8次
LOOP: RLC A
MOV P2,A
CALL DELAY
DJNZ R2,LOOP
DJNZ R1,M1
MOV R1, # 02H ;从右至左移动两轮
M2: MOV R2, # 07H ;右移8次
LOOP1: RRC A
MOV P2,A
CALL DELAY
DJNZ R2,LOOP1
DJNZ R1,M2
MOV R1,# 02H ;闪烁2次
M3: MOV P2,#0FFH ;全灭
CALL DELAY
MOV P2,# 0FFH
CALL DELAY
MOV P2, #00H ;全亮
CALL DELAY
DJNZ R1,M3
JMP START
能不能详细一下呀

第1个回答  2010-07-02
给你个参考,首先你开中断方式和总中断,而消抖你可采用延时或用定时器(这样老师就可能说你不简单了),当然在此“要求按键按一下 花型变一种 ”可当按健按下时,程序跳转方法,比如LCALL 指令来调用。
第2个回答  2010-07-02
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP EX0INT
ORG 0030H
MAIN: SETB EA
SETB EX0
SETB IT0
ACALL DISP
AJMP MAIN

EX0INT: INC R0
CJNE R0,#5,RTI
MOV R0,#1
RTI: RETI

DISP: 。。。。
LED1: CJNE R0,#1,LED2
AJMP LED10 ;R0=1,转花样1
。。。。

RET
。。。。
END
应用外部中断0,INT0接一按键,按下时中断产生,进入中断子程序 。用R0作按键 标志位,每按一次,R1加1,从1~4 。显示子程序中判断R1等几,而进入第几个花样。本回答被提问者采纳
相似回答