📄 toucher.s
字号:
sts _Y2,R24
.dbline 297
; zhuanhuan3(); //将16位数X1的高低位分离
xcall _zhuanhuan3
.dbline 298
; zhuanhuan4(); //将16位数Y1的高低位分离
xcall _zhuanhuan4
.dbline 299
; zhuanhuan5(); //将16位数X2的高低位分离
xcall _zhuanhuan5
.dbline 300
; zhuanhuan6(); //将16位数Y2的高低位分离
xcall _zhuanhuan6
.dbline -2
L12:
.dbline 0 ; func end
ret
.dbend
.dbfunc e xianshi _xianshi fV
; temp1 -> R10,R11
; temp -> y+0
; temp2 -> R12,R13
; temp3 -> R14,R15
; q -> R20
; p -> R22
; num -> y+20
.even
_xianshi::
st -y,r17
st -y,r16
xcall push_gset5
sbiw R28,10
.dbline -1
.dbline 311
; }
;
; /************************************************************************************/
; /****************************************显示****************************************/
; /************************************************************************************/
;
;
; /***********************************************************************/
; /**************显示变量****************/
; void xianshi(uint num)
; {
.dbline 312
; uchar p=0,q=0;
clr R22
.dbline 312
clr R20
.dbline 314
; uint temp[5];
; uint temp1=0,temp2=0;
clr R10
clr R11
.dbline 314
clr R12
clr R13
.dbline 315
; uint temp3=0;
clr R14
clr R15
.dbline 316
; temp2=num;
ldd R12,y+20
ldd R13,y+21
.dbline 317
; temp3=10000;
ldi R24,10000
ldi R25,39
movw R14,R24
.dbline 318
; for(p=0;p<5;p++)
xjmp L17
L14:
.dbline 319
.dbline 320
movw R18,R14
movw R16,R12
xcall div16u
movw R10,R16
.dbline 321
movw R18,R14
movw R16,R12
xcall mod16u
movw R12,R16
.dbline 322
ldi R18,10
ldi R19,0
movw R16,R14
xcall div16u
movw R14,R16
.dbline 323
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
add R30,R24
adc R31,R25
movw R24,R10
adiw R24,48
std z+1,R25
std z+0,R24
.dbline 324
L15:
.dbline 318
inc R22
L17:
.dbline 318
cpi R22,5
brlo L14
.dbline 326
; {
; temp1=temp2/temp3;
; temp2=temp2%temp3;
; temp3=temp3/10;
; temp[p]=temp1+0x30; //将要显示的数放在temp数组
; }
; //功能: 将一个uint型的数显示出来,但是第一个非零数字前的零要省略
; for(p=0;p<4;p++)
clr R22
xjmp L21
L18:
.dbline 327
; {
.dbline 328
; if(temp[p]!=0x30)
ldi R24,2
mul R24,R22
movw R30,R0
movw R24,R28
add R30,R24
adc R31,R25
ldd R24,z+0
ldd R25,z+1
cpi R24,48
ldi R30,0
cpc R25,R30
breq L22
.dbline 329
; break;
xjmp L20
L22:
.dbline 330
L19:
.dbline 326
inc R22
L21:
.dbline 326
cpi R22,4
brlo L18
L20:
.dbline 331
; }
; wdr();
xcall _wdr
.dbline 332
; for(q=0;q<p;q++)
clr R20
xjmp L27
L24:
.dbline 333
.dbline 334
ldi R18,32
ldi R16,49
xcall _xszf
.dbline 335
L25:
.dbline 332
inc R20
L27:
.dbline 332
cp R20,R22
brlo L24
.dbline 336
; {
; xszf(0x31,0x20); //如果开始的数为零,则省略
; }
; for(q=p;q<5;q++)
mov R20,R22
xjmp L31
L28:
.dbline 337
.dbline 338
ldi R24,2
mul R24,R20
movw R30,R0
movw R24,R28
add R30,R24
adc R31,R25
ldd R18,z+0
ldi R16,49
xcall _xszf
.dbline 339
L29:
.dbline 336
inc R20
L31:
.dbline 336
cpi R20,5
brlo L28
.dbline -2
L13:
adiw R28,10
xcall pop_gset5
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r temp1 10 i
.dbsym l temp 0 A[10:5]i
.dbsym r temp2 12 i
.dbsym r temp3 14 i
.dbsym r q 20 c
.dbsym r p 22 c
.dbsym l num 20 i
.dbend
.dbfunc e menu _menu fV
.even
_menu::
sbiw R28,11
.dbline -1
.dbline 343
; {
; xszf(0x31,temp[q]); //显示出部位零的数
; }
; }
; /*********************************************************/
; void menu(void) //菜单
; {
.dbline 344
; wdr();
xcall _wdr
.dbline 345
; juxing(0xe0,0x00,0x04,0x00,0x00,0x50,0x00,0x2a); //(0x00,0x00,0x50,0x2a)
ldi R24,42
std y+10,R24
clr R2
std y+8,R2
ldi R24,80
std y+6,R24
std y+4,R2
std y+2,R2
ldi R24,4
std y+0,R24
clr R18
ldi R16,224
xcall _juxing
.dbline 346
; juxing(0xe0,0xa0,0x04,0x00,0x00,0xf0,0x00,0x2a); //(0xa0,0x00,0xf0,0x2a)
ldi R24,42
std y+10,R24
clr R2
std y+8,R2
ldi R24,240
std y+6,R24
std y+4,R2
std y+2,R2
ldi R24,4
std y+0,R24
ldi R18,160
ldi R16,224
xcall _juxing
.dbline 347
; juxing(0xe1,0x40,0x04,0x00,0x01,0x90,0x00,0x2a); //(0x140,0x00,0x190,0x2a)
ldi R24,42
std y+10,R24
clr R2
std y+8,R2
ldi R24,144
std y+6,R24
ldi R24,1
std y+4,R24
std y+2,R2
ldi R24,4
std y+0,R24
ldi R18,64
ldi R16,225
xcall _juxing
.dbline 348
; xtzb(0x00,0x0f,0x00,0x0d);
ldi R24,13
std y+2,R24
clr R2
std y+0,R2
ldi R18,15
clr R16
xcall _xtzb
.dbline 349
; fdbs(0x04);
ldi R16,4
xcall _fdbs
.dbline 350
; xszf(0x34,0x20); //查
ldi R18,32
ldi R16,52
xcall _xszf
.dbline 351
; xszf(0x34,0x21); //看
ldi R18,33
ldi R16,52
xcall _xszf
.dbline 352
; fdbs(0x14);
ldi R16,20
xcall _fdbs
.dbline 353
; xszf(0x31,0x28);
ldi R18,40
ldi R16,49
xcall _xszf
.dbline 354
; xszf(0x31,0x58);
ldi R18,88
ldi R16,49
xcall _xszf
.dbline 355
; xszf(0x31,0x29);
ldi R18,41
ldi R16,49
xcall _xszf
.dbline 356
; xtzb(0x00,0xaf,0x00,0x0d);
ldi R24,13
std y+2,R24
clr R2
std y+0,R2
ldi R18,175
clr R16
xcall _xtzb
.dbline 357
; fdbs(0x04);
ldi R16,4
xcall _fdbs
.dbline 358
; xszf(0x34,0x22); //设
ldi R18,34
ldi R16,52
xcall _xszf
.dbline 359
; xszf(0x34,0x23); //置
ldi R18,35
ldi R16,52
xcall _xszf
.dbline 360
; wdr();
xcall _wdr
.dbline 361
; fdbs(0x14);
ldi R16,20
xcall _fdbs
.dbline 362
; xszf(0x31,0x28);
ldi R18,40
ldi R16,49
xcall _xszf
.dbline 363
; xszf(0x31,0x59);
ldi R18,89
ldi R16,49
xcall _xszf
.dbline 364
; xszf(0x31,0x29);
ldi R18,41
ldi R16,49
xcall _xszf
.dbline 365
; xtzb(0x01,0x4f,0x00,0x0d);
ldi R24,13
std y+2,R24
clr R2
std y+0,R2
ldi R18,79
ldi R16,1
xcall _xtzb
.dbline 366
; fdbs(0x04);
ldi R16,4
xcall _fdbs
.dbline 367
; xszf(0x34,0x24); //控
ldi R18,36
ldi R16,52
xcall _xszf
.dbline 368
; xszf(0x34,0x25); //制
ldi R18,37
ldi R16,52
xcall _xszf
.dbline 369
; fdbs(0x14);
ldi R16,20
xcall _fdbs
.dbline 370
; xszf(0x31,0x28);
ldi R18,40
ldi R16,49
xcall _xszf
.dbline 371
; xszf(0x31,0x5a);
ldi R18,90
ldi R16,49
xcall _xszf
.dbline 372
; xszf(0x31,0x29);
ldi R18,41
ldi R16,49
xcall _xszf
.dbline -2
L32:
adiw R28,11
.dbline 0 ; func end
ret
.dbend
.dbfunc e kong _kong fV
; temp -> R20,R21
; temp2 -> R22
; temp1 -> R10
.even
_kong::
xcall push_gset3
mov R22,R18
mov R10,R16
.dbline -1
.dbline 376
; }
;
; void kong(uchar temp1,uchar temp2) //空格
; {
.dbline 377
; uint temp=0;
clr R20
clr R21
.dbline 378
; for(temp=0;temp<temp2;temp++)
xjmp L37
L34:
.dbline 379
; {
.dbline 380
; if(temp1==0x33) //如果是字符集3中的空格
mov R24,R10
cpi R24,51
brne L38
.dbline 381
; fdbs(0x04); //不放大
ldi R16,4
xcall _fdbs
xjmp L39
L38:
.dbline 382
; else if(temp1==0x31) //如果是字符集1中的空格
mov R24,R10
cpi R24,49
brne L40
.dbline 383
; fdbs(0x14); //放大1倍
ldi R16,20
xcall _fdbs
xjmp L41
L40:
.dbline 385
; else
; NOP();
nop
L41:
L39:
.dbline 386
ldi R18,32
mov R16,R10
xcall _xszf
.dbline 387
xcall _wdr
.dbline 388
L35:
.dbline 378
subi R20,255 ; offset = 1
sbci R21,255
L37:
.dbline 378
mov R2,R22
clr R3
cp R20,R2
cpc R21,R3
brlo L34
.dbline -2
L33:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r temp 20 i
.dbsym r temp2 22 c
.dbsym r temp1 10 c
.dbend
.dbfunc e bank1 _bank1 fV
.even
_bank1::
.dbline -1
.dbline 392
; xszf(temp1,0x20); //显示空格
; wdr();
; }
; }
; /****************列表界面的第一行显示***************/
; void bank1(void)
; {
.dbline 393
; wdr();
xcall _wdr
.dbline 394
; xszf(0x34,0x26); //编
ldi R18,38
ldi R16,52
xcall _xszf
.dbline 395
; xszf(0x34,0x27); //号
ldi R18,39
ldi R16,52
xcall _xszf
.dbline 396
; kong(0x33,0x02);
ldi R18,2
ldi R16,51
xcall _kong
.dbline 397
; xszf(0x34,0x2a); //浓
ldi R18,42
ldi R16,52
xcall _xszf
.dbline 398
; xszf(0x34,0x2b); //度
ldi R18,43
ldi R16,52
xcall _xszf
.dbline 399
; wdr();
xcall _wdr
.dbline 400
; kong(0x33,0x02);
ldi R18,2
ldi R16,51
xcall _kong
.dbline 401
; xszf(0x34,0x34); //状
ldi R18,52
ldi R16,52
xcall _xszf
.dbline 402
; xszf(0x34,0x35); //态
ldi R18,53
ldi R16,52
xcall _xszf
.dbline -2
L42:
.dbline 0 ; func end
ret
.dbend
.dbfunc e bank2 _bank2 fV
.even
_bank2::
.dbline -1
.dbline 406
; }
; /****************报警界面的第一行显示**************/
; void bank2(void)
; {
.dbline 407
; xszf(0x34,0xd6); //转
ldi R18,214
ldi R16,52
xcall _xszf
.dbline 408
; xszf(0x34,0xd7); //换
ldi R18,215
ldi R16,52
xcall _xszf
.dbline 409
; xszf(0x34,0xd8); //器
ldi R18,216
ldi R16,52
xcall _xszf
.dbline 410
; kong(0x33,0x01);
ldi R18,1
ldi R16,51
xcall _kong
.dbline 411
; xszf(0x34,0x85); //探
ldi R18,133
ldi R16,52
xcall _xszf
.dbline 412
; xszf(0x34,0x86); //测
ldi R18,134
ldi R16,52
xcall _xszf
.dbline 413
; xszf(0x34,0x84); //器
ldi R18,132
ldi R16,52
xcall _xszf
.dbline 414
; kong(0x33,0x01);
ldi R18,1
ldi R16,51
xcall _kong
.dbline 415
; xszf(0x34,0x3f); //报
ldi R18,63
ldi R16,52
xcall _xszf
.dbline 416
; xszf(0x34,0x40); //警
ldi R18,64
ldi R16,52
xcall _xszf
.dbline 417
; xszf(0x34,0x53); //时
ldi R18,83
ldi R16,52
xcall _xszf
.dbline 418
; xszf(0x34,0x54); //间
ldi R18,84
ldi R16,52
xcall _xszf
.dbline 419
; kong(0x33,0x04);
ldi R18,4
ldi R16,51
xcall _kong
.dbline 420
; xszf(0x34,0x3f); //报
ldi R18,63
ldi R16,52
xcall _xszf
.dbline 421
; xszf(0x34,0x40); //警
ldi R18,64
ldi R16,52
xcall _xszf
.dbline 422
; xszf(0x34,0x55); //类
ldi R18,85
ldi R16,52
xcall _xszf
.dbline 423
; xszf(0x34,0x56); //型
ldi R18,86
ldi R16,52
xcall _xszf
.dbline 424
; kong(0x33,0x01);
ldi R18,1
ldi R16,51
xcall _kong
.dbline 425
; xszf(0x34,0x3f); //报
ldi R18,63
ldi R16,52
xcall _xszf
.dbline 426
; xszf(0x34,0x40); //警
ldi R18,64
ldi R16,52
xcall _xszf
.dbline 427
; xszf(0x34,0x2a); //浓
ldi R18,42
ldi R16,52
xcall _xszf
.dbline 428
; xszf(0x34,0x2b); //度
ldi R18,43
ldi R16,52
xcall _xszf
.dbline 429
; kong(0x33,0x01);
ldi R18,1
ldi R16,51
xcall _kong
.dbline 430
; xszf(0x34,0x28); //气
ldi R18,40
ldi R16,52
xcall _xszf
.dbline 431
; xszf(0x34,0x29); //体
ldi R18,41
ldi R16,52
xcall _xszf
.dbline 432
; xszf(0x34,0x55); //类
ldi R18,85
ldi R16,52
xcall _xszf
.dbline 433
; xszf(0x34,0x56); //型
ldi R18,86
ldi R16,52
xcall _xszf
.dbline -2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -