复件 灯.asm

来自「我学单片机89C51时编的大部分程序都在里面」· 汇编 代码 · 共 55 行

ASM
55
字号
        ORG 0000H
        LJMP START
        ORG 001BH
        LJMP DELAY
        ORG 0030H
START:MOV SP,#60H
 MOV A,#00H
MOV 20H,#00
        MOV B,#0AH         ;以下为延时中断10次,为0.5s
        MOV TMOD,#10H      ;定时器1工作于模式1
        MOV TH1,#3CH       ;每次中断50ms
        MOV TL1,#0B0H
        SETB TR1
        SETB ET1
        SETB EA
        MOV R1,#20H
        RR A               ;对灯的操作,右移首位取反
        CPL ACC.7
        MOV P1,A
          CJNE @R1,#01,$
      LOOP:;CLR 20.1H
          RR A               ;对灯的操作,右移首位取反
        CPL ACC.7
        MOV P1,A
        SETB TR1
        CJNE @R1,#01,$
        clr 00h
        ;LCALL DELAY
        JZ ALLON
        LJMP LOOP
ALLON:MOV A,#0FFH        ;全亮
        MOV P1,A
        SETB TR1
        CJNE @R1,#01,$
        ;LCALL DELAY
ALLOFF: MOV A,#00H         ;全灭
        MOV P1,A
        SETB TR1
        
        CJNE @R1,#01,$
       ; LCALL DELAY
        LJMP LOOP
        ;SJMP $
        
                           ;中断服务程序
DELAY:  MOV TH1,#3CH       ;重新装入初值
        MOV TL1,#0B0H
        DJNZ B,LOOP1        ;
        CLR TR1            ;0.5s定时到,停止T1工作
        SETB 00H
LOOP1:  RETI               ;中断返回



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?