📄 ad1.asm
字号:
ORG 05A0H
SE11: MOV SP,#53H
MOV 7EH,#00H
MOV 7DH,#08H
MOV 7CH,#00H
MOV 7BH,#09H
MOV 7AH,#0CH
MOV 79H,#0CH
MOV 20H,#30 ;下限值
MOV 21H,#200 ;上限值
MOV 22H,#00H ;电机控制标志缓存单元
MOV 23H,#55H
START: CALL DIS ;调用显示0808--
MOV A,P3
JB ACC.3,SE11 ;循环检测,为低开始
JB ACC.2,INCONTROL;为高时,进行内置控制,否则进行外部控制
JMP OUTCONTROL
NEXT: MOV A,#00H
MOV DPTR,#0FFE0H
MOVX @DPTR,A
MOVX A,@DPTR ;将AD0809的0通道送给寄存器A
CJNE A,20H,NEXT1 ;分段判断高低限
NEXT1: JC DOWN
CJNE A,21H,NEXT2
NEXT2: JNC LUP
LUP: JMP UP
CALL DISBUFF
CALL DIS
SETB P1.5 ;绿灯亮
jmp START
DIS: PUSH DPH
PUSH DPL
SETB RS1
MOV R0,#7EH
MOV R2,#20H
MOV R3,#00H
MOV DPTR,#LS0
LS2: MOV A,@R0
MOVC A,@A+DPTR
MOV R1,#0DCH
MOVX @R1,A
MOV A,R2
inc R1
MOVX @R1,A
LS1: DJNZ R3,LS1
CLR C
RRC A
MOV R2,A
DEC R0
JNZ LS2
movx @r0,a
dec r0
cpl a
movx @r0,a
CLR RS1
POP DPL
POP DPH
RET
;-------------------------------------
LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H ;0,1,2,3,4,5 ,6
DB 0F8H,80H,90H,88H,83H,0C0H ,0A1H ;7,8,9,A,B ,C ,D
DB 86H,8EH,0FFH,0CH,89H,7FH,0BFH ; E,F, ,P,H,.,-
DB 0E0H,0A1H,0C4H ;U,d,n
;--------------------------------------
DISBUFF:mov b,#100
div ab
mov 7bh,a
mov a,b
mov b,#10
div ab
mov 7ah,a
mov 79h,b
ret
;--------------------------------------
DOWN: MOV A,#00H
MOV DPTR,#0FFE0H
MOVX @DPTR,A
MOV 7EH,#5Dh ;将AD显示前3位设为d--
MOV 7DH,#0Ch
MOV 7CH,#0Ch
CALL DISBUFF
CALL DIS
setb p1.4
setb p1.5
clr p1.6
call sound ;发声
CALL DIS
call dianji ;转动
jmp start
;--------------up
UP: MOV A,#00H
MOV DPTR,#0FFE0H
MOVX @DPTR,A
MOV 7EH,#03h ;将AD显示前3位设为 UP-
MOV 7DH,#0ch
MOV 7CH,#0ch
CALL DISBUFF
CALL DIS
setb p1.5
setb p1.6
clr p1.4
call sound
call DIS
CALL dianji
jmp start
;--------------sound
sound: setb p1.7
call dely
call DIS
clr p1.7
call dely
setb p1.7
call dely
call DIS
clr p1.7
call dely
ret
;--------------dianji
dianji: mov A,22h
jb ACC.0,d1
jb ACC.1,run1
run : mov p1,#0FFH
CALL dely
call DIS
mov p1,#0f7h
call dely
call DIS
mov p1,#0fbh
call dely
call DIS
mov p1,#0fdh
call dely
call DIS
mov p1,#0feh
call dely
run1 : mov p1,#0FFH
CALL dely
call DIS
mov p1,#0feh
call dely
call DIS
mov p1,#0fdh
call dely
call DIS
mov p1,#0fbh
call dely
call DIS
mov p1,#0f7h
call dely
d1 : ret
;---------------dely
dely : mov r0,23h
dely1 : mov r0,23h
dely2 : djnz r0,dely2
djnz r1,
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -