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

📄 ldxs.asm

📁 4方向倒车雷达程序,主芯片为PIC16F73A,显示用2051,10米开始报警,显示障碍物距离.
💻 ASM
📖 第 1 页 / 共 2 页
字号:

   ; NOW USING


        ORG 0000H
        AJMP MAIN

        ORG 000BH
        LJMP TIMER


        ORG 0050H
 MAIN:  MOV SP,#60H
        MOV TMOD,#21H
        SETB ET0
        MOV TH0,#0FAH
        MOV TL0,#0AAH
        MOV TH1,#0EAH        ;设置串行波特率为1200
        MOV TL1,#0EAH
        MOV 7EH,#10
        MOV 7FH,#10
        CLR ES
        SETB EA
        SETB TR0
        MOV P1,#0FFH
        MOV P3,#0FFH
        CLR P3.3
        MOV 30H,#0        ;高位显示缓冲
        MOV 31H,#0        ;低位显示缓冲
        MOV 32H,#0FFH
        MOV 5DH,#10
        CLR 00H          ; 0通道小于34CM标志
        CLR 01H          ; 0通道大于150CM
        CLR 02H          ; 小数点开关
        CLR 03H          ; 无效数标志
        CLR 04H          ; 0通道大于90CM标志
        CLR 05H          ; 1通道小于34CM标志
        CLR 06H          ; 1通道大于150CM
        CLR 07H          ; 1通道大于90CM标志
        CLR 08H          ; 2通道小于34CM标志
        CLR 09H          ; 2通道大于150CM
        CLR 0AH          ; 2通道大于90CM标志
        CLR 0BH          ; 3通道小于34CM标志
        CLR 0CH          ; 3通道大于150CM
        CLR 0DH          ; 3通道大于90CM标志
        CLR 0EH
        CLR 0FH

        MOV 30H,#11         ;开机提示显示
        MOV 31H,#12
        MOV 32H,#0
        MOV 33H,#50
 WARN:  LCALL YSZ1
        DJNZ 33H,WARN

        MOV PCON,#00H     ;设置串行通信
        MOV SCON,#50H
        SETB TR1
    ;    SJMP SY
    
  LOOP: SETB P3.5
        MOV 32H,5CH

  ;      SJMP SY

        JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV 52H,A       ;接收位置信息
        NOP
      ;  CLR P3.5
   ;     MOV 40H,#0
    ;    SJMP MULAB
        JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV 41H,A       ;接收0通道数码显示低位
        NOP
        JNB RI,$
        CLR RI
        MOV A,SBUF      ;接收0通道数码显示高位
        MOV 42H,A
        NOP

        JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV 43H,A       ;接收1通道数码显示低位
        NOP
        JNB RI,$
        CLR RI
        MOV A,SBUF       ;接收1通道数码显示低位
        MOV 44H,A
        NOP

        JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV 45H,A         ;接收2通道数码显示低位
        NOP
        JNB RI,$
        CLR RI
        MOV A,SBUF        ;接收2通道数码显示低位
        MOV 46H,A
        NOP

        JNB RI,$
        CLR RI
        MOV A,SBUF
        MOV 47H,A         ;接收3通道数码显示低位
        NOP
        JNB RI,$
        CLR RI
        MOV A,SBUF        ;接收3通道数码显示低位
        MOV 48H,A
        NOP

        CLR P3.5

  ;-------数据判断---------------

 ; SY:  MOV 52H,#00H
 ;      MOV 41H,#0BH
 ;      MOV 42H,#0FFH
 ;      MOV 43H,#1FH
 ;      MOV 44H,#0FEH
 ;      MOV 45H,#1FH
 ;      MOV 46H,#0FEH
 ;      MOV 47H,#1FH
 ;      MOV 48H,#0FFH



        MOV 20H,#0
        MOV 5CH,#0FFH      ;5CH暂存灯的颜色

        CLR C              ;判断0通道是否超过150CM
        MOV A,41H
        SUBB A,#1AH
        JC COMP0
        JNZ CCU0          ;判断是否相等
        CLR C             ;43H等于81,则判断44H是否大于90
        MOV A,42H
        SUBB A,#0FEH
        JC COMP0          ;若44H大于或等于90则超过150CM,若小于90则小于150CM


 CCU0:  SETB 01H         ;0通道超过150CM
        CLR 00H
        CLR 04H
        SJMP TD1

 COMP0: MOV A,41H       ;0通道不超过150CM,则判断是否超过90CM
        CLR C
        SUBB A,#0DH
        JC COMP02
        JNZ CCU02
        CLR C
        MOV A,42H
        SUBB A,#1AH
        JC COMP02          ;若44H大于或等于46则超过90CM,若小于80则小于90CM

 CCU02:  SETB 04H
        CLR 00H
        CLR 01H
        SJMP TD1

 COMP02: MOV A,#00H       ;0通道不超过90CM则判断是否小于34CM
        CLR C
        SUBB A,41H
        JC COMP03
        JNZ CCU03
        CLR C
        MOV A,#27H
        SUBB A,42H
        JC COMP03

 CCU03:  SETB 00H
        CLR 01H
        CLR 04H
        SJMP TD1

 COMP03: CLR 00H          ;0通道在34CM至90CM之间
        CLR 01H
        CLR 04H

 TD1:   CLR C              ;判断1通道是否超过150CM
        MOV A,43H
        SUBB A,#1AH
        JC COMP1
        JNZ CCU1          ;判断是否相等
        CLR C             ;43H等于66,则判断44H是否大于69
        MOV A,44H
        SUBB A,#0FEH
        JC COMP1          ;若44H大于或等于69则超过150CM,若小于69则小于150CM


 CCU1:  SETB 06H         ;1通道超过150CM
        CLR 05H
        CLR 07H
        SJMP TD2

 COMP1: MOV A,43H       ;1通道不超过150CM,则判断是否超过90CM
        CLR C
        SUBB A,#0DH
        JC COMP2
        JNZ CCU2
        CLR C
        MOV A,44H
        SUBB A,#1AH
        JC COMP2

 CCU2:  SETB 07H
        CLR 05H
        CLR 06H
        SJMP TD2

 COMP2: MOV A,#00H       ;1通道不超过90CM则判断是否小于34CM
        CLR C
        SUBB A,43H
        JC COMP3
        JNZ CCU3
        CLR C
        MOV A,#27H
        SUBB A,44H
        JC COMP3

 CCU3:  SETB 05H
        CLR 06H
        CLR 07H
        SJMP TD2

 COMP3: CLR 05H        ;1通道在34CM至90CM之间
        CLR 06H
        CLR 07H

 TD2:   CLR C              ;判断2通道是否超过150CM
        MOV A,45H
        SUBB A,#1AH
        JC COMP1A
        JNZ CCU1A          ;判断是否相等
        CLR C             ;45H等于66,则判断46H是否大于69
        MOV A,46H
        SUBB A,#0FEH
        JC COMP1A          ;若46H大于或等于69则超过150CM,若小于69则小于150CM


 CCU1A:  SETB 09H         ;2通道超过150CM
        CLR 08H
        CLR 0AH
        SJMP TD3

 COMP1A: MOV A,45H       ;2通道不超过150CM,则判断是否超过90CM
        CLR C
        SUBB A,#0DH
        JC COMP2A
        JNZ CCU2A
        CLR C
        MOV A,46H
        SUBB A,#1AH
        JC COMP2A

 CCU2A:  SETB 0AH
        CLR 08H
        CLR 09H
        SJMP TD3

 COMP2A: MOV A,#00H       ;2通道不超过90CM则判断是否小于34CM
        CLR C
        SUBB A,45H
        JC COMP3A
        JNZ CCU3A
        CLR C
        MOV A,#27H
        SUBB A,46H
        JC COMP3A

 CCU3A:  SETB 08H
        CLR 09H
        CLR 0AH
        SJMP TD3

 COMP3A: CLR 08H              ;2通道在34CM至90CM之间
        CLR 09H
        CLR 0AH

 TD3:   CLR C              ;判断3通道是否超过150CM
        MOV A,47H
        SUBB A,#1AH
        JC COMP1B
        JNZ CCU1B          ;判断是否相等
        CLR C             ;47H等于66,则判断48H是否大于69
        MOV A,48H
        SUBB A,#0FEH
        JC COMP1B          ;若48H大于或等于69则超过150CM,若小于69则小于150CM


 CCU1B:  SETB 0CH         ;3通道超过150CM
        CLR 0BH
        CLR 0DH
        SJMP TD4

 COMP1B: MOV A,47H       ;3通道不超过150CM,则判断是否超过90CM
        CLR C
        SUBB A,#0DH
        JC COMP2B
        JNZ CCU2B
        CLR C
        MOV A,48H
        SUBB A,#1AH
        JC COMP2B

 CCU2B:  SETB 0DH
        CLR 0BH
        CLR 0CH
        SJMP TD4

 COMP2B: MOV A,#00H       ;3通道不超过90CM则判断是否小于34CM
        CLR C
        SUBB A,47H
        JC COMP3B
        JNZ CCU3B
        CLR C
        MOV A,#27H
        SUBB A,48H
        JC COMP3B

 CCU3B:  SETB 0BH
        CLR 0CH
        CLR 0DH
        SJMP TD4

 COMP3B: CLR 0BH
        CLR 0CH
        CLR 0DH

  TD4:  LJMP CONA1

