nonss - copy.asm

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

ASM
49
字号
        ORG 0000H
        LJMP START
        ORG 001BH          ;T1的中断入口地址
        LJMP DELAY
        ORG 0030H
START:  MOV A,#00H
        MOV B,#0AH         ;循环次数                       
        MOV R1,#01H
        MOV R2,#01H
        MOV R3,#01H
        MOV R4,#01H
        MOV TMOD,#10H      ;定时器1工作于模式1
        MOV TH1,#3CH       ;每次中断50ms
        MOV TL1,#0B0H
        SETB TR1           ;启动定时器1
        SETB ET1           ;允许T1中断
        SETB EA            ;允许CPU中断
        MOV P1,A           ;输出,对灯初始化
        SJMP $             ;等待中断,执行DELAY里的语句

DELAY:  MOV TH1,#3CH       ;重新装入初值  ;中断服务程序
        MOV TL1,#0B0H
        DJNZ B,LOOP1       ;中断10次,为0.5s
        MOV B,#0AH         ;重设B的值
        CJNE R1,#00H,S2
        CJNE R2,#00H,S3
        CJNE R3,#00H,S4
        CJNE R4,#00H,S1

s1:     RR A               ;对灯的操作,右移首位取反
        CPL ACC.7
        MOV P1,A
        MOV R1,#00H        
        LJMP LOOP
S2:     MOV P1,#00H
        MOV R2,#00H
        SJMP LOOP
S3:     MOV P1,#0FFH
        MOV R3,#00H
        SJMP LOOP
S4:     MOV P1,#00H
        MOV R4,#00H
        SJMP LOOP
LOOP:   RETI               ;中断返回,到“SJMP $”




⌨️ 快捷键说明

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