汇编语言 51单片机,外部中断控制流水灯?

P1口输出口,接八只发光二极管,使发光二极管循环点亮,延时用定时器T0来实现,加一个外部中断0,接p3.2口使二极管点亮方向变化

       ORG     0000H          ; 试试这个  流水灯的编码随便改

       LJMP    MAIN

       ORG     0003H

       LJMP    LINT0

       ORG     000BH

       LJMP    LT0ZD

       ORG     0030H

MAIN:  MOV     SP, #60H         

       MOV     TMOD, #00H

       MOV     IE, #81H

       MOV     TL0, #(8192-2500)MOD 32

       MOV     TH0, #(8192-2500)/32

       SETB    TR0

       MOV     R5, #20

LOOP:  MOV     R3, #48

       CJNE    R3, #0, $  

       LJMP    LOOP


LINT0: CPL     ET0

       RETI


LT0ZD: PUSH    PSW               ; T0 中断

       PUSH    ACC 

       MOV     TL0, #(8192-2500)MOD 32

       MOV     TH0, #(8192-2500)/32

       DJNZ    R5, LT0Z2

       MOV     R5, #30           ; 可以调整速度

       MOV     A, R3

       LCALL   LSDIN

       MOV     P1, A

       DEC     R3

LT0Z2: POP     ACC 

       POP     PSW

       RETI


LSDIN: MOVC  A,@A+PC

       RET


LSDBM: DB   11111110B,11111101B,11111011B,11110111B  ; 流水灯的编码1

       DB   11101111B,11011111B,10111111B,01111111B

       DB   01111111B,10111111B,11011111B,11101111B

       DB   11110111B,11111011B,11111101B,11111110B

       DB   11111100B,11111001B,11110011B,11100111B  ; 流水灯的编码2

       DB   11001111B,10011111B,00111111B,01111110B

       DB   01111110B,00111111B,10011111B,11001111B

       DB   11100111B,11110011B,11111001B,11111100B

       DB   11111000B,11110001B,11100011B,11000111B  ; 流水灯的编码3

       DB   10001111B,00011111B,00111110B,01111100B

       DB   01111100B,00111110B,00011111B,10001111B

       DB   11000111B,11100011B,11110001B,11111000B

       END 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-24

花样流水灯的玩法,一个51单片机8位端口轮流输出16颗灯珠,

第2个回答  2020-06-22
还需要答案吗?
相似回答