MULAB:  MOV A,41H         ;判断是否为无效数据
        CPL A
        JNZ CONA1
        MOV A,42H
        CPL A
        JNZ CONA1
        LCALL YSZ1
        DJNZ 5DH,LOOP1
        MOV 5DH,#8
        SJMP LOOP2
LOOP1:  LJMP LOOP

LOOP2:  MOV A,43H         ;判断是否为无效数据
        CPL A
        JNZ CONA1
        MOV A,44H
        CPL A
        JNZ CONA1
        LCALL YSZ1
        DJNZ 5DH,LOOP1A
        MOV 5DH,#8
        SJMP LOOP3
LOOP1A: LJMP LOOP

LOOP3:  MOV A,45H         ;判断是否为无效数据
        CPL A
        JNZ CONA1
        MOV A,46H
        CPL A
        JNZ CONA1
        LCALL YSZ1
        DJNZ 5DH,LOOP1B
        MOV 5DH,#8
        SJMP LOOP4
LOOP1B: LJMP LOOP

LOOP4:  MOV A,47H         ;判断是否为无效数据
        CPL A
        JNZ CONA1
        MOV A,48H
        CPL A
        JNZ CONA1
        LCALL YSZ1
        DJNZ 5DH,LOOP1C
        MOV 5DH,#8
        SJMP LOOP5
LOOP1C: LJMP LOOP

LOOP5:  MOV 30H,#0AH
        MOV 31H,#0AH
        CLR 00H
        CLR 01H
        CLR 02H
        SETB 03H

        LJMP XSA2

CONA1:  MOV A,52H    ;距离换算
        CLR C
        RLC A
        ADD A,#41H
        MOV R0,A
        CLR 03H
        MOV R3,#0
        MOV A,@R0
        MOV R4,A
        INC R0
        MOV A,@R0
        MOV R5,A

        MOV R2,#0
        MOV R6,#0
        MOV R7,#39
        LCALL D457

        MOV A,R3          ;误差修正
        ADD A,#15
        MOV R3,A

        CLR C             ;是否超过70?
        MOV A,R3
        MOV 7BH,A
        SUBB A,#70
        JC RUB1           ;是否超过70?
        MOV R5,A          ;大于70需除以3
        MOV R4,#0

⌨️ 快捷键说明

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