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

📄 led_red_laser_ray.asm

📁 tp868 Atml89c51(超声波)
💻 ASM
字号:
; THE PRO DESIGNED FOR  LIGHT
; VER1.0
; define by  YETAO
; e-maiL D026530@126.com
; date 2005/4/6

;*************define equ list***********************
;*************THIS  part is define ram*************
        MIN     EQU     60H
        SEC1    EQU     61H
        SEC0    EQU     62H
        MINH    EQU     63H
        MINL    EQU     64H
        SEC1H   EQU     65H
        SEC1L   EQU     66H
        SEC0H   EQU     67H
        SEC0L   EQU     68H
        LED     EQU     69H

        ON      EQU     20H
        ON1     EQU     21H
        KEY     EQU     22H
        KEYBC   EQU     23H
        VT      EQU     24H
        VT1     EQU     25H
        VTS1    EQU     6AH
        VTS0    EQU     6BH
;***********define IO **************************
        LED1    BIT     P3.0
        LED2    BIT     P3.1
        LED3    BIT     P3.2
        LED4    BIT     P3.3
        LED5    BIT     P3.4
        LED6    BIT     P3.5
        LED7    BIT     P3.6
        PUMP    BIT     P3.7
	P1_sel  BIT     P2.7
	P2_SEL  BIT     P2.6
	LASER   BIT     P2.5
	LED_T   BIT     P2.4
	
      
;*************************************************
        ORG     0000H
        LJMP    START
        ORG     0003H
        RETI
        ORG     000BH
        LJMP    INTT0
        ORG     0013H
        RETI
        ORG     001BH
        RETI
        ORG     0023H
        RETI
;;==========================
START:  NOP
        NOP
        NOP
        NOP
        NOP
CLEAR:  MOV     R7,#78H
        MOV     R0,#00H
clr0:   CLR     A
        INC     R0
        MOV     @R0,A
        DJNZ    R7,clr0
        mov     SP,#70H
	mov	tmod,#11h	;11
	mov	tl0,#45h       ;1MS
	mov	th0,#0FCh
        mov     r1,#100         ;100MS
	mov	r2,#05h		;500ms倍率
	mov	r3,#2h          ;1s
        mov     r4,#60		;1s倍率
	mov	a,#0
	mov	p0,#0ffh
	mov	p1,#11100011B
        mov     p2,#0ffh
        mov     p3,#0ffh
	MOV     MIN,#00
        MOV     MINH,#0
        MOV     MINL,#0
        MOV     LED,#11111111b
        MOV     VTS1,MINH
        MOV     VTS0,MINL
        SETB    EA
        SETB    ET0
        SETB    TR0
MAIN:   LCALL   KEYWORK
        NOP
        NOP
        MOV     A,MIN
        CJNE    A,#00,MAIN
        LCALL   BUEELL
        LCALL   DL500MS
        LCALL   BUEELL
        LCALL   DL500MS
        LCALL   BUEELL   ;add by  yt  2005/1/23
        LCALL   DL500MS
        LCALL   BUEELL
        LCALL   DL500MS
        LCALL   BUEELL
        LJMP    START
        NOP
        NOP
        AJMP    START
        NOP
        NOP
        LJMP    START
;*******************END MAIN*************************
;THE SUB PRO IS DISPLAY
display:MOV     DPTR,#TAB
PLAY:   JB      LED6,L1
        SETB    LED6
        CLR     LED7
        MOV     A,LED
        MOV     P0,A
        RET
L1:     JB      LED7,L2
        SETB    LED7
        CLR     LED1
        MOV     A,MINH
        MOVC    A,@A+DPTR
        MOV     P0,A
        RET
L2:     JB      LED1,L3
        SETB    LED1
        CLR     LED2
        MOV     A,MINL
        MOVC    A,@A+DPTR
        JNB     ON1,LOP8
        CLR     ACC.5
LOP8:   MOV     P0,A
        RET
L3:     JB      LED2,L4
        SETB    LED2
        CLR     LED3
        MOV     A,SEC1H
        MOVC    A,@A+DPTR
        CLR     ACC.5
        MOV     P0,A
        RET
