📄 feedis_uart.lis
字号:
0102 .dbline 99
0102 ; /*else if(temp=='b')
0102 ; {ready_rx=6;receivebox[1]|=0x20;}
0102 ; else if(temp=='c')
0102 ; {ready_rx=7;receivebox[1]|=0x40;}
0102 ; else if(temp=='d')
0102 ; {ready_rx=8;receivebox[1]|=0x80;}*/
0102 ; else {ready_rx=10;receivebox[1] = temp; RX_index = 5;}
0102 .dbline 99
0102 8AE0 ldi R24,10
0104 80930100 sts _ready_rx,R24
0108 .dbline 99
0108 40930400 sts _receivebox+1,R20
010C .dbline 99
010C 85E0 ldi R24,5
010E 80934900 sts _RX_index,R24
0112 .dbline 99
0112 .dbline 101
0112 ;
0112 ; break;
0112 BEC0 xjmp L13
0114 L29:
0114 .dbline 103
0114 ; case 3:
0114 ; receivebox[2] = temp; //存下位置值
0114 40930500 sts _receivebox+2,R20
0118 .dbline 104
0118 ; if(temp==0x00)
0118 4423 tst R20
011A 39F4 brne L31
011C .dbline 105
011C ; {
011C .dbline 106
011C ; RX_index = 64;
011C 80E4 ldi R24,64
011E 80934900 sts _RX_index,R24
0122 .dbline 107
0122 ; ready_rx = 4;
0122 84E0 ldi R24,4
0124 80930100 sts _ready_rx,R24
0128 .dbline 108
0128 ; }
0128 B3C0 xjmp L13
012A L31:
012A .dbline 109
012A ; else if((temp>0)&&(temp<5))
012A 2224 clr R2
012C 2416 cp R2,R20
012E 48F4 brsh L33
0130 4530 cpi R20,5
0132 38F4 brsh L33
0134 .dbline 110
0134 ; { RX_index = 16;
0134 .dbline 110
0134 80E1 ldi R24,16
0136 80934900 sts _RX_index,R24
013A .dbline 111
013A ; ready_rx = 4;
013A 84E0 ldi R24,4
013C 80930100 sts _ready_rx,R24
0140 .dbline 112
0140 ; }
0140 A7C0 xjmp L13
0142 L33:
0142 .dbline 114
0142 ; else
0142 ; { ready_rx = 0;
0142 .dbline 114
0142 2224 clr R2
0144 20920100 sts _ready_rx,R2
0148 .dbline 115
0148 ; }
0148 .dbline 117
0148 ;
0148 ; break;
0148 A3C0 xjmp L13
014A L35:
014A .dbline 119
014A ; case 4:
014A ; if(receivebox[2] ==0x00)
014A 20900500 lds R2,_receivebox+2
014E 2220 tst R2
0150 69F4 brne L36
0152 .dbline 120
0152 ; {receivebox[64 - RX_index + 3] = temp;
0152 .dbline 120
0152 20904900 lds R2,_RX_index
0156 3324 clr R3
0158 E0E4 ldi R30,64
015A F0E0 ldi R31,0
015C E219 sub R30,R2
015E F309 sbc R31,R3
0160 80E0 ldi R24,<_receivebox+3
0162 90E0 ldi R25,>_receivebox+3
0164 E80F add R30,R24
0166 F91F adc R31,R25
0168 4083 std z+0,R20
016A .dbline 121
016A ; }
016A 0CC0 xjmp L37
016C L36:
016C .dbline 123
016C ; else
016C ; {receivebox[16 - RX_index + 3] = temp;
016C .dbline 123
016C 20904900 lds R2,_RX_index
0170 3324 clr R3
0172 E0E1 ldi R30,16
0174 F0E0 ldi R31,0
0176 E219 sub R30,R2
0178 F309 sbc R31,R3
017A 80E0 ldi R24,<_receivebox+3
017C 90E0 ldi R25,>_receivebox+3
017E E80F add R30,R24
0180 F91F adc R31,R25
0182 4083 std z+0,R20
0184 .dbline 124
0184 ; }
0184 L37:
0184 .dbline 125
0184 ; RX_index--;
0184 80914900 lds R24,_RX_index
0188 8150 subi R24,1
018A 80934900 sts _RX_index,R24
018E .dbline 128
018E ; //if(!(c) || (temp == 0x05))
018E ; // ready_rx = 0;
018E ; break;
018E 80C0 xjmp L13
0190 L41:
0190 .dbline 131
0190 ; case 5:
0190 ;
0190 ; RX_index--;
0190 80914900 lds R24,_RX_index
0194 8150 subi R24,1
0196 80934900 sts _RX_index,R24
019A .dbline 132
019A ; if(RX_index==13)
019A 80914900 lds R24,_RX_index
019E 8D30 cpi R24,13
01A0 41F4 brne L42
01A2 .dbline 133
01A2 ; {zx.zhou=temp;flg|=0x10;}
01A2 .dbline 133
01A2 40930200 sts _zx,R20
01A6 .dbline 133
01A6 80910000 lds R24,_flg
01AA 8061 ori R24,16
01AC 80930000 sts _flg,R24
01B0 .dbline 133
01B0 6FC0 xjmp L13
01B2 L42:
01B2 .dbline 134
01B2 ; else if((RX_index>8)&&(RX_index<13))
01B2 88E0 ldi R24,8
01B4 20904900 lds R2,_RX_index
01B8 8215 cp R24,R2
01BA B0F4 brsh L44
01BC 80914900 lds R24,_RX_index
01C0 8D30 cpi R24,13
01C2 90F4 brsh L44
01C4 .dbline 135
01C4 ; { zx.dunwei[12-RX_index]=temp;flg|=0x20;}
01C4 .dbline 135
01C4 20904900 lds R2,_RX_index
01C8 3324 clr R3
01CA ECE0 ldi R30,12
01CC F0E0 ldi R31,0
01CE E219 sub R30,R2
01D0 F309 sbc R31,R3
01D2 80E0 ldi R24,<_zx+1
01D4 90E0 ldi R25,>_zx+1
01D6 E80F add R30,R24
01D8 F91F adc R31,R25
01DA 4083 std z+0,R20
01DC .dbline 135
01DC 80910000 lds R24,_flg
01E0 8062 ori R24,32
01E2 80930000 sts _flg,R24
01E6 .dbline 135
01E6 54C0 xjmp L13
01E8 L44:
01E8 .dbline 136
01E8 ; else if((RX_index>4)&&(RX_index<9))
01E8 84E0 ldi R24,4
01EA 20904900 lds R2,_RX_index
01EE 8215 cp R24,R2
01F0 B0F4 brsh L47
01F2 80914900 lds R24,_RX_index
01F6 8930 cpi R24,9
01F8 90F4 brsh L47
01FA .dbline 137
01FA ; {zx.zongzhong[8-RX_index]=temp;flg|=0x40;}
01FA .dbline 137
01FA 20904900 lds R2,_RX_index
01FE 3324 clr R3
0200 E8E0 ldi R30,8
0202 F0E0 ldi R31,0
0204 E219 sub R30,R2
0206 F309 sbc R31,R3
0208 80E0 ldi R24,<_zx+5
020A 90E0 ldi R25,>_zx+5
020C E80F add R30,R24
020E F91F adc R31,R25
0210 4083 std z+0,R20
0212 .dbline 137
0212 80910000 lds R24,_flg
0216 8064 ori R24,64
0218 80930000 sts _flg,R24
021C .dbline 137
021C 39C0 xjmp L13
021E L47:
021E .dbline 138
021E ; else if((RX_index>0)&&(RX_index<5))
021E 2224 clr R2
0220 30904900 lds R3,_RX_index
0224 2314 cp R2,R3
0226 A0F5 brsh L13
0228 80914900 lds R24,_RX_index
022C 8530 cpi R24,5
022E 80F5 brsh L13
0230 .dbline 139
0230 ; {zx.chaoxian[4-RX_index]=temp;flg|=0x80;}
0230 .dbline 139
0230 20904900 lds R2,_RX_index
0234 3324 clr R3
0236 E4E0 ldi R30,4
0238 F0E0 ldi R31,0
023A E219 sub R30,R2
023C F309 sbc R31,R3
023E 80E0 ldi R24,<_zx+9
0240 90E0 ldi R25,>_zx+9
0242 E80F add R30,R24
0244 F91F adc R31,R25
0246 4083 std z+0,R20
0248 .dbline 139
0248 80910000 lds R24,_flg
024C 8068 ori R24,128
024E 80930000 sts _flg,R24
0252 .dbline 139
0252 .dbline 140
0252 ; break;
0252 1EC0 xjmp L13
0254 L53:
0254 .dbline 144
0254 ;
0254 ;
0254 ; case 10:
0254 ; RX_index--;
0254 80914900 lds R24,_RX_index
0258 8150 subi R24,1
025A 80934900 sts _RX_index,R24
025E .dbline 145
025E ; receivebox[5 - RX_index + 1] = temp;
025E 20904900 lds R2,_RX_index
0262 3324 clr R3
0264 E5E0 ldi R30,5
0266 F0E0 ldi R31,0
0268 E219 sub R30,R2
026A F309 sbc R31,R3
026C 80E0 ldi R24,<_receivebox+1
026E 90E0 ldi R25,>_receivebox+1
0270 E80F add R30,R24
0272 F91F adc R31,R25
0274 4083 std z+0,R20
0276 .dbline 146
0276 ; if(RX_index==0) flg=0xf0;
0276 20904900 lds R2,_RX_index
027A 2220 tst R2
027C 49F4 brne L13
027E .dbline 146
027E 80EF ldi R24,240
0280 80930000 sts _flg,R24
0284 .dbline 149
0284 ; //if(!(RX_index--) || (temp == 0x05))
0284 ; // ready_rx = 0;
0284 ; break;
0284 05C0 xjmp L13
0286 L12:
0286 .dbline 152
0286 ;
0286 ; default:
0286 ; ready_rx = 0;
0286 2224 clr R2
0288 20920100 sts _ready_rx,R2
028C .dbline 153
028C ; RX_index = 0;
028C 20924900 sts _RX_index,R2
0290 .dbline 154
0290 ; break;
0290 L13:
0290 .dbline 160
0290 ;
0290 ; }
0290 ;
0290 ; // 如果收不满16或者64字节数据,最后停止位是 0x05
0290 ;
0290 ; if ( (ready_rx ==4) && (RX_index == 0) )
0290 80910100 lds R24,_ready_rx
0294 8430 cpi R24,4
0296 51F4 brne L57
0298 20904900 lds R2,_RX_index
029C 2220 tst R2
029E 31F4 brne L57
02A0 .dbline 161
02A0 ; { //receivebox[65]=0x05;
02A0 .dbline 162
02A0 ; ready_rx = 0;
02A0 2224 clr R2
02A2 20920100 sts _ready_rx,R2
02A6 .dbline 163
02A6 ; FLAG = 1;
02A6 81E0 ldi R24,1
02A8 80930000 sts _FLAG,R24
02AC .dbline 165
02AC ; //uart0_txd(0xaa);
02AC ; }
02AC L57:
02AC .dbline 166
02AC ; if((RX_index == 0) &&(( ready_rx >= 5)&&( ready_rx <= 10) ))
02AC 20904900 lds R2,_RX_index
02B0 2220 tst R2
02B2 A9F4 brne L59
02B4 80910100 lds R24,_ready_rx
02B8 8530 cpi R24,5
02BA 88F0 brlo L59
02BC 8AE0 ldi R24,10
02BE 20900100 lds R2,_ready_rx
02C2 8215 cp R24,R2
02C4 60F0 brlo L59
02C6 .dbline 167
02C6 ; {
02C6 .dbline 168
02C6 ; ready_rx = 0;
02C6 2224 clr R2
02C8 20920100 sts _ready_rx,R2
02CC .dbline 169
02CC ; if(flg==0xf0)
02CC 80910000 lds R24,_flg
02D0 803F cpi R24,240
02D2 29F4 brne L61
02D4 .dbline 170
02D4 ; {flg=0;
02D4 .dbline 170
02D4 20920000 sts _flg,R2
02D8 .dbline 171
02D8 ; FLAG=1;
02D8 81E0 ldi R24,1
02DA 80930000 sts _FLAG,R24
02DE .dbline 172
02DE ; }
02DE L61:
02DE .dbline 173
02DE L59:
02DE .dbline -2
02DE L11:
02DE 0E940000 xcall pop_gset2
02E2 0E940000 xcall pop_lset
02E6 .dbline 0 ; func end
02E6 1895 reti
02E8 .dbsym r temp 20 c
02E8 .dbend
02E8 .dbfunc e uart0_txd _uart0_txd fV
02E8 ; x -> R16
.even
02E8 _uart0_txd::
02E8 .dbline -1
02E8 .dbline 178
02E8 L64:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -