📄 display_dhtxx.lis
字号:
02B6 ; if(U8FLAG==1)break;
02B6 80911200 lds R24,_U8FLAG
02BA 8130 cpi R24,1
02BC 09F4 brne L84
02BE .dbline 302
02BE 48C0 rjmp L79
02C0 L84:
02C0 .dbline 303
02C0 ; U8FLAG=2;
02C0 82E0 ldi R24,2
02C2 80931200 sts _U8FLAG,R24
02C6 L86:
02C6 .dbline 306
02C6 L87:
02C6 .dbline 306
02C6 ; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
02C6 ; //while((P2_0)&&U8FLAG++);
02C6 ; while((COM_R)&&U8FLAG++);
02C6 9D9B sbis 0x13,5
02C8 09C0 rjmp L89
02CA 20901200 lds R2,_U8FLAG
02CE 3324 clr R3
02D0 822D mov R24,R2
02D2 8F5F subi R24,255 ; addi 1
02D4 80931200 sts _U8FLAG,R24
02D8 2220 tst R2
02DA A9F7 brne L86
02DC L89:
02DC .dbline 307
02DC ; if(U8FLAG==1)break;
02DC 80911200 lds R24,_U8FLAG
02E0 8130 cpi R24,1
02E2 09F4 brne L90
02E4 .dbline 307
02E4 35C0 rjmp L79
02E6 L90:
02E6 .dbline 309
02E6 ; //数据接收状态
02E6 ; COM();
02E6 7DDF rcall _COM
02E8 .dbline 310
02E8 ; if(U8FLAG==1)break;
02E8 80911200 lds R24,_U8FLAG
02EC 8130 cpi R24,1
02EE 09F4 brne L92
02F0 .dbline 310
02F0 2FC0 rjmp L79
02F2 L92:
02F2 .dbline 311
02F2 ; U8T_data_H_temp=U8comdata;
02F2 20900400 lds R2,_U8comdata
02F6 20920900 sts _U8T_data_H_temp,R2
02FA .dbline 312
02FA ; COM();
02FA 73DF rcall _COM
02FC .dbline 313
02FC ; if(U8FLAG==1)break;
02FC 80911200 lds R24,_U8FLAG
0300 8130 cpi R24,1
0302 09F4 brne L94
0304 .dbline 313
0304 25C0 rjmp L79
0306 L94:
0306 .dbline 314
0306 ; U8T_data_L_temp=U8comdata;
0306 20900400 lds R2,_U8comdata
030A 20920800 sts _U8T_data_L_temp,R2
030E .dbline 315
030E ; COM();
030E 69DF rcall _COM
0310 .dbline 316
0310 ; if(U8FLAG==1)break;
0310 80911200 lds R24,_U8FLAG
0314 8130 cpi R24,1
0316 09F4 brne L96
0318 .dbline 316
0318 1BC0 rjmp L79
031A L96:
031A .dbline 317
031A ; U8RH_data_H_temp=U8comdata;
031A 20900400 lds R2,_U8comdata
031E 20920700 sts _U8RH_data_H_temp,R2
0322 .dbline 318
0322 ; COM();
0322 5FDF rcall _COM
0324 .dbline 319
0324 ; if(U8FLAG==1)break;
0324 80911200 lds R24,_U8FLAG
0328 8130 cpi R24,1
032A 09F4 brne L98
032C .dbline 319
032C 11C0 rjmp L79
032E L98:
032E .dbline 320
032E ; U8RH_data_L_temp=U8comdata;
032E 20900400 lds R2,_U8comdata
0332 20920600 sts _U8RH_data_L_temp,R2
0336 .dbline 321
0336 ; COM();
0336 55DF rcall _COM
0338 .dbline 322
0338 ; if(U8FLAG==1)break;
0338 80911200 lds R24,_U8FLAG
033C 8130 cpi R24,1
033E 09F4 brne L100
0340 .dbline 322
0340 07C0 rjmp L79
0342 L100:
0342 .dbline 323
0342 20900400 lds R2,_U8comdata
0346 20920500 sts _U8checkdata_temp,R2
034A .dbline 324
034A 02C0 rjmp L79
034C L78:
034C .dbline 296
034C 9D9B sbis 0x13,5
034E A5CF rjmp L77
0350 L79:
0350 .dbline 327
0350 ; U8checkdata_temp=U8comdata;
0350 ; break;
0350 ; }//while
0350 ; //P2_0=1;
0350 ; COM_IN;
0350 A598 cbi 0x14,5
0352 .dbline 328
0352 ; COM_SET;
0352 AD9A sbi 0x15,5
0354 .dbline 331
0354 ; //数据校验
0354 ;
0354 ; U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
0354 20900800 lds R2,_U8T_data_L_temp
0358 30900900 lds R3,_U8T_data_H_temp
035C 320C add R3,R2
035E 20900700 lds R2,_U8RH_data_H_temp
0362 320C add R3,R2
0364 20900600 lds R2,_U8RH_data_L_temp
0368 320C add R3,R2
036A 30920F00 sts _U8temp,R3
036E .dbline 332
036E ; if(U8temp==U8checkdata_temp)
036E 20900500 lds R2,_U8checkdata_temp
0372 3214 cp R3,R2
0374 A1F4 brne L102
0376 .dbline 333
0376 ; {
0376 .dbline 334
0376 ; U8T_data_H=U8T_data_H_temp;
0376 20900900 lds R2,_U8T_data_H_temp
037A 20920E00 sts _U8T_data_H,R2
037E .dbline 335
037E ; U8T_data_L=U8T_data_L_temp;
037E 20900800 lds R2,_U8T_data_L_temp
0382 20920D00 sts _U8T_data_L,R2
0386 .dbline 336
0386 ; U8RH_data_H=U8RH_data_H_temp;
0386 20900700 lds R2,_U8RH_data_H_temp
038A 20920C00 sts _U8RH_data_H,R2
038E .dbline 337
038E ; U8RH_data_L=U8RH_data_L_temp;
038E 20900600 lds R2,_U8RH_data_L_temp
0392 20920B00 sts _U8RH_data_L,R2
0396 .dbline 338
0396 ; U8checkdata=U8checkdata_temp;
0396 20900500 lds R2,_U8checkdata_temp
039A 20920A00 sts _U8checkdata,R2
039E .dbline 339
039E ; }//fi
039E L102:
039E .dbline 342
039E ;
039E ;
039E ; COM_IN;
039E A598 cbi 0x14,5
03A0 .dbline 343
03A0 ; COM_SET;
03A0 AD9A sbi 0x15,5
03A2 .dbline -2
03A2 L74:
03A2 .dbline 0 ; func end
03A2 0895 ret
03A4 .dbend
03A4 .dbfunc e Display_data _Display_data fV
.even
03A4 _Display_data::
03A4 .dbline -1
03A4 .dbline 347
03A4 ;
03A4 ; }
03A4 ; void Display_data(void)
03A4 ; {
03A4 .dbline 348
03A4 ; if(U8FLAG==1)
03A4 80911200 lds R24,_U8FLAG
03A8 8130 cpi R24,1
03AA 89F4 brne L105
03AC .dbline 349
03AC ; {
03AC .dbline 350
03AC ; PLAY[0] = 12;
03AC 8CE0 ldi R24,12
03AE 80930000 sts _PLAY,R24
03B2 .dbline 351
03B2 ; PLAY[1] = 13;
03B2 8DE0 ldi R24,13
03B4 80930100 sts _PLAY+1,R24
03B8 .dbline 352
03B8 ; PLAY[2] = 13;
03B8 80930200 sts _PLAY+2,R24
03BC .dbline 354
03BC ;
03BC ; PLAY[3] = 12;
03BC 8CE0 ldi R24,12
03BE 80930300 sts _PLAY+3,R24
03C2 .dbline 355
03C2 ; PLAY[4] = 13;
03C2 8DE0 ldi R24,13
03C4 80930400 sts _PLAY+4,R24
03C8 .dbline 356
03C8 ; PLAY[5] = 13;
03C8 80930500 sts _PLAY+5,R24
03CC .dbline 357
03CC ; }//fi
03CC E1C0 rjmp L106
03CE L105:
03CE .dbline 359
03CE ; else
03CE ; {
03CE .dbline 360
03CE ; ReceiveHighByte=U8T_data_H;
03CE 20900E00 lds R2,_U8T_data_H
03D2 3324 clr R3
03D4 30920300 sts _ReceiveHighByte+1,R3
03D8 20920200 sts _ReceiveHighByte,R2
03DC .dbline 361
03DC ; ReceiveHighByte<<=8;
03DC 20900200 lds R2,_ReceiveHighByte
03E0 30900300 lds R3,_ReceiveHighByte+1
03E4 322C mov R3,R2
03E6 2224 clr R2
03E8 30920300 sts _ReceiveHighByte+1,R3
03EC 20920200 sts _ReceiveHighByte,R2
03F0 .dbline 362
03F0 ; ReceiveHighByte|=U8T_data_L;
03F0 20900D00 lds R2,_U8T_data_L
03F4 3324 clr R3
03F6 40900200 lds R4,_ReceiveHighByte
03FA 50900300 lds R5,_ReceiveHighByte+1
03FE 4228 or R4,R2
0400 5328 or R5,R3
0402 50920300 sts _ReceiveHighByte+1,R5
0406 40920200 sts _ReceiveHighByte,R4
040A .dbline 363
040A ; ReceiveLowByte=U8RH_data_H;
040A 20900C00 lds R2,_U8RH_data_H
040E 3324 clr R3
0410 30920100 sts _ReceiveLowByte+1,R3
0414 20920000 sts _ReceiveLowByte,R2
0418 .dbline 364
0418 ; ReceiveLowByte<<=8;
0418 20900000 lds R2,_ReceiveLowByte
041C 30900100 lds R3,_ReceiveLowByte+1
0420 322C mov R3,R2
0422 2224 clr R2
0424 30920100 sts _ReceiveLowByte+1,R3
0428 20920000 sts _ReceiveLowByte,R2
042C .dbline 365
042C ; ReceiveLowByte|=U8RH_data_L;
042C 20900B00 lds R2,_U8RH_data_L
0430 3324 clr R3
0432 40900000 lds R4,_ReceiveLowByte
0436 50900100 lds R5,_ReceiveLowByte+1
043A 4228 or R4,R2
043C 5328 or R5,R3
043E 50920100 sts _ReceiveLowByte+1,R5
0442 40920000 sts _ReceiveLowByte,R4
0446 .dbline 368
0446 ;
0446 ;
0446 ; if(ReceiveHighByte&0x8000)
0446 20900200 lds R2,_ReceiveHighByte
044A 30900300 lds R3,_ReceiveHighByte+1
044E 37FE sbrs R3,7
0450 4DC0 rjmp L112
0452 .dbline 369
0452 ; {
0452 .dbline 370
0452 ; ReceiveHighByte&=0x7fff; //清负数标志
0452 C101 movw R24,R2
0454 9F77 andi R25,127
0456 90930300 sts _ReceiveHighByte+1,R25
045A 80930200 sts _ReceiveHighByte,R24
045E .dbline 371
045E ; if(ReceiveHighByte>=199)
045E 873C cpi R24,199
0460 E0E0 ldi R30,0
0462 9E07 cpc R25,R30
0464 48F0 brlo L114
0466 .dbline 372
0466 ; {
0466 .dbline 373
0466 ; PLAY[3] = 11;
0466 8BE0 ldi R24,11
0468 80930300 sts _PLAY+3,R24
046C .dbline 374
046C ; PLAY[4] = 9;
046C 89E0 ldi R24,9
046E 80930400 sts _PLAY+4,R24
0472 .dbline 375
0472 ; PLAY[5] = 9;
0472 80930500 sts _PLAY+5,R24
0476 .dbline 376
0476 ; }//fi
0476 63C0 rjmp L113
0478 L114:
0478 .dbline 377
0478 ; else if(ReceiveHighByte>=100)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -