lesson3.asm

来自「这里提供了一些单片机的实验方面的小程序」· 汇编 代码 · 共 40 行

ASM
40
字号
CSEG AT 0000H
        LJMP START
CSEG AT 4100H
START:  SETB   P1.0
        SETB   P1.1       ;用于输入时先置位口内锁存器
        MOV    A,P1
        ANL    A,#03H     ;从P1口读入开关状态,取低两位
        MOV    DPTR,#TAB  ;转移表首地址送DPTR
        MOVC   A,@A+DPTR
        JMP    @A+DPTR
TAB:    DB     PRG0-TAB
        DB     PRG1-TAB
        DB     PRG2-TAB
        DB     PRG3-TAB
PRG0:   MOV    P1,#0FFH   ;向P1口输出#0FFH,发光二极管全灭 此时K1=0,K2=0
        JMP    START
PRG1:   MOV    P1,#0F3H   ;只点亮L5、L6,表示左转弯
        ACALL  DELAY      ;此时K1=1,K2=0
	MOV    P1,#0FFH	  ;再熄灭0.5秒
        ACALL  DELAY      ;延时0.5秒
        JMP    START
PRG2:   MOV    P1,#0CFH   ;只点亮L7、L8,表示右转弯
        ACALL  DELAY      ;此时K1=0,K2=1
        MOV    P1,#0FFH   ;再熄灭0.5秒
        ACALL  DELAY
        JMP    START
PRG3:   MOV    P1,#00H    ;发光二极管全亮,此时K1=1,K2=1
	JMP    START
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:  MOV    R1,#5      ;延时0.5秒
DEL1:   MOV    R2,#200
DEL2:   MOV    R3,#126
DEL3:   DJNZ   R3,DEL3
        DJNZ   R2,DEL2
        DJNZ   R1,DEL1
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
END

⌨️ 快捷键说明

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