L4:     JB      LED3,L5
        SETB    LED3
        CLR     LED4
        MOV     A,SEC1L
        MOVC    A,@A+DPTR
        MOV     P0,A
        RET
L5:     JB      LED4,L6
        SETB    LED4
        CLR     LED5
        MOV     A,SEC0H
        MOVC    A,@A+DPTR
        CLR     ACC.5
        MOV     P0,A
        RET
L6:     JB      LED5,L7
        SETB    LED5
        CLR     LED6
        MOV     A,SEC0L
        MOVC    A,@A+DPTR
        MOV     P0,A
        RET
L7:     LJMP    PLAY
;********************END DISPLAY*********************
        TAB: DB 0C0h,0F9H,0A4H,0F0H,99H,92H,82H,0F8H,80H,90H,0FFH
;共阳段码表          "0""1""2" "3""4""5""6""7" "8""9""不亮"
KEYWORK:MOV     A,#00111110B
        MOV     P1,A
        NOP
        MOV     A,P1
        CJNE    A,#00111110B,K0 
        MOV     A,LED
        CJNE    A,#11111111B,LOP7
        CLR     ON
        CLR     ON1
LOP7:   RET
K0:     LCALL   DL10MS
        CJNE    A,#00111110B,KA    
        RET
KA:     MOV     A,#00111111B   ;P1.1    
        MOV     P1,A
        NOP
        MOV     A,P1 
K1:     CJNE    A,#00111101B,K2
        LCALL   BUEELL
        MOV     A,MIN
        CJNE    A,#60,ADD1MIN
        RET
ADD1MIN:ADD     A,#1
        MOV     MIN,A
        MOV     B,#10
        DIV     AB
        MOV     MINH,A
        MOV     MINL,B
        LCALL   DL500MS
        RET
K2:     CJNE    A,#00111011B,KT
        LCALL   BUEELL
        MOV     A,MIN
        CJNE    A,#0,SUBB1MIN
        RET
SUBB1MIN:SUBB   A,#1
        MOV     MIN,A
        MOV     B,#10
        DIV     AB
        MOV     MINH,A
        MOV     MINL,B
        LCALL   DL500MS
        RET
KT:     MOV     B,A
        MOV     A,MIN
        CJNE    A,#00H,K3
        RET
K3:     MOV     A,B
        CJNE    A,#01110111B,K40;P1.2
        LCALL   BUEELL
	SETB    LASER
        LCALL   LASERS        ;Strenght
        CJNE    A,#60,ADD1SEC1
        RET

K4:     CJNE    A,#01110111B,K5
        LCALL   BUEELL
        MOV     A,SEC1
        CJNE    A,#1,SUBB1SEC1
        RET
SUBB1SEC1:SUBB     A,#1
        MOV     SEC1,A
        MOV     B,#10
        DIV     AB
        MOV     SEC1H,A
        MOV     SEC1L,B
        LCALL   DL500MS
        RET
K5:     CJNE    A,#01101111B,K6
        LCALL   BUEELL
        MOV     A,SEC0
        CJNE    A,#99,ADD1SEC0
        RET
ADD1SEC0:ADD     A,#1
        MOV     SEC0,A
        MOV     B,#10
        DIV     AB
        MOV     SEC0H,A
        MOV     SEC0L,B
        LCALL   DL500MS
        RET
K6:     CJNE    A,#01011111B,KB
        LCALL   BUEELL
        MOV     A,SEC0
        CJNE    A,#1,SUBB1SEC0
        RET
SUBB1SEC0:SUBB     A,#1
        MOV     SEC0,A
        MOV     B,#10
        DIV     AB
        MOV     SEC0H,A
        MOV     SEC0L,B
        LCALL   DL500MS
        RET
KB:     MOV     A,#10111111B
        MOV     P3,A
        NOP
        MOV     A,P3
K7:     CJNE    A,#10111110B,K8
        SETB    ON
        LCALL   BUEELL
        CLR     PUMP
        MOV     A,LED
        CLR     ACC.1
        SETB    ACC.0
        MOV     LED,A
        JB     VT,LOP5
        SETB   VT
        AJMP   LOP6
