📄 1602_main.lis
字号:
0280 0023 tst R16
0282 29F4 brne L56
0284 .dbline 85
0284 .dbline 86
0284 2224 clr R2
0286 20920000 sts L55,R2
028A .dbline 87
028A 0027 clr R16
028C 11C0 xjmp L54
028E L56:
028E .dbline 89
028E 20900000 lds R2,L55
0292 2220 tst R2
0294 61F4 brne L58
0296 .dbline 89
0296 .dbline 90
0296 40930000 sts L55,R20
029A .dbline 91
029A 0AE0 ldi R16,10
029C 10E0 ldi R17,0
029E BDDE xcall _delay_ms
02A0 .dbline 92
02A0 57DF xcall _key_read
02A2 402F mov R20,R16
02A4 .dbline 93
02A4 20900000 lds R2,L55
02A8 0215 cp R16,R2
02AA 09F4 brne L60
02AC .dbline 93
02AC .dbline 94
02AC 01C0 xjmp L54
02AE L60:
02AE .dbline 96
02AE L58:
02AE .dbline 97
02AE 0027 clr R16
02B0 .dbline -2
02B0 L54:
02B0 0E940000 xcall pop_gset1
02B4 .dbline 0 ; func end
02B4 0895 ret
02B6 .dbsym r i 20 c
02B6 .dbend
02B6 .dbfunc e get_ad _get_ad fi
02B6 ; hh -> <dead>
02B6 ; ll -> R20
02B6 ; num -> R22,R23
.even
02B6 _get_ad::
02B6 0E940000 xcall push_gset2
02BA .dbline -1
02BA .dbline 102
02BA .dbline 104
02BA 6627 clr R22
02BC 7727 clr R23
02BE .dbline 106
02BE F894 cli
02C0 .dbline 107
02C0 2224 clr R2
02C2 2ABA out 0x1a,R2
02C4 .dbline 108
02C4 8FE7 ldi R24,127
02C6 8BBB out 0x1b,R24
02C8 .dbline 112
02C8 ; // delay_us(1); //10us
02C8 ;
02C8 ;
02C8 ; ADMUX = 0x47; /*基准AVCC、10位、通道7*/
02C8 87E4 ldi R24,71
02CA 87B9 out 0x7,R24
02CC .dbline 113
02CC ; ADCSRA = 0xC0; /*使能、开启、4分频*/
02CC 80EC ldi R24,192
02CE 86B9 out 0x6,R24
02D0 L63:
02D0 .dbline 114
02D0 L64:
02D0 .dbline 114
02D0 ; while(!(ADCSRA & (1 << ADIF))); /*等待*/
02D0 349B sbis 0x6,4
02D2 FECF rjmp L63
02D4 .dbline 115
02D4 ; ll=ADCL;
02D4 44B1 in R20,0x4
02D6 .dbline 116
02D6 ; num = ADCH;
02D6 65B1 in R22,0x5
02D8 7727 clr R23
02DA .dbline 117
02DA ; num=num*256+ll;
02DA 00E0 ldi R16,256
02DC 11E0 ldi R17,1
02DE 9B01 movw R18,R22
02E0 0E940000 xcall empy16s
02E4 B801 movw R22,R16
02E6 242E mov R2,R20
02E8 3324 clr R3
02EA 620D add R22,R2
02EC 731D adc R23,R3
02EE .dbline 118
02EE ; ADCSRA &= ~(1 << ADIF); /*清标志*/
02EE 3498 cbi 0x6,4
02F0 .dbline 119
02F0 ; ADCSRA &= ~(1 << ADEN); /*关闭转换*/
02F0 3798 cbi 0x6,7
02F2 .dbline 121
02F2 ;
02F2 ; DDRA=0XFF;
02F2 8FEF ldi R24,255
02F4 8ABB out 0x1a,R24
02F6 .dbline 122
02F6 ; PORTA=0X00;
02F6 2224 clr R2
02F8 2BBA out 0x1b,R2
02FA .dbline 124
02FA ; //SEI();
02FA ; asm("sei");
02FA 7894 sei
02FC .dbline 125
02FC ; return num;
02FC 8B01 movw R16,R22
02FE .dbline -2
02FE L62:
02FE 0E940000 xcall pop_gset2
0302 .dbline 0 ; func end
0302 0895 ret
0304 .dbsym l hh 1 c
0304 .dbsym r ll 20 c
0304 .dbsym r num 22 i
0304 .dbend
0304 .dbfunc e lcd_process _lcd_process fc
.even
0304 _lcd_process::
0304 0E940000 xcall push_gset1
0308 2597 sbiw R28,5
030A .dbline -1
030A .dbline 130
030A ;
030A ; }
030A ;
030A ; unsigned char lcd_process(void)
030A ; {
030A .dbline 132
030A ;
030A ; if( disp_num2<=3.3&&disp_num2>=1)
030A 00E0 ldi R16,<L69
030C 10E0 ldi R17,>L69
030E 0E940000 xcall lpm32
0312 3A93 st -y,R19
0314 2A93 st -y,R18
0316 1A93 st -y,R17
0318 0A93 st -y,R16
031A 40900300 lds R4,_disp_num2+2
031E 50900400 lds R5,_disp_num2+2+1
0322 20900100 lds R2,_disp_num2
0326 30900200 lds R3,_disp_num2+1
032A 5A92 st -y,R5
032C 4A92 st -y,R4
032E 3A92 st -y,R3
0330 2A92 st -y,R2
0332 0E940000 xcall cmp32f
0336 0CF4 brge X10
0338 CBC0 xjmp L67
033A X10:
033A 40900300 lds R4,_disp_num2+2
033E 50900400 lds R5,_disp_num2+2+1
0342 20900100 lds R2,_disp_num2
0346 30900200 lds R3,_disp_num2+1
034A 5A92 st -y,R5
034C 4A92 st -y,R4
034E 3A92 st -y,R3
0350 2A92 st -y,R2
0352 00E0 ldi R16,<L70
0354 10E0 ldi R17,>L70
0356 0E940000 xcall lpm32
035A 3A93 st -y,R19
035C 2A93 st -y,R18
035E 1A93 st -y,R17
0360 0A93 st -y,R16
0362 0E940000 xcall cmp32f
0366 0CF4 brge X11
0368 B3C0 xjmp L67
036A X11:
036A .dbline 133
036A ; {
036A .dbline 134
036A ; LCD_write_char(1,0,'U');
036A 85E5 ldi R24,85
036C 8883 std y+0,R24
036E 2227 clr R18
0370 01E0 ldi R16,1
0372 A7DE xcall _LCD_write_char
0374 .dbline 135
0374 ; LCD_write_char(2,0,'=');
0374 8DE3 ldi R24,61
0376 8883 std y+0,R24
0378 2227 clr R18
037A 02E0 ldi R16,2
037C A2DE xcall _LCD_write_char
037E .dbline 136
037E ; LCD_write_num(3,0,(disp_num2*100)/100);
037E 00E0 ldi R16,<L73
0380 10E0 ldi R17,>L73
0382 0E940000 xcall lpm32
0386 3A93 st -y,R19
0388 2A93 st -y,R18
038A 1A93 st -y,R17
038C 0A93 st -y,R16
038E 40900300 lds R4,_disp_num2+2
0392 50900400 lds R5,_disp_num2+2+1
0396 20900100 lds R2,_disp_num2
039A 30900200 lds R3,_disp_num2+1
039E 5A92 st -y,R5
03A0 4A92 st -y,R4
03A2 3A92 st -y,R3
03A4 2A92 st -y,R2
03A6 0E940000 xcall empy32fs
03AA 00E0 ldi R16,<L73
03AC 10E0 ldi R17,>L73
03AE 0E940000 xcall lpm32
03B2 3A93 st -y,R19
03B4 2A93 st -y,R18
03B6 1A93 st -y,R17
03B8 0A93 st -y,R16
03BA 0E940000 xcall div32f
03BE FE01 movw R30,R28
03C0 0183 std z+1,R16
03C2 1283 std z+2,R17
03C4 2383 std z+3,R18
03C6 3483 std z+4,R19
03C8 FE01 movw R30,R28
03CA 2180 ldd R2,z+1
03CC 3280 ldd R3,z+2
03CE 4380 ldd R4,z+3
03D0 5480 ldd R5,z+4
03D2 5A92 st -y,R5
03D4 4A92 st -y,R4
03D6 3A92 st -y,R3
03D8 2A92 st -y,R2
03DA 00E0 ldi R16,<L74
03DC 10E0 ldi R17,>L74
03DE 0E940000 xcall lpm32
03E2 3A93 st -y,R19
03E4 2A93 st -y,R18
03E6 1A93 st -y,R17
03E8 0A93 st -y,R16
03EA 0E940000 xcall cmp32f
03EE CCF0 brlt L71
03F0 FE01 movw R30,R28
03F2 2180 ldd R2,z+1
03F4 3280 ldd R3,z+2
03F6 4380 ldd R4,z+3
03F8 5480 ldd R5,z+4
03FA 5A92 st -y,R5
03FC 4A92 st -y,R4
03FE 3A92 st -y,R3
0400 2A92 st -y,R2
0402 00E0 ldi R16,<L74
0404 10E0 ldi R17,>L74
0406 0E940000 xcall lpm32
040A 3A93 st -y,R19
040C 2A93 st -y,R18
040E 1A93 st -y,R17
0410 0A93 st -y,R16
0412 0E940000 xcall sub32f
0416 0E940000 xcall fp2int
041A A801 movw R20,R16
041C 4050 subi R20,0 ; offset = 32768
041E 5048 sbci R21,128
0420 08C0 xjmp L72
0422 L71:
0422 FE01 movw R30,R28
0424 0181 ldd R16,z+1
0426 1281 ldd R17,z+2
0428 2381 ldd R18,z+3
042A 3481 ldd R19,z+4
042C 0E940000 xcall fp2int
0430 A801 movw R20,R16
0432 L72:
0432 4883 std y+0,R20
0434 2227 clr R18
0436 03E0 ldi R16,3
0438 56DE xcall _LCD_write_num
043A .dbline 137
043A ; LCD_write_char(4,0,'.');
043A 8EE2 ldi R24,46
043C 8883 std y+0,R24
043E 2227 clr R18
0440 04E0 ldi R16,4
0442 3FDE xcall _LCD_write_char
0444 .dbline 138
0444 ; LCD_write_num(5,0,(int)(disp_num2*10)%10);
0444 00E0 ldi R16,<L75
0446 10E0 ldi R17,>L75
0448 0E940000 xcall lpm32
044C 3A93 st -y,R19
044E 2A93 st -y,R18
0450 1A93 st -y,R17
0452 0A93 st -y,R16
0454 40900300 lds R4,_disp_num2+2
0458 50900400 lds R5,_disp_num2+2+1
045C 20900100 lds R2,_disp_num2
0460 30900200 lds R3,_disp_num2+1
0464 5A92 st -y,R5
0466 4A92 st -y,R4
0468 3A92 st -y,R3
046A 2A92 st -y,R2
046C 0E940000 xcall empy32f
0470 0E940000 xcall fp2int
0474 2AE0 ldi R18,10
0476 30E0 ldi R19,0
0478 0E940000 xcall mod16s
047C 0883 std y+0,R16
047E 2227 clr R18
0480 05E0 ldi R16,5
0482 31DE xcall _LCD_write_num
0484 .dbline 139
0484 ; LCD_write_num(6,0,(int)(disp_num2*100)%10);
0484 00E0 ldi R16,<L73
0486 10E0 ldi R17,>L73
0488 0E940000 xcall lpm32
048C 3A93 st -y,R19
048E 2A93 st -y,R18
0490 1A93 st -y,R17
0492 0A93 st -y,R16
0494 40900300 lds R4,_disp_num2+2
0498 50900400 lds R5,_disp_num2+2+1
049C 20900100 lds R2,_disp_num2
04A0 30900200 lds R3,_disp_num2+1
04A4 5A92 st -y,R5
04A6 4A92 st -y,R4
04A8 3A92 st -y,R3
04AA 2A92 st -y,R2
04AC 0E940000 xcall empy32f
04B0 0E940000 xcall fp2int
04B4 2AE0 ldi R18,10
04B6 30E0 ldi R19,0
04B8 0E940000 xcall mod16s
04BC 0883 std y+0,R16
04BE 2227 clr R18
04C0 06E0 ldi R16,6
04C2 11DE xcall _LCD_write_num
04C4 .dbline 140
04C4 ; LCD_write_char(7,0,'V');
04C4 86E5 ldi R24,86
04C6 8883 std y+0,R24
04C8 2227 clr R18
04CA 07E0 ldi R16,7
04CC FADD xcall _LCD_write_char
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -