开关控制单灯亮灭
ORG 0000H
LJMP START;指定下一个的起始地址
START:
CLR P1.0
LCALL DELAY
SETB P1.0
LCALL DELAY
AJMP START
DELAY: MOV R7,#250
D1: MOV R6,#250
D2: DJNZ R6,D2
DJNZ R7,D1
RET
END
ORG 0000H
CLR P1.0
AJMP START
START:
SETB P0.0
JB P0.0,LIG;为0跳转
SETB P1.0
SJMP START
LIG:
CLR P1.0
SJMP START
END
![image-20220512180637801]()
开关控制多灯亮灭
ORG 0000H
CLR P1.0
CLR P1.1
CLR P1.2
AJMP START
START:SETB P0.0
SETB P0.1
SETB P0.2
JB P0.0,LIG0
SETB P1.0
SJMP NEXT1
LIG0:CLR P1.0
NEXT1:JB P0.1,LIG1
SETB P1.1
SJMP NEXT2
LIG1:CLR P1.1
NEXT2:JB P0.2,LIG2
SETB P1.2
SJMP NEXT3
LIG2:CLR P1.2
NEXT3:JB P0.3,LIG3
SETB P1.3
SJMP NEXT4
LIG3:CLR P1.3
NEXT4:JB P0.4,LIG4
SETB P1.4
AJMP START
LIG4:CLR P1.4
SJMP START
END
![image-20220512182725512]()
延时程序
MOV Rn,#Data ;1个周期
DJNZ Rn,Rel ;2
RET ;2
NOP ;1
ACALL Addr11 ;2
LCALL Addr16 ;2
ADD A,Ri ;1
INC DPTR ;2
DEL2:MOV R0,#X ;1周期
DEL1:DJNZ R0,DEL1 ;2周期,不为0转移
RET ;2周期
;(2X+3)T
;双重循环
DEL3:MOV R1,#Y;1
DEL2:MOV R0,#X;1
DEL1:DJNZ R0,DEL1;2
DJNZ R1,DEL2;2
RET;2
;设计一个延时100微秒的程序,12MHZ
MOV R0,#049 ;1
Loop:DJNZ R0,loop ;2
RET ;2
;--------------------------
MOV R0,#048
NOP
LOOP:DJNZ R0,LOOP
RET
多开关控制多灯
ORG 0000H
AJMP START
START:
MOV P0,#0FFH
MOV A,P0
SWAP A;将低四位和高四位互换
ANL A,#0F0H;保留高四位输出
MOV P0,A
LCALL DELAY
SJMP START
DELAY:
MOV R6,#20
DL2: MOV R7,#7DH
DL1:NOP
NOP
DJNZ R7,DL1
DJNZ R6,DL2
RET
END
![image-20220513164912605]()
流水灯,查表
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV R0,#0FFH;R0为-1
MOV R2,#16
MOV DPTR,#TAB
LOOP:
INC R0
MOV A,R0
MOVC A,@A+DPTR
SHOW:
MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R2,LOOP;自减不为0跳转
AJMP MAIN
DELAY:
MOV R6,#20
DL2: MOV R7,#500
DL1:NOP
NOP
DJNZ R7,DL1
DJNZ R6,DL2
RET
TAB:
DB 11111110B
DB 11111100B
DB 11111000B
DB 11110000B
DB 11100000B
DB 11000000B
DB 10000000B
DB 00000000B
DB 00000001B
DB 00000011B
DB 00000111B
DB 00001111B
DB 00011111B
DB 00111111B
DB 01111111B
DB 11111111B
END
![image-20220513172652683]()
流水灯2,按键控制
ORG 0000H
AJMP START
ORG 0030H
START:
SETB P2.0
MAIN:
MOV R0,#0FFH
MOV R2,#16
MOV DPTR,#TAB
LOOP:
INC R0
MOV A,R0
MOVC A,@A+DPTR
SHOW:
JNB P2.0,INCR;为0跳转,JB为1跳转
JMP SHOW
INCR:
JNB P2.0,INCR
MOV P0,A
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R2,LOOP
AJMP MAIN
DELAY:
MOV R6,#255
D2: MOV R7,#255
DJNZ R7,$
DJNZ R6,D2
RET
TAB:
DB 11111110B
DB 11111100B
DB 11111000B
DB 11110000B
DB 11100000B
DB 11000000B
DB 10000000B
DB 00000000B
DB 00000001B
DB 00000011B
DB 00000111B
DB 00001111B
DB 00011111B
DB 00111111B
DB 01111111B
DB 11111111B
END
![image-20220513181246072]()
霓虹灯