📄 rke_tianqiu_630 over.lst
字号:
00037 ;else clrf Preamble_Counter
0060 3003 00038 movlw d'3'
0061 023F 00039 subwf Preamble_High_Counter,W
0062 1C03 00040 skpc
0063 2887 00041 goto Preamble_Counter_Clr
00042
0064 3009 00043 movlw d'9'
0065 023F 00044 subwf Preamble_High_Counter,W
0066 1803 00045 skpnc
0067 2887 00046 goto Preamble_Counter_Clr
00047
0068 3019 00048 movlw d'25'
0069 023E 00049 subwf Preamble_Low_Counter,W
006A 1803 00050 skpnc
006B 2876 00051 goto Preamble_Last_Get
00052
006C 3003 00053 movlw d'3'
006D 023E 00054 subwf Preamble_Low_Counter,W
006E 1C03 00055 skpc
006F 2887 00056 goto Preamble_Counter_Clr
00057
0070 3009 00058 movlw d'9'
0071 023E 00059 subwf Preamble_Low_Counter,W
0072 1803 00060 skpnc
0073 2887 00061 goto Preamble_Counter_Clr
00062
0074 00063 Preamble_Get:
0074 0AC0 00064 incf Preamble_Counter,F
0075 2888 00065 goto Preamble_Clr
00066
0076 00067 Preamble_Last_Get:
0076 3009 00068 movlw d'9'
0077 0240 00069 subwf Preamble_Counter,W
0078 1C03 00070 skpc ;Preamble_Count >= 10, then begin to get frame
0079 2887 00071 goto Preamble_Counter_Clr
00072
007A 3041 00073 movlw d'65'
007B 00C1 00074 movwf Frame_Bit_Counter
00075
007C 01C0 00076 clrf Preamble_Counter
00077
007D 17BD 00078 bsf RF_FRAME_RECIEVE
00079
007E 01BC 00080 clrf Frame_Buff9
007F 01BB 00081 clrf Frame_Buff8
0080 01BA 00082 clrf Frame_Buff7
0081 01B9 00083 clrf Frame_Buff6
0082 01B8 00084 clrf Frame_Buff5
0083 01B7 00085 clrf Frame_Buff4
MPASM 03.80 Released RKE_TIANQIU_630.ASM 2-7-2005 14:54:21 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0084 01B6 00086 clrf Frame_Buff3
0085 01B5 00087 clrf Frame_Buff2
0086 01B4 00088 clrf Frame_Buff1
00089
0087 00090 Preamble_Counter_Clr:
0087 01C0 00091 clrf Preamble_Counter
0088 00092 Preamble_Clr:
0088 01BF 00093 clrf Preamble_High_Counter
0089 01BE 00094 clrf Preamble_Low_Counter
008A 00095 Recieve_High_Jump:
008A 0ABF 00096 incf Preamble_High_Counter,F
008B 28C3 00097 goto Interrupt_Over
00098
00099 ;==========================================================
00100
008C 00101 Get_Frame_Begin:
008C 1805 00102 btfsc RECIEVE_PORT
008D 2891 00103 goto Get_Frame_Port_High
00104
008E 00105 Get_Frame_Port_Low:
008E 0ABE 00106 incf Preamble_Low_Counter,F
008F 16BD 00107 bsf PASS_LOW
0090 28B2 00108 goto Get_Frame_Over
00109
0091 00110 Get_Frame_Port_High:
0091 1EBD 00111 btfss PASS_LOW
0092 28B0 00112 goto Get_Frame_High_Jump
00113 ;Begin judge time
0093 083F 00114 movf Preamble_High_Counter,W
0094 07BE 00115 addwf Preamble_Low_Counter,F ;Low as total
00116
0095 300C 00117 movlw d'12' ;Total 9-15 *100us, 12 is best
0096 023E 00118 subwf Preamble_Low_Counter,W
0097 1C03 00119 skpc
0098 28B2 00120 goto Get_Frame_Over ;If error, then miss a High
00121
0099 3016 00122 movlw d'22'
009A 023E 00123 subwf Preamble_Low_Counter,W
009B 1803 00124 skpnc
009C 28B2 00125 goto Get_Frame_Over
00126
009D 12BD 00127 bcf PASS_LOW ;Here clr this flag, not in error condition
00128
009E 13BC 00129 bcf Frame_Buff9,7
009F 3008 00130 movlw d'8' ;Now one bit is recieved OK, test "1" or "0"
00A0 023F 00131 subwf Preamble_High_Counter,W
00A1 1C03 00132 skpc ;if >=6 then means 0
00A2 17BC 00133 bsf Frame_Buff9,7
00134
00A3 20C4 00135 call Recieve_Buff_RRF
00136
00A4 01BF 00137 clrf Preamble_High_Counter
00A5 01BE 00138 clrf Preamble_Low_Counter
MPASM 03.80 Released RKE_TIANQIU_630.ASM 2-7-2005 14:54:21 PAGE 11
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00139
00A6 0BC1 00140 decfsz Frame_Bit_Counter,F
00A7 28B0 00141 goto Get_Frame_High_Jump
00142
00A8 20C4 00143 call Recieve_Buff_RRF
00A9 20C4 00144 call Recieve_Buff_RRF
00AA 20C4 00145 call Recieve_Buff_RRF
00AB 20C4 00146 call Recieve_Buff_RRF
00AC 20C4 00147 call Recieve_Buff_RRF
00AD 20C4 00148 call Recieve_Buff_RRF
00149
00AE 13BD 00150 bcf RF_FRAME_RECIEVE
00151
00AF 173D 00152 bsf RF_FRAME_GET
00153
00B0 00154 Get_Frame_High_Jump:
00B0 0ABF 00155 incf Preamble_High_Counter,F
00B1 28B2 00156 goto Get_Frame_Over
00157
00B2 00158 Get_Frame_Over: ;17us
00B2 28C3 00159 goto Interrupt_Over
00160
00161
00B3 00162 TMR0_Interrupt_Over:
00163
00164 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
00165
00B3 1C0C 00166 btfss PIR1,TMR1IF
00B4 28BC 00167 goto TMR1_Interrupt_Over
00B5 100C 00168 bcf PIR1,TMR1IF
00169
00B6 309E 00170 movlw d'158'
00B7 078F 00171 addwf TMR1H,F
00B8 3058 00172 movlw d'88'
00B9 078E 00173 addwf TMR1L,F ;Set new time over.
00174 ;First test if Key get(only set flag, deal in mainloop
00BA 14BD 00175 bsf MAIN_CHECK ;Set here and clear at Mainloop and then check Key input
00176
00BB 28C3 00177 goto Interrupt_Over
00BC 00178 TMR1_Interrupt_Over:
00179
00180 ;==========================================================
00181
00BC 30E0 00182 movlw b'11100000'
00BD 058B 00183 andwf INTCON,F
00BE 018C 00184 clrf PIR1
00185
00BF 1683 00186 bsf STATUS,RP0
00C0 3003 00187 movlw b'00000011' ;EEIE=0,ADIE=0,RCIE=0,TXIE=0, CMIE=0,0,TMR2IE=1,TMR1IE=1
00C1 008C 00188 movwf PIE1
00C2 1283 00189 bcf STATUS,RP0
00190
00191 ;**********************************************************
MPASM 03.80 Released RKE_TIANQIU_630.ASM 2-7-2005 14:54:21 PAGE 12
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00192 ;Interrupt over
00193 ;**********************************************************
00194
00C3 00195 Interrupt_Over:
00C3 0008 00196 return
00197
00198
00199 ;**********************************************************
00200 ;**********************************************************
00C4 00201 Recieve_Buff_RRF:
00C4 0CBC 00202 rrf Frame_Buff9,F
00C5 0CBB 00203 rrf Frame_Buff8,F
00C6 0CBA 00204 rrf Frame_Buff7,F
00C7 0CB9 00205 rrf Frame_Buff6,F
00C8 0CB8 00206 rrf Frame_Buff5,F
00C9 0CB7 00207 rrf Frame_Buff4,F
00CA 0CB6 00208 rrf Frame_Buff3,F
00CB 0CB5 00209 rrf Frame_Buff2,F
00CC 0CB4 00210 rrf Frame_Buff1,F
00CD 0008 00211 return
00044
00CE 00045 main
00046 ;**********************************************************
00047 ;Alex codes are from here.
00048 ;**********************************************************
00CE 20D2 00049 call Register_Initiate
00050
00CF 00051 Main_Loop:
00CF 20F4 00052 call Register_Sure
00053
00D0 2141 00054 call Key_Deal
00055
00D1 28CF 00056 goto Main_Loop
00057
00058 ;**********************************************************
00059 ;Sub-Function are here
00060 ;**********************************************************
00061 #include "Ini_Sure.inc"
00001 ;#####################################
00002 ;Sub-Function-1: Intitate
00003 ;#####################################
00D2 00004 Register_Initiate:
00005 ;--------------------------------------------------
00006 ;SFR initiate
00007 ;--------------------------------------------------
00D2 1283 1303 00008 banksel PORTA
00D4 0185 00009 clrf PORTA
00010
00011 ;------------------------------
00012
00D5 1683 00013 bsf STATUS,RP0
00D6 300F 00014 movlw b'00001111' ;GPPU=0(En),INTEDG=0,T0CS=0(OSC/4),T0SE=0(Posedge),PSA=0(TMR0),P
S2-PS0=011(1:16)
MPASM 03.80 Released RKE_TIANQIU_630.ASM 2-7-2005 14:54:21 PAGE 13
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00D7 0081 00015 movwf OPTION_REG
00016
00017 ; movlw b'00001011' ;NOP,NOP,OPEN,CLOSE | Clear, LED, Learn, RF
00018 ; movwf TRISA
00D8 300B 00019 movlw b'00001011' ;NOP,NOP,OPEN,CLOSE | Input, LED, Learn, RF
00D9 0085 00020 movwf TRISA
00DA 3003 00021 movlw b'00000011' ;NOP,NOP,NOP,NOP | NOP,NOP,HAND_CLOSE,HAND_OPEN
00DB 0087 00022 movwf TRISC
00023
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -