?? ldd2.asm
字號:
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 + -