⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key5.lis

📁 本设计以ATMEL公司生产的AT90S8515作为控制核心
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 03C6 90E0              ldi R25,>_value_table+1
 03C8 E0910000          lds R30,_j
 03CC FF27              clr R31
 03CE E80F              add R30,R24
 03D0 F91F              adc R31,R25
 03D2 2224              clr R2
 03D4 2082              std z+0,R2
 03D6           L48:
 03D6                   .dbline 107
 03D6           ;                         LCD_write(2+j,0,'0'+value_table[j+1]);
 03D6 80E0              ldi R24,<_value_table+1
 03D8 90E0              ldi R25,>_value_table+1
 03DA E0910000          lds R30,_j
 03DE FF27              clr R31
 03E0 E80F              add R30,R24
 03E2 F91F              adc R31,R25
 03E4 8081              ldd R24,z+0
 03E6 9927              clr R25
 03E8 C096              adiw R24,48
 03EA 9983              std y+1,R25
 03EC 8883              std y+0,R24
 03EE 2227              clr R18
 03F0 00910000          lds R16,_j
 03F4 0E5F              subi R16,254    ; addi 2
 03F6 00D0              rcall _LCD_write
 03F8                   .dbline 108
 03F8           ;                         break;
 03F8 FCC0              rjmp L44
 03FA           L53:
 03FA                   .dbline 110
 03FA           ;                case KEY_DEC:
 03FA           ;                         value_table[j+1]--;
 03FA 80E0              ldi R24,<_value_table+1
 03FC 90E0              ldi R25,>_value_table+1
 03FE 20900000          lds R2,_j
 0402 3324              clr R3
 0404 280E              add R2,R24
 0406 391E              adc R3,R25
 0408 E22D              mov R30,R2
 040A F32D              mov R31,R3
 040C 8081              ldd R24,z+0
 040E 8150              subi R24,1
 0410 8083              std z+0,R24
 0412                   .dbline 111
 0412           ;                         if(value_table[j+1]>9) value_table[j+1]=9;
 0412 80E0              ldi R24,<_value_table+1
 0414 90E0              ldi R25,>_value_table+1
 0416 E0910000          lds R30,_j
 041A FF27              clr R31
 041C E80F              add R30,R24
 041E F91F              adc R31,R25
 0420 2080              ldd R2,z+0
 0422 89E0              ldi R24,9
 0424 8215              cp R24,R2
 0426 48F4              brsh L55
 0428                   .dbline 111
 0428 80E0              ldi R24,<_value_table+1
 042A 90E0              ldi R25,>_value_table+1
 042C E0910000          lds R30,_j
 0430 FF27              clr R31
 0432 E80F              add R30,R24
 0434 F91F              adc R31,R25
 0436 89E0              ldi R24,9
 0438 8083              std z+0,R24
 043A           L55:
 043A                   .dbline 112
 043A           ;                         LCD_write(2+j,0,'0'+value_table[j+1]);
 043A 80E0              ldi R24,<_value_table+1
 043C 90E0              ldi R25,>_value_table+1
 043E E0910000          lds R30,_j
 0442 FF27              clr R31
 0444 E80F              add R30,R24
 0446 F91F              adc R31,R25
 0448 8081              ldd R24,z+0
 044A 9927              clr R25
 044C C096              adiw R24,48
 044E 9983              std y+1,R25
 0450 8883              std y+0,R24
 0452 2227              clr R18
 0454 00910000          lds R16,_j
 0458 0E5F              subi R16,254    ; addi 2
 045A 00D0              rcall _LCD_write
 045C                   .dbline 113
 045C           ;                         break;
 045C CAC0              rjmp L44
 045E           L60:
 045E                   .dbline 115
 045E           ;                case KEY_CU:
 045E           ;                         LCD_write(2+j,1,' ');
 045E 80E2              ldi R24,32
 0460 90E0              ldi R25,0
 0462 9983              std y+1,R25
 0464 8883              std y+0,R24
 0466 21E0              ldi R18,1
 0468 00910000          lds R16,_j
 046C 0E5F              subi R16,254    ; addi 2
 046E 00D0              rcall _LCD_write
 0470                   .dbline 116
 0470           ;                         j++;
 0470 80910000          lds R24,_j
 0474 8F5F              subi R24,255    ; addi 1
 0476 80930000          sts _j,R24
 047A                   .dbline 117
 047A           ;                         j&=0x3;
 047A 8370              andi R24,3
 047C 80930000          sts _j,R24
 0480                   .dbline 118
 0480           ;                         LCD_write(2+j,1,'^');
 0480 8EE5              ldi R24,94
 0482 90E0              ldi R25,0
 0484 9983              std y+1,R25
 0486 8883              std y+0,R24
 0488 21E0              ldi R18,1
 048A 00910000          lds R16,_j
 048E 0E5F              subi R16,254    ; addi 2
 0490 00D0              rcall _LCD_write
 0492                   .dbline 119
 0492           ;                         break;
 0492 AFC0              rjmp L44
 0494           L61:
 0494                   .dbline 121
 0494           ;                case KEY_OK:
 0494           ;                         *value=value_table[1]*1000+ value_table[2]*100+value_table[3]*10+value_table[4];
 0494 20910200          lds R18,_value_table+2
 0498 3327              clr R19
 049A 04E6              ldi R16,100
 049C 10E0              ldi R17,0
 049E 00D0              rcall mpy16s
 04A0 202E              mov R2,R16
 04A2 312E              mov R3,R17
 04A4 20910100          lds R18,_value_table+1
 04A8 3327              clr R19
 04AA 08EE              ldi R16,1000
 04AC 13E0              ldi R17,3
 04AE 00D0              rcall mpy16s
 04B0 402E              mov R4,R16
 04B2 512E              mov R5,R17
 04B4 420C              add R4,R2
 04B6 531C              adc R5,R3
 04B8 20910300          lds R18,_value_table+3
 04BC 3327              clr R19
 04BE 0AE0              ldi R16,10
 04C0 10E0              ldi R17,0
 04C2 00D0              rcall mpy16s
 04C4 400E              add R4,R16
 04C6 511E              adc R5,R17
 04C8 20900400          lds R2,_value_table+4
 04CC 3324              clr R3
 04CE 420C              add R4,R2
 04D0 531C              adc R5,R3
 04D2 E42F              mov R30,R20
 04D4 F52F              mov R31,R21
 04D6 5182              std z+1,R5
 04D8 4082              std z+0,R4
 04DA                   .dbline 122
 04DA           ;                         if(*value>2000) *value=2000;
 04DA 80ED              ldi R24,2000
 04DC 97E0              ldi R25,7
 04DE 2080              ldd R2,z+0
 04E0 3180              ldd R3,z+1
 04E2 8215              cp R24,R2
 04E4 9305              cpc R25,R3
 04E6 10F4              brsh L66
 04E8                   .dbline 122
 04E8 9183              std z+1,R25
 04EA 8083              std z+0,R24
 04EC           L66:
 04EC                   .dbline 123
 04EC           ;                         ADC_GD=(*value)*K1;
 04EC E42F              mov R30,R20
 04EE F52F              mov R31,R21
 04F0 2080              ldd R2,z+0
 04F2 3180              ldd R3,z+1
 04F4 00E0              ldi R16,<L36
 04F6 10E0              ldi R17,>L36
 04F8 00D0              rcall lpm32
 04FA 3A93              st -y,R19
 04FC 2A93              st -y,R18
 04FE 1A93              st -y,R17
 0500 0A93              st -y,R16
 0502 022D              mov R16,R2
 0504 132D              mov R17,R3
 0506 1695              lsr R17
 0508 0795              ror R16
 050A 00D0              rcall int2fp
 050C 3A93              st -y,R19
 050E 2A93              st -y,R18
 0510 1A93              st -y,R17
 0512 0A93              st -y,R16
 0514 00D0              rcall mpy32fs
 0516 022D              mov R16,R2
 0518 132D              mov R17,R3
 051A 0170              andi R16,1
 051C 1070              andi R17,0
 051E 00D0              rcall int2fp
 0520 3A93              st -y,R19
 0522 2A93              st -y,R18
 0524 1A93              st -y,R17
 0526 0A93              st -y,R16
 0528 00D0              rcall add32fs
 052A 40900200          lds R4,_K1+2
 052E 50900300          lds R5,_K1+2+1
 0532 20900000          lds R2,_K1
 0536 30900100          lds R3,_K1+1
 053A 5A92              st -y,R5
 053C 4A92              st -y,R4
 053E 3A92              st -y,R3
 0540 2A92              st -y,R2
 0542 00D0              rcall mpy32f
 0544 EC2F              mov R30,R28
 0546 FD2F              mov R31,R29
 0548 0683              std z+6,R16
 054A 1783              std z+7,R17
 054C 2087              std z+8,R18
 054E 3187              std z+9,R19
 0550 EC2F              mov R30,R28
 0552 FD2F              mov R31,R29
 0554 2680              ldd R2,z+6
 0556 3780              ldd R3,z+7
 0558 4084              ldd R4,z+8
 055A 5184              ldd R5,z+9
 055C 5A92              st -y,R5
 055E 4A92              st -y,R4
 0560 3A92              st -y,R3
 0562 2A92              st -y,R2
 0564 00E0              ldi R16,<L37
 0566 10E0              ldi R17,>L37
 0568 00D0              rcall lpm32
 056A 3A93              st -y,R19
 056C 2A93              st -y,R18
 056E 1A93              st -y,R17
 0570 0A93              st -y,R16
 0572 00D0              rcall cmp32f
 0574 C4F0              brlt L68
 0576 EC2F              mov R30,R28
 0578 FD2F              mov R31,R29
 057A 2680              ldd R2,z+6
 057C 3780              ldd R3,z+7
 057E 4084              ldd R4,z+8
 0580 5184              ldd R5,z+9
 0582 5A92              st -y,R5
 0584 4A92              st -y,R4
 0586 3A92              st -y,R3
 0588 2A92              st -y,R2
 058A 00E0              ldi R16,<L37
 058C 10E0              ldi R17,>L37
 058E 00D0              rcall lpm32
 0590 3A93              st -y,R19
 0592 2A93              st -y,R18
 0594 1A93              st -y,R17
 0596 0A93              st -y,R16
 0598 00D0              rcall sub32f
 059A 00D0              rcall fp2int
 059C 602F              mov R22,R16
 059E 712F              mov R23,R17
 05A0 6050              subi R22,0  ; offset = 32768
 05A2 7048              sbci R23,128
 05A4 09C0              rjmp L69
 05A6           L68:
 05A6 EC2F              mov R30,R28
 05A8 FD2F              mov R31,R29
 05AA 0681              ldd R16,z+6
 05AC 1781              ldd R17,z+7
 05AE 2085              ldd R18,z+8
 05B0 3185              ldd R19,z+9
 05B2 00D0              rcall fp2int
 05B4 602F              mov R22,R16
 05B6 712F              mov R23,R17
 05B8           L69:
 05B8 70930100          sts _ADC_GD+1,R23
 05BC 60930000          sts _ADC_GD,R22
 05C0           L70:
 05C0                   .dbline 125
 05C0           ;                case KEY_FN:
 05C0           ;                         mode=1;
 05C0 81E0              ldi R24,1
 05C2 80930000          sts _mode,R24
 05C6                   .dbline 126
 05C6           ;                     LCD_write_string(0,1,"     ^  +/-ing...");
 05C6 80E0              ldi R24,<L71
 05C8 90E0              ldi R25,>L71
 05CA 9983              std y+1,R25
 05CC 8883              std y+0,R24
 05CE 21E0              ldi R18,1
 05D0 0027              clr R16
 05D2 00D0              rcall _LCD_write_string
 05D4                   .dbline 127
 05D4           ;                         LCD_display(2,0,4,*value);
 05D4 E42F              mov R30,R20
 05D6 F52F              mov R31,R21
 05D8 2080              ldd R2,z+0
 05DA 3180              ldd R3,z+1
 05DC 4424              clr R4
 05DE 5524              clr R5
 05E0 2A82              std y+2,R2
 05E2 3B82              std y+3,R3
 05E4 4C82              std y+4,R4
 05E6 5D82              std y+5,R5
 05E8 84E0              ldi R24,4
 05EA 8883              std y+0,R24
 05EC 2227              clr R18
 05EE 02E0              ldi R16,2
 05F0 00D0              rcall _LCD_display
 05F2                   .dbline 128
 05F2           ;                         break;
 05F2           L43:
 05F2           L44:
 05F2                   .dbline 130
 05F2           L25:
 05F2                   .dbline -2
 05F2                   .dbline 131
 05F2           ;                }
 05F2           ;        } 
 05F2           ; }
 05F2           L23:
 05F2 2E96              adiw R28,14
 05F4 00D0              rcall pop_gset3
 05F6                   .dbline 0 ; func end
 05F6 0895              ret
 05F8                   .dbsym r temp 22 c
 05F8                   .dbsym r value 20 pi
 05F8                   .dbsym l data_length 20 c
 05F8                   .dbsym r y 22 c
 05F8                   .dbsym r x 10 c
 05F8                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\hujie\key5.c
 0000           L71:
 0000                   .blkb 18
                        .area idata
 0000 20202020205E20202B2F2D696E672E2E  .byte 32,32,32,32,32,94,32,32,43,47,45,'i,'n,'g,46,46
 0010 2E00              .byte 46,0
                        .area data(ram, con, rel)
 0012                   .dbfile D:\hujie\key5.c
                        .area lit(rom, con, rel)
 0000           L37:
 0000 00000047          .word 0x0,0x4700
 0004           L36:
 0004 00000040          .word 0x0,0x4000
                        .area data(ram, con, rel)
 0012                   .dbfile D:\hujie\key5.c
 0012           L30:
 0012                   .blkb 17
                        .area idata
 0012 20205E20202020736574696E672E2E2E  .byte 32,32,94,32,32,32,32,'s,'e,'t,'i,'n,'g,46,46,46
 0022 00                .byte 0
                        .area data(ram, con, rel)
 0023                   .dbfile D:\hujie\key5.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -