📄 main.s
字号:
sts _dipcount,R24
.dbline 483
; SPFC=5;
ldi R24,5
sts _SPFC,R24
.dbline 484
; minu30=0;
clr R2
sts _minu30,R2
.dbline 485
; minu15=0; //有按过按钮倒计时重新计时
sts _minu15,R2
.dbline 486
; }
.dbline 487
; }
rjmp L172
L171:
.dbline 489
; else //按了清除键
; {
.dbline 490
; if((datas[0]==data[0])&&(datas[1]==data[1]))
lds R2,_data
lds R3,_datas
cp R3,R2
brne L206
lds R2,_data+1
lds R3,_datas+1
cp R3,R2
brne L206
.dbline 491
; {
.dbline 492
; datas[0]=datas[1]=0;
clr R2
sts _datas+1,R2
sts _datas,R2
.dbline 493
; dipdata[3]=dipdata[4]=dipdata[5]=0;
sts _dipdata+5,R2
sts _dipdata+4,R2
sts _dipdata+3,R2
.dbline 494
; }
L206:
.dbline 495
; if((datas[2]==data[0])&&(datas[3]==data[1]))
lds R2,_data
lds R3,_datas+2
cp R3,R2
brne L214
lds R2,_data+1
lds R3,_datas+3
cp R3,R2
brne L214
.dbline 496
; {
.dbline 497
; datas[2]=datas[3]=0;
clr R2
sts _datas+3,R2
sts _datas+2,R2
.dbline 498
; }
L214:
.dbline 499
; if((datas[4]==data[0])&&(datas[5]==data[1]))
lds R2,_data
lds R3,_datas+4
cp R3,R2
brne L221
lds R2,_data+1
lds R3,_datas+5
cp R3,R2
brne L221
.dbline 500
; {
.dbline 501
; datas[4]=datas[5]=0;
clr R2
sts _datas+5,R2
sts _datas+4,R2
.dbline 502
; }
L221:
.dbline 503
; if((datas[6]==data[0])&&(datas[7]==data[1]))
lds R2,_data
lds R3,_datas+6
cp R3,R2
brne L228
lds R2,_data+1
lds R3,_datas+7
cp R3,R2
brne L228
.dbline 504
; {
.dbline 505
; datas[6]=datas[7]=0;
clr R2
sts _datas+7,R2
sts _datas+6,R2
.dbline 506
; }
L228:
.dbline 507
; if((datas[6]==0)&&(datas[5]==0)&&(datas[4]==0)&&(datas[3]==0)&&(datas[2]==0)&&(datas[1]==0)&&(datas[0]==0))
lds R2,_datas+6
tst R2
brne L235
lds R2,_datas+5
tst R2
brne L235
lds R2,_datas+4
tst R2
brne L235
lds R2,_datas+3
tst R2
brne L235
lds R2,_datas+2
tst R2
brne L235
lds R2,_datas+1
tst R2
brne L235
lds R2,_datas
tst R2
brne L235
.dbline 508
; {
.dbline 509
; dipdata[0]=dipdata[1]=dipdata[2]=0;
clr R2
sts _dipdata+2,R2
sts _dipdata+1,R2
sts _dipdata,R2
.dbline 510
; }
L235:
.dbline 511
; SPFC=1;
ldi R24,1
sts _SPFC,R24
.dbline 512
; }
L172:
.dbline 513
; dipdata[5]|=0x80; //电源LED
lds R24,_dipdata+5
ori R24,128
sts _dipdata+5,R24
.dbline 514
; }
L169:
.dbline 515
; DECODER_FLAG_L;
lds R24,_flag
andi R24,251
sts _flag,R24
.dbline 516
; DECODER_EN_H;//开RF接收数据
ori R24,2
sts _flag,R24
.dbline 517
; }
L167:
.dbline 518
; tr=key_1();
rcall _key_1
mov R10,R16
clr R11
.dbline 519
; if(tr==2)
movw R24,R10
cpi R24,2
ldi R30,0
cpc R25,R30
brne L246
.dbline 520
; {
.dbline 521
; set_led();
rcall _set_led
.dbline 522
; }
L246:
.dbline 524
; //被挤出的三个号码在上一层数码管显示 三秒一次更新
; if(flagh&0x02)
lds R2,_flagh
sbrs R2,1
rjmp L248
.dbline 525
; {
.dbline 526
; sec0=3;
ldi R24,3
sts _sec0,R24
.dbline 527
; flagh &=~0x02;
mov R24,R2
andi R24,253
sts _flagh,R24
.dbline 528
; switch(dipcount) //显示计数器
lds R20,_dipcount
clr R21
cpi R20,1
ldi R30,0
cpc R21,R30
breq L253
cpi R20,2
ldi R30,0
cpc R21,R30
brne X13
rjmp L268
X13:
cpi R20,3
ldi R30,0
cpc R21,R30
brne X14
rjmp L283
X14:
rjmp L251
X9:
.dbline 529
; {
L253:
.dbline 530
; case 1: if((datas[6]!=0)||(datas[7]!=0)) //没有数据不替换显示
lds R2,_datas+6
tst R2
brne L258
lds R2,_datas+7
tst R2
brne X15
rjmp L254
X15:
L258:
.dbline 531
; {
.dbline 532
; data[0]=datas[6];
lds R2,_datas+6
sts _data,R2
.dbline 533
; data[1]=datas[7];
lds R2,_datas+7
sts _data+1,R2
.dbline 534
; ar=code_comp(); //对照地址
rcall _code_comp
mov R22,R16
clr R23
.dbline 535
; if(ar<100)
cpi R22,100
ldi R30,0
cpc R23,R30
brlo X16
rjmp L255
X16:
.dbline 536
; {
.dbline 537
; j=(ar*4)+2;
ldi R16,4
ldi R17,0
movw R18,R22
rcall empy16s
movw R24,R16
adiw R24,2
sts _j,R24
.dbline 538
; ar=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R22,R16
clr R23
.dbline 539
; j++;
lds R24,_j
subi R24,255 ; addi 1
sts _j,R24
.dbline 540
; tr=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R10,R16
clr R11
.dbline 541
; dipdata[0]=diptable[ar];
ldi R24,<_diptable
ldi R25,>_diptable
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata,R30
.dbline 542
; ar=(tr&0xf0)>>4;
movw R22,R10
andi R22,240
andi R23,0
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
.dbline 543
; dipdata[1]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+1,R30
.dbline 544
; ar=(tr&0x0f);
movw R22,R10
andi R22,15
andi R23,0
.dbline 545
; dipdata[2]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+2,R30
.dbline 546
; dipdata[0]|=0x80;
lds R24,_dipdata
ori R24,128
sts _dipdata,R24
.dbline 547
; dipdata[1]&=~0x80;
lds R24,_dipdata+1
andi R24,127
sts _dipdata+1,R24
.dbline 548
; dipdata[2]&=~0x80;
mov R24,R30
andi R24,127
sts _dipdata+2,R24
.dbline 549
; }
.dbline 550
; }
rjmp L255
L254:
.dbline 551
; else flagh |=BIT(1);
lds R24,_flagh
ori R24,2
sts _flagh,R24
L255:
.dbline 552
; dipcount=2;
ldi R24,2
sts _dipcount,R24
.dbline 553
; break;
rjmp L251
L268:
.dbline 554
; case 2: if((datas[4]!=0)||(datas[5]!=0)) //没有数据不替换显示
lds R2,_datas+4
tst R2
brne L273
lds R2,_datas+5
tst R2
brne X17
rjmp L269
X17:
L273:
.dbline 555
; {
.dbline 556
; data[0]=datas[4];
lds R2,_datas+4
sts _data,R2
.dbline 557
; data[1]=datas[5];
lds R2,_datas+5
sts _data+1,R2
.dbline 558
; ar=code_comp(); //对照地址
rcall _code_comp
mov R22,R16
clr R23
.dbline 559
; if(ar<100)
cpi R22,100
ldi R30,0
cpc R23,R30
brlo X18
rjmp L270
X18:
.dbline 560
; {
.dbline 561
; j=(ar*4)+2;
ldi R16,4
ldi R17,0
movw R18,R22
rcall empy16s
movw R24,R16
adiw R24,2
sts _j,R24
.dbline 562
; ar=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R22,R16
clr R23
.dbline 563
; j++;
lds R24,_j
subi R24,255 ; addi 1
sts _j,R24
.dbline 564
; tr=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R10,R16
clr R11
.dbline 565
; dipdata[0]=diptable[ar];
ldi R24,<_diptable
ldi R25,>_diptable
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata,R30
.dbline 566
; ar=(tr&0xf0)>>4;
movw R22,R10
andi R22,240
andi R23,0
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
.dbline 567
; dipdata[1]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+1,R30
.dbline 568
; ar=(tr&0x0f);
movw R22,R10
andi R22,15
andi R23,0
.dbline 569
; dipdata[2]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+2,R30
.dbline 570
; dipdata[1]|=0x80;
lds R24,_dipdata+1
ori R24,128
sts _dipdata+1,R24
.dbline 571
; dipdata[2]&=~0x80;
mov R24,R30
andi R24,127
sts _dipdata+2,R24
.dbline 572
; dipdata[0]&=~0x80;
lds R24,_dipdata
andi R24,127
sts _dipdata,R24
.dbline 573
; }
.dbline 574
; }
rjmp L270
L269:
.dbline 575
; else flagh |=BIT(1);
lds R24,_flagh
ori R24,2
sts _flagh,R24
L270:
.dbline 576
; dipcount=3;
ldi R24,3
sts _dipcount,R24
.dbline 577
; break;
rjmp L251
L283:
.dbline 578
; case 3: if((datas[2]!=0)||(datas[3]!=0)) //没有数据不替换显示
lds R2,_datas+2
tst R2
brne L288
lds R2,_datas+3
tst R2
brne X19
rjmp L284
X19:
L288:
.dbline 579
; {
.dbline 580
; data[0]=datas[2];
lds R2,_datas+2
sts _data,R2
.dbline 581
; data[1]=datas[3];
lds R2,_datas+3
sts _data+1,R2
.dbline 582
; ar=code_comp(); //对照地址
rcall _code_comp
mov R22,R16
clr R23
.dbline 583
; if(ar<100)
cpi R22,100
ldi R30,0
cpc R23,R30
brlo X20
rjmp L285
X20:
.dbline 584
; {
.dbline 585
; j=(ar*4)+2;
ldi R16,4
ldi R17,0
movw R18,R22
rcall empy16s
movw R24,R16
adiw R24,2
sts _j,R24
.dbline 586
; ar=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R22,R16
clr R23
.dbline 587
; j++;
lds R24,_j
subi R24,255 ; addi 1
sts _j,R24
.dbline 588
; tr=EEPROM_read(j);
mov R16,R24
rcall _EEPROM_read
mov R10,R16
clr R11
.dbline 589
; dipdata[0]=diptable[ar];
ldi R24,<_diptable
ldi R25,>_diptable
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata,R30
.dbline 590
; ar=(tr&0xf0)>>4;
movw R22,R10
andi R22,240
andi R23,0
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
lsr R23
ror R22
.dbline 591
; dipdata[1]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+1,R30
.dbline 592
; ar=(tr&0x0f);
movw R22,R10
andi R22,15
andi R23,0
.dbline 593
; dipdata[2]=diptable[ar];
movw R30,R22
add R30,R24
adc R31,R25
lpm R30,Z
sts _dipdata+2,R30
.dbline 594
; dipdata[2]|=0x80;
mov R24,R30
ori R24,128
sts _dipdata+2,R24
.dbline 595
; dipdata[1]&=~0x80;
lds R24,_dipdata+1
andi R24,127
sts _dipdata+1,R24
.dbline 596
; dipdata[0]&=~0x80;
lds R24,_dipdata
andi R24,127
sts _dipdata,R24
.dbline 597
; }
.dbline 598
; }
rjmp L285
L284:
.dbline 599
; else flagh |=BIT(1);
lds R24,_flagh
ori R24,2
sts _flagh,R24
L285:
.dbline 600
; dipcount=1;
ldi R24,1
sts _dipcount,R24
.dbline 601
; break;
.dbline 602
; default:break;
L251:
.dbline 604
; }
; }
L248:
.dbline 605
L165:
.dbline 437
rjmp L164
X10:
.dbline -2
L160:
.dbline 0 ; func end
ret
.dbsym r ar 22 i
.dbsym r tr 10 i
.dbend
.area bss(ram, con, rel)
.dbfile E:\abol\file\EMD\programme\main.c
_datas::
.blkb 8
.dbfile E:\abol\file\EMD\programme/init.h
.dbsym e datas _datas A[8:8]c
_data::
.blkb 3
.dbsym e data _data A[3:3]c
_dipdata::
.blkb 6
.dbsym e dipdata _dipdata A[6:6]c
_HI_COUNT_SAVE::
.blkb 1
.dbsym e HI_COUNT_SAVE _HI_COUNT_SAVE c
_HI_COUNT::
.blkb 1
.dbsym e HI_COUNT _HI_COUNT c
_LO_COUNT_SAVE::
.blkb 1
.dbsym e LO_COUNT_SAVE _LO_COUNT_SAVE c
_LO_COUNT::
.blkb 1
.dbsym e LO_COUNT _LO_COUNT c
_d5::
.blkb 1
.dbfile E:\abol\file\EMD\programme/main.h
.dbsym e d5 _d5 c
_d4::
.blkb 1
.dbsym e d4 _d4 c
_d3::
.blkb 1
.dbsym e d3 _d3 c
_D6FC::
.blkb 1
.dbfile E:\abol\file\EMD\programme/init.h
.dbsym e D6FC _D6FC c
_D5FC::
.blkb 1
.dbsym e D5FC _D5FC c
_D4FC::
.blkb 1
.dbsym e D4FC _D4FC c
_D3FC::
.blkb 1
.dbsym e D3FC _D3FC c
_D2FC::
.blkb 1
.dbsym e D2FC _D2FC c
_D1FC::
.blkb 1
.dbsym e D1FC _D1FC c
_eaddr1::
.blkb 1
.dbsym e eaddr1 _eaddr1 c
_eaddr0::
.blkb 1
.dbsym e eaddr0 _eaddr0 c
_faddr::
.blkb 1
.dbsym e faddr _faddr c
_flagl::
.blkb 1
.dbsym e flagl _flagl c
_j::
.blkb 1
.dbfile E:\abol\file\EMD\programme/main.h
.dbsym e j _j c
_i::
.blkb 1
.dbsym e i _i c
_crc::
.blkb 1
.dbfile E:\abol\file\EMD\programme/init.h
.dbsym e crc _crc c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -