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

📄 ldd2.asm

📁 4方向倒车雷达程序,主芯片为PIC16F73A,显示用2051,10米开始报警,显示障碍物距离.
💻 ASM
📖 第 1 页 / 共 2 页
字号:
            BTFSC STATUS,0
            GOTO SUBD1    ;选出小数50H51H
             

   SUB1:    MOVF 52H,0
            SUBWF 54H,0
            BTFSS STATUS,0
            GOTO SUB2    ;选出小数54H55H
            BTFSS STATUS,2
            GOTO SUBD2    ;选出小数52H53H
            MOVF 53H,0
            SUBWF 55H,0
            BTFSC STATUS,0
            GOTO SUBD2   ;选出小数52H53H
            GOTO SUB2   ;选出小数54H55H
   
   SUBD1:   MOVF 50H,0
            SUBWF 54H,0
            BTFSS STATUS,0
            GOTO SUB11     ;选出小数54H55H
            BTFSS STATUS,2
            GOTO SUBD11     ;选出小数50H51H
            MOVF 51H,0
            SUBWF 55H,0
            BTFSC STATUS,0
            GOTO SUBD11   ;选出小数50H51H
            

   SUB11:   MOVF 54H,0
            SUBWF 56H,0
            BTFSS STATUS,0
            GOTO SUB3    ;选出最小数56H57H
            BTFSS STATUS,2
            GOTO SUBD3   ;选出最小数54H55H
            MOVF 55H,0
            SUBWF 57H,0
            BTFSC STATUS,0
            GOTO SUBD3   ;选出最小数54H55H
            GOTO SUB3    ;选出最小数56H57H

  SUBD11:   MOVF 50H,0
            SUBWF 56H,0
            BTFSS STATUS,0
            GOTO SUB3   ;选出最小数56H57H
            BTFSS STATUS,2
            GOTO SUBD311    ;选出最小数50H51H
            MOVF 51H,0
            SUBWF 55H,0
            BTFSC STATUS,0
            GOTO SUBD311   ;选出最小数50H51H
            GOTO SUB3   ;选出最小数56H57H
     

   SUB2:    MOVF 54H,0
            SUBWF 56H,0
            BTFSS STATUS,0
            GOTO SUB3      ;选出最小数56H57H
            BTFSS STATUS,2
            GOTO SUBD3   ;选出最小数54H55H
            MOVF 55H,0
            SUBWF 57H,0
            BTFSC STATUS,0
            GOTO SUBD3   ;选出最小数54H55H
            GOTO SUB3    ;选出最小数56H57H

  
   SUBD2:   MOVF 52H,0
            SUBWF 56H,0
            BTFSS STATUS,0
            GOTO SUB3    ;选出最小数56H57H
            BTFSS STATUS,2
            GOTO SUBD211   ;选出最小数52H53H
            MOVF 53H,0
            SUBWF 57H,0
            BTFSC STATUS,0
            GOTO SUBD211 ;选出最小数52H53H
            GOTO SUB3   ;选出最小数56H57H 

  SUBD211:  MOVF 52H,0
            MOVWF 27H
            MOVF 53H,0
            MOVWF 28H
            MOVLW 03H   
            MOVWF 43H   ;43H存放最小距离通道数
            MOVF 43H,0
            GOTO MMM     

  SUBD311:  MOVF 50H,0
            MOVWF 27H
            MOVF 51H,0
            MOVWF 28H
            MOVLW 00H   
            MOVWF 43H
            MOVF 43H,0   
            GOTO MMM   

   SUB3:    MOVF 56H,0
            MOVWF 27H
            MOVF 57H,0
            MOVWF 28H
            MOVLW 01H    
            MOVWF 43H
            MOVF 43H,0  
            GOTO MMM
     
   SUBD3:   MOVF 54H,0
            MOVWF 27H
            MOVF 55H,0
            MOVWF 28H
            MOVLW 02H    
            MOVWF 43H
            MOVF 43H,0


   MMM:     BCF STATUS,5     ;发送串行数据
        ;    MOVF 45H,0
        ;    MOVLW 00H
            MOVWF TXREG     ;先发送位置信息
            BSF STATUS,5
   MUOE1:   BTFSS TXSTA,1
            GOTO MUOE1
            BCF STATUS,0
            BCF STATUS,5
            RLF 43H,1
            RLF 43H,1
            RLF 43H,1
            RLF 43H,1
            RLF 43H,1
            RLF 43H,0
            MOVWF PORTB
            BSF STATUS,5
            
        ;    LCALL YSZ 

            BCF STATUS,5
            MOVF 50H,0       ;00通道
       ;     MOVLW 1FH
            MOVWF TXREG     ;发送时间数高位
            BSF STATUS,5
   MUOE:    BTFSS TXSTA,1
            GOTO MUOE
            
        ;    LCALL YSZ 
            
            BCF STATUS,5
            MOVF 51H,0
        ;    MOVLW 0FFH
            MOVWF TXREG      ;发送时间数低位
         ;   INCF 45H
            BSF STATUS,5
   SSS:     BTFSS TXSTA,1
            GOTO SSS
            
       ;     LCALL YSZ             

            BCF STATUS,5
            MOVF 56H,0         ;01通道
       ;     MOVLW 1AH
       ;     MOVF 50H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS1:    BTFSS TXSTA,1
            GOTO SSS1
            
        ;    LCALL YSZ 

            BCF STATUS,5
            MOVF 57H,0
       ;     MOVLW 0FDH
       ;     MOVF 51H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS2:    BTFSS TXSTA,1
            GOTO SSS2

            BCF STATUS,5
            
       ;     LCALL YSZ 
            
            MOVF 54H,0        ;02通道
      ;      MOVLW 12H
      ;      MOVF 50H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS3:    BTFSS TXSTA,1
            GOTO SSS3

            BCF STATUS,5
            
      ;      LCALL YSZ 
            
            MOVF 55H,0
      ;      MOVLW 46H
      ;      MOVF 51H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS4:    BTFSS TXSTA,1
            GOTO SSS4

            BCF STATUS,5
            
       ;     LCALL YSZ 
            
            MOVF 52H,0        ;03通道
      ;      MOVLW 02H
      ;      MOVF 50H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS5:    BTFSS TXSTA,1
            GOTO SSS5

            BCF STATUS,5
            
     ;       LCALL YSZ 
            
            MOVF 53H,0
       ;     MOVLW 25H
      ;      MOVF 51H,0

            MOVWF TXREG
            BSF STATUS,5
   SSS6:    BTFSS TXSTA,1
            GOTO SSS6

            BCF STATUS,5
            MOVF 27H,0
            MOVWF 49H
            MOVF 28H,0
            MOVWF 47H

   ;         MOVLW 19H
   ;         MOVWF 3DH
   ;         MOVLW 03H
   ;         MOVWF 2FH

     ;       BTFSC 4FH,6    ;若4个通道都没有回复信号则使4个通道时间数为0FFH
            GOTO TAH
            MOVLW 0FFH
            MOVWF 50H
            MOVWF 51H
            MOVWF 52H
            MOVWF 53H
            MOVWF 54H
            MOVWF 55H
            MOVWF 56H
            MOVWF 57H

            

  TAH:  ;    BCF 4FH,6
            COMF 49H,0    ;判断49H是否为0FFH
            
            BTFSS STATUS,2   
            GOTO GOON
            COMF 47H,0     ;判断47H是否为0FFH
            BTFSC STATUS,2
            GOTO AMP2

  GOON:     BCF STATUS,0
            MOVF 47H,0   ;47H加上44
            ADDLW 2CH
            MOVWF 47H
            BTFSC STATUS,0 ;是否有进位?
            INCF 49H,1   ;有进位则49H加上1
            MOVF 49H,0   ;49H加上1
            ADDLW 00H
            MOVWF 49H


            BCF 4FH,2    ;4FH,2和4FH,3为0则为蜂鸣器断续响
            BCF 4FH,3
            BCF 4FH,7    ;是中间通道则置该标记位

      ;      GOTO FAR1

            MOVLW 01H       ;判断是否中间的两个通道
            SUBWF 43H,0
            BTFSS STATUS,0
            BSF 4FH,7      ;是中间通道则置该标记位
            MOVF 43H,0
            SUBLW 02H
            BTFSS STATUS,0
            BSF 4FH,7        ;是中间通道则置该标记位 

  FAR1:     MOVLW 00H          ;判断49H47H内容是否小于014AH(34CM)
            SUBWF 49H,0
            BTFSC STATUS,0
            GOTO SOUND1       ;去判断是否相等和低位大小判断
            BSF 4FH,2         ;49H47H内容小于014AH则置一直打开标志位 
            BCF 4FH,3
            GOTO JJ5
          
        
    SOUND1: BTFSS STATUS,2
            GOTO AMP           ;去判断是否超过150程序段
            MOVLW 5AH          ;判断47H内容是否小于4AH
            SUBWF 47H,0
            BTFSC STATUS,0
            GOTO AMP           ;去判断是否超过150程序段
            BSF 4FH,2         ;49H47H内容小于014AH则置一直打开标志位
            BCF 4FH,3
            GOTO JJ5
   
  AMP:  ;    BTFSC 4FH,7  ;若该位为低则为两边通道转判断是否大于90CM程序段   
        ;    GOTO NNR1

            MOVF 49H,0      ;判断49H47H内容是否大于1D4CH
            SUBLW 1DH
            BTFSS STATUS,0
            GOTO NNR1          ;49H47H内容大于1D4CH去超过150处理程序段
            BTFSS STATUS,2
            GOTO AMP3
            MOVF 47H,0
            SUBLW 4CH
            BTFSS STATUS,0
            GOTO NNR1        ;49H47H内容大于1D4CH去超过150处理程序段
            GOTO AMP3
                        
  NNR1:     MOVF 49H,0     ;判断49H47H内容是否大于0ED8H(90CM)
            SUBLW 0EH
            BTFSS STATUS,0
            GOTO AMP22
            BTFSS STATUS,2
            GOTO AMP3
            MOVF 47H,0
            SUBLW 0D8H
            BTFSS STATUS,0
            GOTO AMP22
            GOTO AMP3 

  AMP22:    BSF 4FH,5    ;大于90CM标志位
            MOVLW 23H    ;给45H中存放固定频率值
            MOVWF 4AH
            BCF 4FH,2
            BCF 4FH,3
            GOTO JJ5                 

  AMP2:     BSF 4FH,3     ;该位为高则一直关断.
            BCF 4FH,2     ;该位为高则一直打开.
            BCF 4FH,5
            GOTO JJ5

  AMP3:     BCF 4FH,5
            GOTO JJ5

  JJ5:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 0EH
            BTFSC STATUS,0
            GOTO JJ5B
            MOVLW 08H
            MOVWF 4BH
            GOTO KKK2

  JJ5B:     BCF STATUS,0
            MOVF 49H,0
            SUBLW 0CH
            BTFSC STATUS,0
            GOTO JJ5C
            MOVLW 07H
            MOVWF 4BH
            GOTO KKK2

 JJ5C:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 0AH
            BTFSC STATUS,0
            GOTO JJ5D
            MOVLW 06H
            MOVWF 4BH
            GOTO KKK2

 JJ5D:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 08H
            BTFSC STATUS,0
            GOTO JJ5E
            MOVLW 05H
            MOVWF 4BH
            GOTO KKK2

 JJ5E:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 06H
            BTFSC STATUS,0
            GOTO JJ5F
            MOVLW 04H
            MOVWF 4BH
            GOTO KKK2

 JJ5F:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 04H
            BTFSC STATUS,0
            GOTO JJ5G
            MOVLW 03H
            MOVWF 4BH
            GOTO KKK2

 JJ5G:      BCF STATUS,0
            MOVF 49H,0
            SUBLW 02H
            BTFSC STATUS,0
            GOTO JJ5H
            MOVLW 02H
            MOVWF 4BH
            GOTO KKK2

 JJ5H:      MOVLW 01H
            MOVWF 4BH
            GOTO KKK2


  KKK2: 
            BCF STATUS,5
            BCF STATUS,0

  UUU:      BCF STATUS,5
 
            

  CONTT1:  ; MOVLW 0C8H
           ; MOVWF 4DH
            BCF 4FH,0       ;清赋值标志
 

    BACK3:  GOTO KIS2

            BTFSS 4FH,2
            GOTO KIS1
            BCF PORTA,1
            GOTO BACK33

   KIS1:    BTFSS 4FH,3
            GOTO KIS2
            BSF PORTA,1
            GOTO BACK33

   KIS2:   ; DECFSZ 4CH,1
         ;   GOTO BACK33
         ;   MOVLW 0C8H
         ;   MOVWF 4CH
            

   BACK33:  MOVLW 05H
            MOVWF TMR0
            BSF INTCON,5
            BCF INTCON,2
            BCF PIR2,0   ;清0
            BSF PORTB,3 ;试验信号
            RETFIE


            END

⌨️ 快捷键说明

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