📄 toucher2.s
字号:
clr R21
.dbline 432
; temp=(temp<<8)+a[10]; //报警浓度
ldd R2,y+15
mov R21,R20
mov R20,R2
.dbline 433
; print1(temp); //以格式1打印
movw R16,R20
xcall _print1
.dbline 434
; unit_judge(); //浓度单位判断
xcall _unit_judge
.dbline 435
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 437
;
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 438
; cha_print(0xbe,0xaf); //警
ldi R18,175
ldi R16,190
xcall _cha_print
.dbline 439
; cha_print(0xc5,0xa8); //浓
ldi R18,168
ldi R16,197
xcall _cha_print
.dbline 440
; cha_print(0xb6,0xc8); //度
ldi R18,200
ldi R16,182
xcall _cha_print
.dbline 441
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 442
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 446
; // cha_print(0x1b,0x36); //选择字符集1
;
; //报警类型
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 447
; cha_print(0xbe,0xaf); //警
ldi R18,175
ldi R16,190
xcall _cha_print
.dbline 448
; cha_print(0xc0,0xe0); //类
ldi R18,224
ldi R16,192
xcall _cha_print
.dbline 449
; cha_print(0xd0,0xcd); //型
ldi R18,205
ldi R16,208
xcall _cha_print
.dbline 450
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 451
; write_print(0x20); //空格
ldi R16,32
xcall _write_print
.dbline 452
; if(a[8]==0x01)
ldd R24,y+13
cpi R24,1
brne L83
.dbline 453
; {
.dbline 454
; cha_print(0xb5,0xcd); //低
ldi R18,205
ldi R16,181
xcall _cha_print
.dbline 455
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 456
; }
xjmp L84
L83:
.dbline 457
; else if(a[8]==0x02)
ldd R24,y+13
cpi R24,2
brne L86
.dbline 458
; {
.dbline 459
; cha_print(0xb8,0xdf); //高
ldi R18,223
ldi R16,184
xcall _cha_print
.dbline 460
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 461
; }
L86:
L84:
.dbline 462
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 465
;
; //报警时间
; write_print(0x32); //2
ldi R16,50
xcall _write_print
.dbline 466
; write_print(0x30); //0
ldi R16,48
xcall _write_print
.dbline 467
; date_print(a[2]); //年
ldd R16,y+7
xcall _date_print
.dbline 468
; write_print(0x2f); //"/"
ldi R16,47
xcall _write_print
.dbline 469
; date_print(a[3]); //月
ldd R16,y+8
xcall _date_print
.dbline 470
; write_print(0x2f); //"/"
ldi R16,47
xcall _write_print
.dbline 471
; date_print(a[4]); //日
ldd R16,y+9
xcall _date_print
.dbline 472
; write_print(0x20); //" "
ldi R16,32
xcall _write_print
.dbline 473
; date_print(a[5]); //时
ldd R16,y+10
xcall _date_print
.dbline 474
; write_print(0x3a); //":"
ldi R16,58
xcall _write_print
.dbline 475
; date_print(a[6]); //分
ldd R16,y+11
xcall _date_print
.dbline 476
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 479
;
; // cha_print(0x1c,0x26); //设置汉字打印方式
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 480
; cha_print(0xbe,0xaf); //警
ldi R18,175
ldi R16,190
xcall _cha_print
.dbline 481
; cha_print(0xca,0xb1); //时
ldi R18,177
ldi R16,202
xcall _cha_print
.dbline 482
; cha_print(0xbc,0xe4); //间
ldi R18,228
ldi R16,188
xcall _cha_print
.dbline 484
; // cha_print(0x1b,0x36); //选择字符集1
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 485
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 488
;
; //探测器编号
; cha_print(0xcc,0xbd); //探
ldi R18,189
ldi R16,204
xcall _cha_print
.dbline 489
; cha_print(0xb2,0xe2); //测
ldi R18,226
ldi R16,178
xcall _cha_print
.dbline 490
; cha_print(0xc6,0xf7); //器
ldi R18,247
ldi R16,198
xcall _cha_print
.dbline 491
; cha_print(0xb1,0xe0); //编
ldi R18,224
ldi R16,177
xcall _cha_print
.dbline 492
; cha_print(0xba,0xc5); //号
ldi R18,197
ldi R16,186
xcall _cha_print
.dbline 493
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 494
; write_print(0x20); //空格
ldi R16,32
xcall _write_print
.dbline 495
; num_print(a[1]); //打印编号
ldd R16,y+6
xcall _num_print
.dbline 496
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 499
;
; //转换器编号
; cha_print(0xd7,0xaa); //转
ldi R18,170
ldi R16,215
xcall _cha_print
.dbline 500
; cha_print(0xbb,0xbb); //换
ldi R18,187
ldi R16,187
xcall _cha_print
.dbline 501
; cha_print(0xc6,0xf7); //器
ldi R18,247
ldi R16,198
xcall _cha_print
.dbline 502
; cha_print(0xb1,0xe0); //编
ldi R18,224
ldi R16,177
xcall _cha_print
.dbline 503
; cha_print(0xba,0xc5); //号
ldi R18,197
ldi R16,186
xcall _cha_print
.dbline 504
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 505
; write_print(0x20); //空格
ldi R16,32
xcall _write_print
.dbline 506
; num_print(a[0]); //打印编号
ldd R16,y+5
xcall _num_print
.dbline 507
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 508
; }
L80:
.dbline 509
L56:
.dbline 372
inc R22
L58:
.dbline 372
cpi R22,8
brsh X6
xjmp L55
X6:
.dbline 511
; }
; //标题
; kong_print(0x04);
ldi R16,4
xcall _kong_print
.dbline 512
; cha_print(0xb1,0xa8); //报
ldi R18,168
ldi R16,177
xcall _cha_print
.dbline 513
; cha_print(0xbe,0xaf); //警
ldi R18,175
ldi R16,190
xcall _cha_print
.dbline 514
; cha_print(0xbc,0xc7); //记
ldi R18,199
ldi R16,188
xcall _cha_print
.dbline 515
; cha_print(0xc2,0xbc); //录
ldi R18,188
ldi R16,194
xcall _cha_print
.dbline 516
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 517
; cha_print(0x1b,0x4a); //走纸48点
ldi R18,74
ldi R16,27
xcall _cha_print
.dbline 518
; write_print(0x30);
ldi R16,48
xcall _write_print
.dbline -2
L52:
adiw R28,39
xcall pop_gset5
.dbline 0 ; func end
ret
.dbsym r temp 20 i
.dbsym r kkk 22 c
.dbsym r addr_unit 10 i
.dbsym r addr_gas 12 i
.dbsym r temp1 14 i
.dbsym l clarm_buff 21 A[17:17]c
.dbsym l a 5 A[16:16]c
.dbsym l c 38 c
.dbend
.dbfunc e fault_print _fault_print fV
; kkk -> R22
; fault_buff -> y+13
; temp1 -> R10,R11
; a -> y+5
; tt -> R12
.even
_fault_print::
xcall push_gset4
sbiw R28,24
.dbline -1
.dbline 524
; }
;
; /*******************故障记录打印*********************/
;
; void fault_print(void)
; {
.dbline 526
; uchar a[8];
; uchar kkk=0;
clr R22
.dbline 527
; uchar tt=0;
clr R12
.dbline 529
; uchar fault_buff[11];
; uint temp1=0;
clr R10
clr R11
.dbline 531
;
; temp1=guzhangaddr+8; //地址加8
lds R24,_guzhangaddr
lds R25,_guzhangaddr+1
adiw R24,8
movw R10,R24
.dbline 532
; if(temp1==0x7c00) //到头
cpi R24,0
ldi R30,124
cpc R25,R30
brne L96
.dbline 533
; temp1=0x6800 ; //调整
ldi R24,26624
ldi R25,104
movw R10,R24
L96:
.dbline 534
; int_prt();
xcall _int_prt
.dbline 535
; for(kkk=0;kkk<8;kkk++)
clr R22
xjmp L101
L98:
.dbline 536
; {
.dbline 537
; wdr();
xcall _wdr
.dbline 538
; fault_buff[1]= (uchar)(((temp1&0xff00)>>8)) ; //FM24C256片内地址高位字节
movw R24,R10
andi R24,0
mov R24,R25
clr R25
std y+14,R24
.dbline 539
; fault_buff[2]= (uchar)(temp1&0x00ff) ; //FM24C256片内地址低位字节
movw R24,R10
andi R25,0
std y+15,R24
.dbline 540
; EIMSK&=~(1<<INT6);
in R24,0x39
andi R24,191
out 0x39,R24
.dbline 542
; //do
; fhz=I2cRead( SLA2_W,SLA2_R , fault_buff[1],fault_buff[2],8);
ldi R24,8
std y+4,R24
ldd R2,y+15
std y+2,R2
ldd R2,y+14
std y+0,R2
ldi R18,163
ldi R16,162
xcall _I2cRead
sts _fhz,R16
.dbline 545
; //while(fhz==1);
; //EIMSK|=(1<<INT6);
; for(tt=0;tt<8;tt++)
clr R12
xjmp L109
L106:
.dbline 546
ldi R24,<_i2c_rd_buff
ldi R25,>_i2c_rd_buff
mov R30,R12
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
movw R24,R28
adiw R24,5
mov R30,R12
clr R31
add R30,R24
adc R31,R25
std z+0,R2
L107:
.dbline 545
inc R12
L109:
.dbline 545
mov R24,R12
cpi R24,8
brlo L106
.dbline 547
; a[tt]=i2c_rd_buff[tt] ;
; EIMSK|=(1<<INT6);
in R24,0x39
ori R24,64
out 0x39,R24
.dbline 548
; if(temp1==0x7bf8) //到头
movw R24,R10
cpi R24,248
ldi R30,123
cpc R25,R30
brne L110
.dbline 549
; temp1=0x6800 ; //调整
ldi R24,26624
ldi R25,104
movw R10,R24
xjmp L111
L110:
.dbline 551
; else
; temp1=temp1+8 ; //调整
movw R24,R10
adiw R24,8
movw R10,R24
L111:
.dbline 553
;
; if(a[0]==0xff) //如果外部E2中没有数,无操作
ldd R24,y+5
cpi R24,255
brne L112
.dbline 554
; ;
xjmp L113
L112:
.dbline 556
; else
; {
.dbline 559
;
; //故障类型
; kong_print(0x02);
ldi R16,2
xcall _kong_print
.dbline 560
; switch(a[7])
ldd R20,y+12
clr R21
cpi R20,1
ldi R30,0
cpc R21,R30
breq L118
cpi R20,2
ldi R30,0
cpc R21,R30
breq L119
cpi R20,3
ldi R30,0
cpc R21,R30
breq L120
cpi R20,4
ldi R30,0
cpc R21,R30
brne X8
xjmp L121
X8:
cpi R20,5
ldi R30,0
cpc R21,R30
brne X9
xjmp L122
X9:
cpi R20,6
ldi R30,0
cpc R21,R30
brne X10
xjmp L123
X10:
xjmp L114
X7:
.dbline 561
; {
L118:
.dbline 563
; case 1:
; {
.dbline 564
; cha_print(0xca,0xd0); //市
ldi R18,208
ldi R16,202
xcall _cha_print
.dbline 565
; cha_print(0xb5,0xe7); //电
ldi R18,231
ldi R16,181
xcall _cha_print
.dbline 566
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 567
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 568
; }
.dbline 569
; break;
xjmp L115
L119:
.dbline 571
; case 2:
; {
.dbline 572
; cha_print(0xb1,0xb8); //备
ldi R18,184
ldi R16,177
xcall _cha_print
.dbline 573
; cha_print(0xb5,0xe7); //电
ldi R18,231
ldi R16,181
xcall _cha_print
.dbline 574
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 575
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 576
; }
.dbline 577
; break;
xjmp L115
L120:
.dbline 579
; case 3:
; {
.dbline 580
; cha_print(0xb3,0xe4); //充
ldi R18,228
ldi R16,179
xcall _cha_print
.dbline 581
; cha_print(0xb5,0xe7); //电
ldi R18,231
ldi R16,181
xcall _cha_print
.dbline 582
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 583
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 584
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -