📄 cw1.s
字号:
ldi R25,>_code
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_code1
ldi R25,>_code1
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R3,z+0
cp R3,R2
breq L106
.dbline 212
.dbline 212
xjmp L104
L106:
.dbline 212
L103:
.dbline 212
inc R20
L105:
.dbline 212
;
; }
; for(i=0;i<2;++i){if(code1[i]!=code[i]){break;}}
cpi R20,2
brlo L102
L104:
.dbline 213
; if(i==2){flag=1;break;}
cpi R20,2
brne L108
.dbline 213
.dbline 213
ldi R22,1
.dbline 213
xjmp L87
L108:
.dbline 214
L86:
.dbline 198
xjmp L89
L87:
.dbline 215
; }
; if(flag==1)
cpi R22,1
breq X7
xjmp L82
X7:
.dbline 216
; {
.dbline 217
; for(i=0;i<2;++i)
clr R20
xjmp L115
L112:
.dbline 218
.dbline 219
ldi R24,<_code
ldi R25,>_code
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R18,z+0
mov R16,R20
xcall _eeprom_writ
.dbline 220
L113:
.dbline 217
inc R20
L115:
.dbline 217
cpi R20,2
brlo L112
.dbline 221
; {
; eeprom_writ(i,code[i]);
; }
; flag=0;
clr R22
.dbline 222
; }
.dbline 223
; return;
xjmp L82
L83:
.dbline 225
; }
; flag=decode();
xcall _decode
mov R22,R16
.dbline 226
; if(flag==1)
cpi R16,1
breq X8
xjmp L116
X8:
.dbline 227
; {
.dbline 228
; for(i=0;i<2;++i)
clr R20
xjmp L121
L118:
.dbline 229
; {
.dbline 230
; if(eeprom_read(i)!=code[i]) {flag=0xff;break;}
mov R16,R20
xcall _eeprom_read
ldi R24,<_code
ldi R25,>_code
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
cp R16,R2
breq L122
.dbline 230
.dbline 230
ldi R22,255
.dbline 230
xjmp L120
L122:
.dbline 231
L119:
.dbline 228
inc R20
L121:
.dbline 228
cpi R20,2
brlo L118
L120:
.dbline 232
; }
; if(flag==1)
cpi R22,1
breq X9
xjmp L117
X9:
.dbline 233
; {
.dbline 234
; flag==0;
.dbline 235
; if(code[2]==0xc0)
lds R24,_code+2
cpi R24,192
brne L126
.dbline 236
; {
.dbline 237
; for(i=0;i<14;i++)
clr R20
xjmp L132
L129:
.dbline 238
.dbline 239
ldi R24,<_forward
ldi R25,>_forward
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 240
L130:
.dbline 237
inc R20
L132:
.dbline 237
cpi R20,14
brlo L129
.dbline 241
; {
; uart_transmit_byte(forward[i]);
; }
; }
xjmp L169
L126:
.dbline 242
; else if(code[2]==0x30)
lds R24,_code+2
cpi R24,48
brne L133
.dbline 243
; {
.dbline 244
; for(i=0;i<14;i++)
clr R20
xjmp L139
L136:
.dbline 245
.dbline 246
ldi R24,<_back
ldi R25,>_back
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 247
L137:
.dbline 244
inc R20
L139:
.dbline 244
cpi R20,14
brlo L136
.dbline 248
; {
; uart_transmit_byte(back[i]);
; }
; }
xjmp L169
L133:
.dbline 249
; else if(code[2]==0xf0) //上
lds R24,_code+2
cpi R24,240
brne L140
.dbline 250
; {
.dbline 251
; for(i=0;i<7;i++)
clr R20
xjmp L146
L143:
.dbline 252
.dbline 253
ldi R24,<_UP
ldi R25,>_UP
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 254
ldi R24,<_UP
ldi R25,>_UP
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 255
L144:
.dbline 251
inc R20
L146:
.dbline 251
cpi R20,7
brlo L143
.dbline 256
; {
; uart_transmit_byte(UP[i]);
; code_buf[i]=UP[i];
; }
; }
xjmp L169
L140:
.dbline 257
; else if(code[2]==0x0c)//下
lds R24,_code+2
cpi R24,12
brne L147
.dbline 258
; {
.dbline 259
; for(i=0;i<7;i++)
clr R20
xjmp L153
L150:
.dbline 260
.dbline 261
ldi R24,<_DOWN
ldi R25,>_DOWN
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 262
ldi R24,<_DOWN
ldi R25,>_DOWN
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 263
L151:
.dbline 259
inc R20
L153:
.dbline 259
cpi R20,7
brlo L150
.dbline 264
; {
; uart_transmit_byte(DOWN[i]);
; code_buf[i]=DOWN[i];
; }
; }
xjmp L169
L147:
.dbline 266
;
; else if(code[2]==0xcc)//左
lds R24,_code+2
cpi R24,204
brne L154
.dbline 267
; {
.dbline 268
; for(i=0;i<7;i++)
clr R20
xjmp L160
L157:
.dbline 269
.dbline 270
ldi R24,<_left
ldi R25,>_left
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 271
ldi R24,<_left
ldi R25,>_left
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 272
L158:
.dbline 268
inc R20
L160:
.dbline 268
cpi R20,7
brlo L157
.dbline 273
; {
; uart_transmit_byte(left[i]);
; code_buf[i]=left[i];
; }
; }
xjmp L169
L154:
.dbline 274
; else if(code[2]==0x3c)//右
lds R24,_code+2
cpi R24,60
breq X10
xjmp L169
X10:
.dbline 275
; {
.dbline 276
; for(i=0;i<7;i++)
clr R20
xjmp L167
L164:
.dbline 277
.dbline 278
ldi R24,<_right
ldi R25,>_right
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
.dbline 279
L165:
.dbline 276
inc R20
L167:
.dbline 276
cpi R20,7
brlo L164
.dbline 280
; {
; uart_transmit_byte(right[i]);
; }
; code_buf[i]=right[i];
ldi R24,<_right
ldi R25,>_right
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 281
; }
xjmp L169
L168:
.dbline 283
; while(1)
; {
.dbline 284
; flag=decode();
xcall _decode
mov R22,R16
xjmp L172
L171:
.dbline 286
; while(flag==0xff)
; {
.dbline 287
; flag=0;
clr R22
.dbline 288
; delay_nms(25);
ldi R16,25
ldi R17,0
xcall _delay_nms
.dbline 289
; flag=decode();
xcall _decode
mov R22,R16
xjmp L175
L174:
.dbline 291
; while(flag==0xff)
; {
.dbline 292
; for(i=0;i<7;i++)
clr R20
xjmp L180
L177:
.dbline 293
ldi R24,<_STOP
ldi R25,>_STOP
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
L178:
.dbline 292
inc R20
L180:
.dbline 292
cpi R20,7
brlo L177
.dbline 294
; uart_transmit_byte(STOP[i]);
; if(i==7) {flag=1;break;}
cpi R20,7
brne L181
.dbline 294
.dbline 294
ldi R22,1
.dbline 294
xjmp L176
L181:
.dbline 295
L175:
.dbline 290
cpi R22,255
breq L174
L176:
.dbline 296
; }
; if(flag==1) {flag=0;return;}
cpi R22,1
brne L183
.dbline 296
.dbline 296
clr R22
.dbline 296
xjmp L82
L183:
.dbline 297
L172:
.dbline 285
cpi R22,255
breq L171
.dbline 298
; }
; for(i=0;i<7;i++)
clr R20
xjmp L188
L185:
.dbline 299
movw R24,R28
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
L186:
.dbline 298
inc R20
L188:
.dbline 298
cpi R20,7
brlo L185
.dbline 300
L169:
.dbline 282
xjmp L168
X5:
.dbline 301
; uart_transmit_byte(code_buf[i]);
; }
; }
.dbline 302
; }
xjmp L117
L116:
.dbline 303
; else if(flag==0xff)
cpi R22,255
brne L189
.dbline 304
; {
.dbline 305
; flag=0;
clr R22
.dbline 306
; for(i=0;i<7;i++)
clr R20
xjmp L194
L191:
.dbline 307
ldi R24,<_STOP
ldi R25,>_STOP
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R16,z+0
xcall _uart_transmit_byte
L192:
.dbline 306
inc R20
L194:
.dbline 306
cpi R20,7
brlo L191
.dbline 308
; uart_transmit_byte(STOP[i]);
; }
L189:
L117:
.dbline -2
L82:
adiw R28,7
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r key_var 20 c
.dbsym l code_buf 0 A[7:7]c
.dbsym r flag 22 c
.dbsym r i 20 c
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 311
; }
; void main()
; {
.dbline 312
; init_devices();
xcall _init_devices
.dbline 315
; //DDRA&=~(1<<wuxian_js);
; // PORTA|=(1<<wuxian_js);
; DDRD=0x02;
ldi R24,2
out 0x11,R24
.dbline 318
; //DDRC|=(1<<power_led);
; //PORTC&=~(1<<power_led);
; DDRA |=0x40; //485使能
sbi 0x1a,6
.dbline 319
; PORTA|=0x40; //
sbi 0x1b,6
xjmp L197
L196:
.dbline 321
.dbline 322
xcall _ana_decode
.dbline 323
L197:
.dbline 320
xjmp L196
X11:
.dbline -2
L195:
.dbline 0 ; func end
ret
.dbend
.area bss(ram, con, rel)
.dbfile C:\DOCUME~1\Administrator\桌面\无线视频车\程序\cw1.c
_code1::
.blkb 3
.dbsym e code1 _code1 A[3:3]c
_code::
.blkb 3
.dbsym e code _code A[3:3]c
_count1::
.blkb 4
.dbsym e count1 _count1 l
_count::
.blkb 4
.dbsym e count _count l
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -