📄 m8sp01.lis
字号:
013C 8F5F subi R24,255 ; addi 1
013E 80930900 sts _RXbufP,R24
0142 .dbline 198
0142 ; }
0142 L27:
0142 .dbline 199
0142 80E0 ldi R24,<_RXBUF
0144 90E0 ldi R25,>_RXBUF
0146 E0910900 lds R30,_RXbufP
014A FF27 clr R31
014C E80F add R30,R24
014E F91F adc R31,R25
0150 0083 std z+0,R16
0152 .dbline 201
0152 L24:
0152 .dbline -2
0152 L22:
0152 2990 ld R2,y+
0154 2FBE out 0x3f,R2
0156 F991 ld R31,y+
0158 E991 ld R30,y+
015A 9991 ld R25,y+
015C 8991 ld R24,y+
015E 0991 ld R16,y+
0160 3990 ld R3,y+
0162 2990 ld R2,y+
0164 .dbline 0 ; func end
0164 1895 reti
0166 .dbsym r TmpD 16 c
0166 .dbend
0166 .dbfunc e TXbufRDY _TXbufRDY fV
.even
0166 _TXbufRDY::
0166 .dbline -1
0166 .dbline 204
0166 ; RXBUF[RXbufP]=TmpD;
0166 ;
0166 ; }//else
0166 ; }//void uart1_rx_isr(void)
0166 ; void TXbufRDY(void)
0166 ; {
0166 .dbline 206
0166 ;
0166 ; TXBUF[0]=TRFG0;
0166 8EEF ldi R24,254
0168 80931E00 sts _TXBUF,R24
016C .dbline 207
016C ; TXBUF[1]=TRFG1;
016C 8DEF ldi R24,253
016E 80931F00 sts _TXBUF+1,R24
0172 .dbline 208
0172 ; TXBUF[2]=SlaveAdress;
0172 85E0 ldi R24,5
0174 80932000 sts _TXBUF+2,R24
0178 .dbline 209
0178 ; TXBUF[10]=TRFG2;
0178 81EF ldi R24,241
017A 80932800 sts _TXBUF+10,R24
017E .dbline 210
017E ; TXBUF[11]=TRFG3;
017E 80EF ldi R24,240
0180 80932900 sts _TXBUF+11,R24
0184 .dbline -2
0184 L29:
0184 .dbline 0 ; func end
0184 0895 ret
0186 .dbend
0186 .dbfunc e RXBUFCLR _RXBUFCLR fV
0186 ; i -> R16
.even
0186 _RXBUFCLR::
0186 .dbline -1
0186 .dbline 213
0186 ; }//void TXbufRDY(void)
0186 ; void RXBUFCLR(void)
0186 ; {
0186 .dbline 214
0186 ; unsigned char i=0;
0186 0027 clr R16
0188 .dbline 215
0188 ; for(i=0;i<RXINTMAX;i++)
0188 09C0 rjmp L38
018A L35:
018A .dbline 216
018A 80E0 ldi R24,<_RXBUF
018C 90E0 ldi R25,>_RXBUF
018E E02F mov R30,R16
0190 FF27 clr R31
0192 E80F add R30,R24
0194 F91F adc R31,R25
0196 2224 clr R2
0198 2082 std z+0,R2
019A L36:
019A .dbline 215
019A 0395 inc R16
019C L38:
019C .dbline 215
019C 20900500 lds R2,_RXINTMAX
01A0 0215 cp R16,R2
01A2 98F3 brlo L35
01A4 .dbline -2
01A4 L34:
01A4 .dbline 0 ; func end
01A4 0895 ret
01A6 .dbsym r i 16 c
01A6 .dbend
01A6 .dbfunc e RX_INIT _RX_INIT fV
.even
01A6 _RX_INIT::
01A6 .dbline -1
01A6 .dbline 220
01A6 ; RXBUF[i]=0;
01A6 ; }//void RXBUFCLR(void)
01A6 ;
01A6 ; void RX_INIT(void)
01A6 ; {
01A6 .dbline 221
01A6 ; OUTDEOFF;
01A6 9498 cbi 0x12,4
01A8 .dbline 222
01A8 ; RXbufP=0;
01A8 2224 clr R2
01AA 20920900 sts _RXbufP,R2
01AE .dbline 223
01AE ; RDHIS=0xff;
01AE 8FEF ldi R24,255
01B0 80930100 sts _RDHIS,R24
01B4 .dbline 224
01B4 ; RXADDRESS
01B4 589A sbi 0xb,0
01B6 .dbline 224
01B6 20920000 sts _TRADFG,R2
01BA .dbline 226
01BA ;
01BA ; RXENABLE
01BA 5398 cbi 0xa,3
01BC .dbline 226
01BC 549A sbi 0xa,4
01BE .dbline -2
01BE L39:
01BE .dbline 0 ; func end
01BE 0895 ret
01C0 .dbend
01C0 .dbfunc e RXRCK2 _RXRCK2 fV
.even
01C0 _RXRCK2::
01C0 00D0 rcall push_gset2
01C2 .dbline -1
01C2 .dbline 230
01C2 ; }//void RX_INIT(void)
01C2 ;
01C2 ; void RXRCK2(void) //检查收到的数据是否有效
01C2 ; {
01C2 .dbline 232
01C2 ;
01C2 ; if(RXbufP>RXbufPmax)
01C2 20900A00 lds R2,_RXbufPmax
01C6 30900900 lds R3,_RXbufP
01CA 2314 cp R2,R3
01CC B0F5 brsh L41
01CE .dbline 233
01CE ; {
01CE .dbline 235
01CE ;
01CE ; RXERROR=2;
01CE 82E0 ldi R24,2
01D0 80930B00 sts _RXERROR,R24
01D4 .dbline 236
01D4 ; if(RXBUF[12]==TRFG3 & RXBUF[11]==TRFG2 & RXBUF[1]==TRFG0 & RXBUF[2]==TRFG1)
01D4 80910C00 lds R24,_RXBUF+12
01D8 803F cpi R24,240
01DA 19F4 brne L49
01DC 61E0 ldi R22,1
01DE 70E0 ldi R23,0
01E0 02C0 rjmp L50
01E2 L49:
01E2 6627 clr R22
01E4 7727 clr R23
01E6 L50:
01E6 80910B00 lds R24,_RXBUF+11
01EA 813F cpi R24,241
01EC 19F4 brne L51
01EE 41E0 ldi R20,1
01F0 50E0 ldi R21,0
01F2 02C0 rjmp L52
01F4 L51:
01F4 4427 clr R20
01F6 5527 clr R21
01F8 L52:
01F8 80910100 lds R24,_RXBUF+1
01FC 8E3F cpi R24,254
01FE 19F4 brne L53
0200 21E0 ldi R18,1
0202 30E0 ldi R19,0
0204 02C0 rjmp L54
0206 L53:
0206 2227 clr R18
0208 3327 clr R19
020A L54:
020A 80910200 lds R24,_RXBUF+2
020E 8D3F cpi R24,253
0210 19F4 brne L55
0212 01E0 ldi R16,1
0214 10E0 ldi R17,0
0216 02C0 rjmp L56
0218 L55:
0218 0027 clr R16
021A 1127 clr R17
021C L56:
021C 1B01 movw R2,R22
021E 2422 and R2,R20
0220 3522 and R3,R21
0222 2222 and R2,R18
0224 3322 and R3,R19
0226 2022 and R2,R16
0228 3122 and R3,R17
022A 2220 tst R2
022C 11F4 brne X0
022E 3320 tst R3
0230 39F0 breq L42
0232 X0:
0232 .dbline 237
0232 ; {
0232 .dbline 239
0232 ;
0232 ; RXERROR=0;
0232 2224 clr R2
0234 20920B00 sts _RXERROR,R2
0238 .dbline 240
0238 ; }
0238 .dbline 242
0238 ;
0238 ; }//if(RXbufP>RXbufPmax)
0238 03C0 rjmp L42
023A L41:
023A .dbline 244
023A .dbline 245
023A 81E0 ldi R24,1
023C 80930B00 sts _RXERROR,R24
0240 .dbline 246
0240 L42:
0240 .dbline -2
0240 L40:
0240 00D0 rcall pop_gset2
0242 .dbline 0 ; func end
0242 0895 ret
0244 .dbend
0244 .dbfunc e RXRCK _RXRCK fV
0244 ; i -> R16
0244 ; tP -> R16
.even
0244 _RXRCK::
0244 00D0 rcall push_gset2
0246 .dbline -1
0246 .dbline 252
0246 ; else
0246 ; {
0246 ; RXERROR=1;
0246 ; }//else
0246 ;
0246 ; // OUTLED1ON;
0246 ; }//void RXRCK(void)
0246 ;
0246 ; void RXRCK(void) //检查收到的数据是否有效
0246 ; {
0246 .dbline 253
0246 ; unsigned char tP=0;
0246 0027 clr R16
0248 .dbline 254
0248 ; unsigned char i=0;
0248 .dbline 255
0248 ; if(RXbufP>RXbufPmax)
0248 20900A00 lds R2,_RXbufPmax
024C 30900900 lds R3,_RXbufP
0250 2314 cp R2,R3
0252 08F0 brlo X2
0254 3FC0 rjmp L58
0256 X2:
0256 .dbline 256
0256 ; {
0256 .dbline 258
0256 ; // OUTLED1ON;
0256 ; RXERROR=2;
0256 82E0 ldi R24,2
0258 80930B00 sts _RXERROR,R24
025C .dbline 259
025C ; if(RXBUF[12]==TRFG3 & RXBUF[11]==TRFG2 & RXBUF[1]==TRFG0 & RXBUF[2]==TRFG1)
025C 80910C00 lds R24,_RXBUF+12
0260 803F cpi R24,240
0262 19F4 brne L66
0264 61E0 ldi R22,1
0266 70E0 ldi R23,0
0268 02C0 rjmp L67
026A L66:
026A 6627 clr R22
026C 7727 clr R23
026E L67:
026E 80910B00 lds R24,_RXBUF+11
0272 813F cpi R24,241
0274 19F4 brne L68
0276 41E0 ldi R20,1
0278 50E0 ldi R21,0
027A 02C0 rjmp L69
027C L68:
027C 4427 clr R20
027E 5527 clr R21
0280 L69:
0280 80910100 lds R24,_RXBUF+1
0284 8E3F cpi R24,254
0286 19F4 brne L70
0288 21E0 ldi R18,1
028A 30E0 ldi R19,0
028C 02C0 rjmp L71
028E L70:
028E 2227 clr R18
0290 3327 clr R19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -