📄 fangqu_v3.lst
字号:
0296 081A 00858 MOVF RCREG,0
0297 1218 00859 BCF RCSTA,CREN
0298 1618 00860 BSF RCSTA,CREN
00861
0299 00B8 00862 MOVWF TEMP
029A 1B39 00863 BTFSC FLAG,RXD_START
029B 2AB9 00864 GOTO RECE_START_PROC
029C 00865 JUDGE_HEAD:
029C 0000 00866 NOP
029D 0000 00867 NOP
029E 1103 00868 BCF STATUS,Z
029F 3CAA 00869 SUBLW 0xAA
02A0 1D03 00870 BTFSS STATUS,Z
02A1 2AA5 00871 GOTO JUDGE_HEAD1 ;Not equal to 0xAA
00872 ;----- Equal to 0xAA
02A2 3001 00873 MOVLW 0x01
02A3 00C0 00874 MOVWF RECE_BYTE
02A4 2B6E 00875 GOTO END_ISR
02A5 00876 JUDGE_HEAD1:
MPASM 5.02 FANGQU_V3.ASM 4-6-2006 10:34:19 PAGE 18
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
02A5 3001 00877 MOVLW 0x01
02A6 1103 00878 BCF STATUS,Z
Message[305]: Using default destination of 1 (file).
02A7 02C0 00879 SUBWF RECE_BYTE
02A8 1D03 00880 BTFSS STATUS,Z
02A9 2AB7 00881 GOTO JUDGE_HEAD2 ;RECE_BYTE is not equal to 1
00882 ;RECE_BYTE is equal to 1
02AA 0838 00883 MOVF TEMP,0
02AB 1103 00884 BCF STATUS,Z
02AC 3C55 00885 SUBLW 0x55
02AD 1D03 00886 BTFSS STATUS,Z
02AE 2AB7 00887 GOTO JUDGE_HEAD2 ; Received data is not equal to 0x55
00888 ; Received data is equal to 0x55
02AF 1739 00889 BSF FLAG,RXD_START ;Set RXD_START flag
02B0 12B9 00890 BCF FLAG,LEN_OK
02B1 3002 00891 MOVLW 0x02
02B2 00C0 00892 MOVWF RECE_BYTE ;RECE_BYTE = 0x02
02B3 30A2 00893 MOVLW 0xA2 ;RECE_LENGTH address
02B4 0084 00894 MOVWF FSR
02B5 01C3 00895 CLRF CHECKSUM
02B6 2B6E 00896 GOTO END_ISR
02B7 00897 JUDGE_HEAD2:
02B7 01C0 00898 CLRF RECE_BYTE
02B8 2B6E 00899 GOTO END_ISR
00900
02B9 00901 RECE_START_PROC:
02B9 0080 00902 MOVWF INDF
02BA 00903 JUDGE_LENGTH:
02BA 1AB9 00904 BTFSC FLAG,LEN_OK
02BB 2AC8 00905 GOTO LENGTH_OK
00906 ;Judge length
02BC 3C40 00907 SUBLW 0x40 ;Max value of RECE_LENGTH is 0x40(64)
02BD 1C03 00908 BTFSS STATUS,C
02BE 2B6A 00909 GOTO LENGTH_ERR
00910
02BF 16B9 00911 BSF FLAG,LEN_OK
02C0 0838 00912 MOVF TEMP,0
02C1 00B0 00913 MOVWF RECE_LENGTH
02C2 3002 00914 MOVLW 0x02
02C3 0730 00915 ADDWF RECE_LENGTH,0
02C4 00AD 00916 MOVWF RECE_LENGTH1
02C5 3003 00917 MOVLW 0x03
02C6 0730 00918 ADDWF RECE_LENGTH,0
02C7 00AE 00919 MOVWF RECE_LENGTH2
00920
02C8 00921 LENGTH_OK:
Message[305]: Using default destination of 1 (file).
02C8 0A84 00922 INCF FSR
02C9 0AC0 00923 INCF RECE_BYTE,1
00924
02CA 00925 SSOS1:
02CA 082D 00926 MOVF RECE_LENGTH1,0
02CB 0240 00927 SUBWF RECE_BYTE,0
MPASM 5.02 FANGQU_V3.ASM 4-6-2006 10:34:19 PAGE 19
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
02CC 1C03 00928 BTFSS STATUS,C
02CD 2AD0 00929 GOTO SSOS2 ;(RECE_BYTE)<(RECE_LENGTH1), c = 0 ,z = 0, checksum
02CE 1D03 00930 BTFSS STATUS,Z ;(RECE_BYTE)=(RECE_LENGTH1), c = 1, z = 1,checksum
02CF 2AD3 00931 GOTO SSOS3 ;(RECE_BYTE)>(RECE_LENGTH1), c = 1, z = 0,not checksum
02D0 00932 SSOS2:
02D0 0838 00933 MOVF TEMP,0
02D1 06C3 00934 XORWF CHECKSUM,1 ;Checksum
02D2 2B6E 00935 GOTO END_ISR
02D3 00936 SSOS3:
02D3 082E 00937 MOVF RECE_LENGTH2,0
02D4 0240 00938 SUBWF RECE_BYTE,0
02D5 1D03 00939 BTFSS STATUS,Z
02D6 2ADA 00940 GOTO END_STA_PROC
02D7 0838 00941 MOVF TEMP,0
02D8 00C1 00942 MOVWF REC_CRC
02D9 2B6E 00943 GOTO END_ISR
02DA 00944 END_STA_PROC:
02DA 1339 00945 BCF FLAG,RXD_START
02DB 12B9 00946 BCF FLAG,LEN_OK
02DC 01C0 00947 CLRF RECE_BYTE
02DD 00948 RECE_OVER_PROC:
00949 ;Judge checksum
02DD 0843 00950 MOVF CHECKSUM,0
02DE 0241 00951 SUBWF REC_CRC,0
02DF 1D03 00952 BTFSS STATUS,Z
02E0 2AE9 00953 GOTO RECE_ERROR
02E1 3010 00954 MOVLW 0x10
02E2 0233 00955 SUBWF RECE_COMD,0
02E3 1D03 00956 BTFSS STATUS,Z
02E4 2AE9 00957 GOTO RECE_ERROR
02E5 3006 00958 MOVLW 0x06
02E6 00C2 00959 MOVWF ACK_DISPLAY
02E7 17B9 00960 BSF FLAG,MSG_SEND ;MSG_SEND = 1,to send messages to dsp
02E8 2AEC 00961 GOTO SEND_ACK
02E9 00962 RECE_ERROR:
02E9 3016 00963 MOVLW 0x16
02EA 00C2 00964 MOVWF ACK_DISPLAY
02EB 13B9 00965 BCF FLAG,MSG_SEND ;MSG_SEND = 0,not to send messages to dsp
00966
00967 ;-----Send ACK
02EC 00968 SEND_ACK:
02EC 1687 00969 BSF PORTC,5 ;Enable send
02ED 2276 00970 CALL DELAY1
02EE 0000 00971 NOP
02EF 0000 00972 NOP
02F0 30AA 00973 MOVLW 0xAA
02F1 0099 00974 MOVWF TXREG
02F2 0000 00975 NOP
02F3 0000 00976 NOP
02F4 1683 00977 BSF STATUS,RP0 ;Bank1
02F5 00978 NEXT1:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
02F5 1C98 00979 BTFSS TXSTA,TRMT
MPASM 5.02 FANGQU_V3.ASM 4-6-2006 10:34:19 PAGE 20
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
02F6 2AF5 00980 GOTO NEXT1
02F7 0000 00981 NOP
02F8 0000 00982 NOP
02F9 1283 00983 BCF STATUS,RP0 ;Bank 0
02FA 2276 00984 CALL DELAY1
02FB 3055 00985 MOVLW 0x55
02FC 0099 00986 MOVWF TXREG
02FD 0000 00987 NOP
02FE 0000 00988 NOP
02FF 1683 00989 BSF STATUS,RP0 ;Bank1
0300 00990 NEXT2:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0300 1C98 00991 BTFSS TXSTA,TRMT
0301 2B00 00992 GOTO NEXT2
0302 0000 00993 NOP
0303 0000 00994 NOP
0304 1283 00995 BCF STATUS,RP0 ;Bank 0
0305 2276 00996 CALL DELAY1
0306 3006 00997 MOVLW 0x06
0307 0099 00998 MOVWF TXREG
0308 00C3 00999 MOVWF CHECKSUM
0309 0000 01000 NOP
030A 0000 01001 NOP
030B 1683 01002 BSF STATUS,RP0 ;Bank 1
030C 01003 NEXT3:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
030C 1C98 01004 BTFSS TXSTA,TRMT
030D 2B0C 01005 GOTO NEXT3
030E 0000 01006 NOP
030F 0000 01007 NOP
0310 1283 01008 BCF STATUS,RP0 ;Bank 0
0311 2276 01009 CALL DELAY1
0312 30A1 01010 MOVLW 0xA1
0313 0084 01011 MOVWF FSR
0314 0800 01012 MOVF INDF,0
0315 0099 01013 MOVWF TXREG
0316 06C3 01014 XORWF CHECKSUM,1 ;Checksum
0317 0000 01015 NOP
0318 0000 01016 NOP
0319 1683 01017 BSF STATUS,RP0 ;Bank 1
031A 01018 NEXT4:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
031A 1C98 01019 BTFSS TXSTA,TRMT
031B 2B1A 01020 GOTO NEXT4
031C 0000 01021 NOP
031D 0000 01022 NOP
031E 1283 01023 BCF STATUS,RP0 ;Bank 0
031F 2276 01024 CALL DELAY1
0320 30A2 01025 MOVLW 0xA2
0321 0084 01026 MOVWF FSR
0322 0800 01027 MOVF INDF,0
0323 0099 01028 MOVWF TXREG
0324 06C3 01029 XORWF CHECKSUM,1 ;Checksum
MPASM 5.02 FANGQU_V3.ASM 4-6-2006 10:34:19 PAGE 21
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0325 0000 01030 NOP
0326 0000 01031 NOP
0327 1683 01032 BSF STATUS,RP0 ;Bank 1
0328 01033 NEXT5:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0328 1C98 01034 BTFSS TXSTA,TRMT
0329 2B28 01035 GOTO NEXT5
032A 0000 01036 NOP
032B 0000 01037 NOP
032C 1283 01038 BCF STATUS,RP0 ;Bank 0
032D 2276 01039 CALL DELAY1
032E 3020 01040 MOVLW 0x20
032F 0099 01041 MOVWF TXREG
0330 06C3 01042 XORWF CHECKSUM,1 ;Checksum
0331 0000 01043 NOP
0332 0000 01044 NOP
0333 1683 01045 BSF STATUS,RP0 ;Bank 1
0334 01046 NEXT6:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0334 1C98 01047 BTFSS TXSTA,TRMT
0335 2B34 01048 GOTO NEXT6
0336 0000 01049 NOP
0337 0000 01050 NOP
0338 1283 01051 BCF STATUS,RP0 ;Bank 0
0339 2276 01052 CALL DELAY1
033A 3010 01053 MOVLW 0x10
033B 0099 01054 MOVWF TXREG
033C 06C3 01055 XORWF CHECKSUM,1 ;Checksum
033D 0000 01056 NOP
033E 0000 01057 NOP
033F 1683 01058 BSF STATUS,RP0 ;Bank 1
0340 01059 NEXT7:
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0340 1C98 01060 BTFSS TXSTA,TRMT
0341 2B40 01061 GOTO NEXT7
0342 0000 01062 NOP
0343 0000 01063 NOP
0344 1283 01064 BCF STATUS,RP0 ;Bank 0
0345 2276 01065 CALL DELAY1
0346 0842 01066 MOVF ACK_DISPLAY,0
0347 0099 01067 MOVWF TXREG
0348 06C3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -