⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad1.asm

📁 一个ADC0809的程序,很有用的,不放试一试
💻 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 + -