LOP5:   CLR    VT
LOP6:   JNB     P3.0,$
        RET
K8:     CJNE    A,#10111101B,K9
        LCALL   BUEELL
        SETB    PUMP
        SETB    KVT
        CLR     VT
        MOV     A,LED
        CLR     ACC.0
        SETB    ACC.1
        MOV     LED,A
        JNB     P3.1,$
        RET

K9:     CJNE    A,#10111011B,K10
        SETB    ON
        LCALL   BUEELL
        SETB    US
        MOV     A,LED
        CLR     ACC.6
        SETB    ACC.5
        MOV     LED,A
        JNB     P3.2,$
        RET
K10:    CJNE    A,#10110111B,K11
        LCALL   BUEELL
        CLR     US
        MOV     A,LED
        CLR     ACC.5
        SETB    ACC.6
        MOV     LED,A
        JNB     P3.3,$
        RET
K11:    CJNE    A,#10101111B,K12
        SETB    ON
        LCALL   BUEELL
        SETB    RAY
        MOV     A,LED
        CLR     ACC.3
        SETB    ACC.2
        MOV     LED,A
        JNB     P3.4,$
        RET
K12:    CJNE    A,#10011111B,KOUT
        LCALL   BUEELL
        CLR     RAY
        MOV     A,LED
        CLR     ACC.2
        SETB    ACC.3
        MOV     LED,A
        JNB     P3.5,$
KOUT:   RET
;================================
INTT0:	push	acc
	push	psw
	clr	et0
	clr	tr0
	mov	tl0,#45h
	mov	th0,#0FCh
        LCALL   DISPLAY
        JNB     ON,INTTOUT
	djnz	r1,inttout
	mov	r1,#100
        lcall   vt307
        lcall   vt308
        DJNZ    R2,INTTOUT
        MOV     R2,#5
        CPL     ON1
	djnz	r3,inttout
	mov	r3,#02h
        djnz    r4,inttout
        mov     r4,#60
	lcall	subb1
	mov	a,MIN
	cjne	a,#00h,inttout
        mov     p1,#11100011B
        mov     a,11011010b
        mov     LED,a
        clr     ON
        clr     ON1
INTTOUT:pop	psw
	pop	acc
        setb    tr0
        setb    et0
	reti
;==================================
vt307:  jnb     VT,vt309out
        jnb     VT1,vt307out
        mov     a,VTS1
        cjne    a,#01h,LOP9
        mov     VTS0,SEC0
        clr     VT1
        CLR     KVT
        MOV     A,LED
        SETB    ACC.1
        MOV     LED,A
        ajmp    vt307out
LOP9:   subb    a,#1
        mov     VTS1,a
VT309OUT:setb   KVT
vt307out:       ret
vt308:  jnb     VT,vt308out
        jb      VT1,vt308out
        mov     a,VTS0
        cjne    a,#01h,LOP10
        mov     VTS1,SEC1
        setb    VT1
        SETB    KVT
        MOV     A,LED
        CLR    ACC.1
        MOV     LED,A
        ajmp    vt307out
LOP10:  subb    a,#1
        mov     VTS0,a
vt308out:       ret
subb1:  mov	a,MIN
        CJNE    A,#0,SUBB11
        RET
SUBB11:	subb	a,#01h
        mov     MIN,a
	mov	b,#10
	div	ab
	mov	MINH,a
 	mov	MINL,b
        ret
;===================================
DL10MS: mov	r6,#20
LOP1:	mov	r7,#250
LOP2:	djnz	r7,LOP2
	djnz	r6,LOP1
	ret
DL500MS:mov     r5,#10
LOP3:   lcall   DL10MS
        djnz    r5,LOP3
        ret
;================================
bueell: mov     r5,#0Ah
lop:    clr	p1.7
        lcall   DL10MS
        setb    p1.7
        djnz    r5,lop
        ret
;====================
LASER:
        MOV 	A,MIN
	CJNE    A,#0,LASER1
	RET
LASER1: JB  00H 
        END

⌨️ 快捷键说明

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