用汇编语言编流水灯,有8个LED灯,LED1~LED8 灯按顺序点亮,每个等亮一秒转到下个灯,一直循环亮

采用外部中断,按下中断按钮灯亮一秒后熄灭。需画出电路图
能不能写上注释啊??????

这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:
ORG 0000H
LJMP MAIN
0RG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000) ;50毫秒定时

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV A,#0FEH
MOV P1,A

MOV R2,#20
SJMP $

T0ISR:
CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

DJNZ R2,T0E ;1秒未到直接退出

MOV R2,#20

RL A

MOV P1,A ;1秒一变的花样流水灯。

T0E:
RETI

END
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-25
ORG 0000H
SJMP MAIN
ORG 0030H
SJMP DELAY
MAIN:MOV P0,#0EEH
CALL DELAY
MOV P0,#0EDH
CALL DELAY
MOV P0,#0EBH
CALL DELAY
MOV P0,#0E7H
CALL DELAY
MOV P0,#0DEH
CALL DELAY
MOV P0,#0DDH
CALL DELAY
MOV P0,#0DBH
CALL DELAY
MOV P0,#0D7H
CALL DELAY
DELAY:MOV R0,#50H
D1:MOV R1,#100H
D2:MOV R2,#100H
DJNZ R1,D2
DJNZ R0,D1
RET
END追问

能不能补上注释啊?采用外部中断怎么没有啊 INT0

追答

ORG 0000H ;复位入口
SJMP MAIN ;转到主程序
ORG 0030H ;主程序入口
SJMP DELAY ;跳到延时程序
MAIN:MOV P0,#0EEH;把#0EEH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0EDH;把#0EDH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0EBH;把#0EBH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0E7H;把#0E7H送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0DEH;把#0DEH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0DDH;把#0DDH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0DBH;把#0DBH送到P0端口
CALL DELAY ;调用延时程序
MOV P0,#0D7H把#0D7H送到P0端口
CALL DELAY 调用延时程序
DELAY:MOV R0,#50H;延时程序,把#50H送进R0
D1:MOV R1,#100H;把#100H送进R1
D2:MOV R2,#100H;把#100H送进R2
DJNZ R1,D2;做R1减一运算,不等于0则跳到D2
DJNZ R0,D1;R0做减一运算,不等于0则跳到D1
RET;子程序返回
END ;程序结束

本回答被提问者采纳
相似回答