📄 toucher2.s
字号:
; }
.dbline 585
; break;
xjmp L115
L121:
.dbline 587
; case 4:
; {
.dbline 588
; cha_print(0xcd,0xa8); //通
ldi R18,168
ldi R16,205
xcall _cha_print
.dbline 589
; cha_print(0xd1,0xb6); //讯
ldi R18,182
ldi R16,209
xcall _cha_print
.dbline 590
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 591
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 592
; }
.dbline 593
; break;
xjmp L115
L122:
.dbline 595
; case 5:
; {
.dbline 596
; cha_print(0xb4,0xab); //传
ldi R18,171
ldi R16,180
xcall _cha_print
.dbline 597
; cha_print(0xb8,0xd0); //感
ldi R18,208
ldi R16,184
xcall _cha_print
.dbline 598
; cha_print(0xc6,0xf7); //器
ldi R18,247
ldi R16,198
xcall _cha_print
.dbline 599
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 600
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 601
; }
.dbline 602
; break;
xjmp L115
L123:
.dbline 604
; case 6:
; {
.dbline 605
; cha_print(0xc1,0xaa); //联
ldi R18,170
ldi R16,193
xcall _cha_print
.dbline 606
; cha_print(0xb6,0xaf); //动
ldi R18,175
ldi R16,182
xcall _cha_print
.dbline 607
; cha_print(0xc4,0x76); //设
ldi R18,118
ldi R16,196
xcall _cha_print
.dbline 608
; cha_print(0xbf,0x77); //备
ldi R18,119
ldi R16,191
xcall _cha_print
.dbline 609
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 610
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 611
; }
.dbline 612
; break;
L114:
L115:
.dbline 614
; }
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 616
;
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 617
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 618
; cha_print(0xc0,0xe0); //类
ldi R18,224
ldi R16,192
xcall _cha_print
.dbline 619
; cha_print(0xd0,0xcd); //型
ldi R18,205
ldi R16,208
xcall _cha_print
.dbline 620
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 621
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 626
;
;
;
; //故障时间
; write_print(0x32); //2
ldi R16,50
xcall _write_print
.dbline 627
; write_print(0x30); //0
ldi R16,48
xcall _write_print
.dbline 628
; date_print(a[2]); //年
ldd R16,y+7
xcall _date_print
.dbline 629
; write_print(0x2f); //"/"
ldi R16,47
xcall _write_print
.dbline 630
; date_print(a[3]); //月
ldd R16,y+8
xcall _date_print
.dbline 631
; write_print(0x2f); //"/"
ldi R16,47
xcall _write_print
.dbline 632
; date_print(a[4]); //日
ldd R16,y+9
xcall _date_print
.dbline 633
; write_print(0x20); //" "
ldi R16,32
xcall _write_print
.dbline 634
; date_print(a[5]); //时
ldd R16,y+10
xcall _date_print
.dbline 635
; write_print(0x3a); //":"
ldi R16,58
xcall _write_print
.dbline 636
; date_print(a[6]); //分
ldd R16,y+11
xcall _date_print
.dbline 637
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 641
;
;
; // cha_print(0x1c,0x26); //设置汉字打印方式
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 642
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 643
; cha_print(0xca,0xb1); //时
ldi R18,177
ldi R16,202
xcall _cha_print
.dbline 644
; cha_print(0xbc,0xe4); //间
ldi R18,228
ldi R16,188
xcall _cha_print
.dbline 646
; // cha_print(0x1b,0x36); //选择字符集1
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 647
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 651
;
;
; //探测器编号
; cha_print(0xcc,0xbd); //探
ldi R18,189
ldi R16,204
xcall _cha_print
.dbline 652
; cha_print(0xb2,0xe2); //测
ldi R18,226
ldi R16,178
xcall _cha_print
.dbline 653
; cha_print(0xc6,0xf7); //器
ldi R18,247
ldi R16,198
xcall _cha_print
.dbline 654
; cha_print(0xb1,0xe0); //编
ldi R18,224
ldi R16,177
xcall _cha_print
.dbline 655
; cha_print(0xba,0xc5); //号
ldi R18,197
ldi R16,186
xcall _cha_print
.dbline 656
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 657
; write_print(0x20); //空格
ldi R16,32
xcall _write_print
.dbline 658
; num_print(a[1]); //打印编号
ldd R16,y+6
xcall _num_print
.dbline 659
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 663
;
;
; //转换器编号
; cha_print(0xd7,0xaa); //转
ldi R18,170
ldi R16,215
xcall _cha_print
.dbline 664
; cha_print(0xbb,0xbb); //换
ldi R18,187
ldi R16,187
xcall _cha_print
.dbline 665
; cha_print(0xc6,0xf7); //器
ldi R18,247
ldi R16,198
xcall _cha_print
.dbline 666
; cha_print(0xb1,0xe0); //编
ldi R18,224
ldi R16,177
xcall _cha_print
.dbline 667
; cha_print(0xba,0xc5); //号
ldi R18,197
ldi R16,186
xcall _cha_print
.dbline 668
; write_print(0x3a); //:
ldi R16,58
xcall _write_print
.dbline 669
; write_print(0x20); //空格
ldi R16,32
xcall _write_print
.dbline 670
; num_print(a[0]); //打印编号
ldd R16,y+5
xcall _num_print
.dbline 671
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 672
; }
L113:
.dbline 673
L99:
.dbline 535
inc R22
L101:
.dbline 535
cpi R22,8
brsh X11
xjmp L98
X11:
.dbline 675
; }
; //标题
; kong_print(0x04);
ldi R16,4
xcall _kong_print
.dbline 676
; cha_print(0xb9,0xca); //故
ldi R18,202
ldi R16,185
xcall _cha_print
.dbline 677
; cha_print(0xd5,0xcf); //障
ldi R18,207
ldi R16,213
xcall _cha_print
.dbline 678
; cha_print(0xbc,0xc7); //记
ldi R18,199
ldi R16,188
xcall _cha_print
.dbline 679
; cha_print(0xc2,0xbc); //录
ldi R18,188
ldi R16,194
xcall _cha_print
.dbline 680
; write_print(0x0d); //换行
ldi R16,13
xcall _write_print
.dbline 681
; cha_print(0x1b,0x4a); //走纸48点
ldi R18,74
ldi R16,27
xcall _cha_print
.dbline 682
; write_print(0x30);
ldi R16,48
xcall _write_print
.dbline -2
L95:
adiw R28,24
xcall pop_gset4
.dbline 0 ; func end
ret
.dbsym r kkk 22 c
.dbsym l fault_buff 13 A[11:11]c
.dbsym r temp1 10 i
.dbsym l a 5 A[8:8]c
.dbsym r tt 12 c
.dbend
.dbfunc e opclo_print _opclo_print fV
; temp -> R20
; kkk -> R22
; onoffbuff -> y+21
; temp1 -> R10,R11
; a -> y+5
; c -> R12
.even
_opclo_print::
xcall push_gset4
sbiw R28,32
.dbline -1
.dbline 688
; }
;
; /********************开关机记录打印**********************/
;
; void opclo_print(void)
; {
.dbline 689
; uchar kkk=0;
clr R22
.dbline 691
; uchar a[16];
; uchar c=0;
clr R12
.dbline 693
; uchar onoffbuff[11]; //从外部E2取开关机记录
; uint temp1=0;
clr R10
clr R11
.dbline 694
; uchar temp=0;
clr R20
.dbline 696
;
; temp=num_open-1;
lds R20,_num_open
subi R20,1
.dbline 697
; temp1=addre2+16;
lds R24,_addre2
lds R25,_addre2+1
adiw R24,16
movw R10,R24
.dbline 698
; if(temp1==0x0400) //到头
cpi R24,0
ldi R30,4
cpc R25,R30
brne L131
.dbline 699
; temp1=0x0000 ; //调整
clr R10
clr R11
L131:
.dbline 700
; int_prt();
xcall _int_prt
.dbline 701
; for(kkk=0;kkk<8;kkk++)
clr R22
xjmp L136
L133:
.dbline 702
; {
.dbline 703
; wdr();
xcall _wdr
.dbline 704
; onoffbuff[1]= (uchar)((temp1>>8)&0x00ff ) ; //FM24C256片内地址高位字节
movw R24,R10
mov R24,R25
clr R25
andi R25,0
std y+22,R24
.dbline 705
; onoffbuff[2]= (uchar)(temp1&0x00ff) ; //FM24C256片内地址低位字节
movw R24,R10
andi R25,0
std y+23,R24
.dbline 706
; EIMSK&=~(1<<INT6);
in R24,0x39
andi R24,191
out 0x39,R24
.dbline 708
; //do
; fhz=I2cRead( SLA2_W,SLA2_R , onoffbuff[1],onoffbuff[2],8);
ldi R24,8
std y+4,R24
ldd R2,y+23
std y+2,R2
ldd R2,y+22
std y+0,R2
ldi R18,163
ldi R16,162
xcall _I2cRead
sts _fhz,R16
.dbline 711
; //while(fhz==1);
; //;
; for(c=0;c<8;c++)
clr R12
xjmp L144
L141:
.dbline 712
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
L142:
.dbline 711
inc R12
L144:
.dbline 711
mov R24,R12
cpi R24,8
brlo L141
.dbline 713
; a[c]=i2c_rd_buff[c] ; //本次开机
; EIMSK|=(1<<INT6);
in R24,0x39
ori R24,64
out 0x39,R24
.dbline 714
; if(temp1==0x0000) //到头
tst R10
brne L145
tst R11
brne L145
X12:
.dbline 715
; temp1=0x03f8 ; //调整到关机
ldi R24,1016
ldi R25,3
movw R10,R24
xjmp L146
L145:
.dbline 717
; else
; temp1=temp1-8 ; //调整到关机
movw R24,R10
sbiw R24,8
movw R10,R24
L146:
.dbline 719
;
; onoffbuff[1]= (uchar)((temp1>>8)&0x00ff ) ; //FM24C256片内地址高位字节
movw R24,R10
mov R24,R25
clr R25
andi R25,0
std y+22,R24
.dbline 720
; onoffbuff[2]= (uchar)(temp1&0x00ff) ; //FM24C256片内地址低位字节
movw R24,R10
andi R25,0
std y+23,R24
.dbline 721
; EIMSK&=~(1<<INT6);
in R24,0x39
andi R24,191
out 0x39,R24
.dbline 723
; //do
; fhz=I2cRead( SLA2_W,SLA2_R , onoffbuff[1],onoffbuff[2],8);
ldi R24,8
std y+4,R24
ldd R2,y+23
std y+2,R2
ldd R2,y+22
std y+0,R2
ldi R18,163
ldi R16,162
xcall _I2cRead
sts _fhz,R16
.dbline 726
; //while(fhz==1);
;
; for(c=0;c<8;c++)
clr R12
xjmp L154
L151:
.dbline 727
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,13
mov R30,R12
clr R31
add R30,R24
adc R31,R25
std z+0,R2
L152:
.dbline 726
inc R12
L154:
.dbline 726
mov R24,R12
cpi R24,8
brlo L151
.dbline 728
; a[c+8]=i2c_rd_buff[c] ; //本次开机
; EIMSK|=(1<<INT6);
in R24,0x39
ori R24,64
out 0x39,R24
.dbline 729
; if(temp1>=0x03e8)
movw R24,R10
cpi R24,232
ldi R30,3
cpc R25,R30
brlo L156
.dbline 730
; temp1=0x0010+24-0x0400;
ldi R24,-984
ldi R25,-4
movw R10,R24
xjmp L157
L156:
.dbline 732
; else
; temp1=temp1+24 ; //调整到开机
movw R24,R10
adiw R24,24
movw R10,R24
L157:
.dbline 738
;
; //addre2lo= (uchar) (addre2&0x00ff) ; //FM24C256片内地址低位字节
; // addre2hi= (uchar) ((addre2>>8)&0x00ff ) ; //FM24C256片内地址高位字节
;
; //时间数组位置调整
; for(c=3;c<6;c++)
ldi R24,3
mov R12,R24
xjmp L161
L158:
.dbline 739
movw R24,R28
adiw R24,6
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -