📄 zuhe.lis
字号:
00B6 .dbline 110
00B6 ; delay(500);
00B6 04EF ldi R16,500
00B8 11E0 ldi R17,1
00BA A2DF rcall _delay
00BC .dbline 111
00BC ; PORTC &= ~(1<<PORTC3);
00BC AB98 cbi 0x15,3
00BE .dbline -2
00BE .dbline 112
00BE ; }
00BE L23:
00BE 00D0 rcall pop_gset1
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbsym r c 20 c
00C2 .dbend
00C2 .dbfunc e init_wdt _init_wdt fV
.even
00C2 _init_wdt::
00C2 .dbline -1
00C2 .dbline 115
00C2 ;
00C2 ; void init_wdt(void)
00C2 ; {WDTCR=(1<<WDCE)|(1<<WDE);
00C2 .dbline 115
00C2 88E1 ldi R24,24
00C4 81BD out 0x21,R24
00C6 .dbline 116
00C6 ; WDTCR=(0<<WDCE)|(1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0);
00C6 8FE0 ldi R24,15
00C8 81BD out 0x21,R24
00CA .dbline -2
00CA .dbline 118
00CA ; /*看门狗允许、溢出时间2.1s,p44*/
00CA ; }
00CA L24:
00CA .dbline 0 ; func end
00CA 0895 ret
00CC .dbend
00CC .dbfunc e LcdInit _LcdInit fV
.even
00CC _LcdInit::
00CC .dbline -1
00CC .dbline 122
00CC ;
00CC ; void LcdInit(void); /* LCD?????????? */
00CC ; void LcdInit()
00CC ; {
00CC .dbline 123
00CC ; PORTC |= (1<<PORTC4);
00CC AC9A sbi 0x15,4
00CE .dbline 124
00CE ; PORTC |= (1<<PORTC5);
00CE AD9A sbi 0x15,5
00D0 .dbline 125
00D0 ; PORTC |= (1<<PORTC3);
00D0 AB9A sbi 0x15,3
00D2 .dbline 126
00D2 ; LcdCmd(0x38);
00D2 08E3 ldi R16,56
00D4 DCDF rcall _LcdCmd
00D6 .dbline 127
00D6 ; LcdCmd(0x38);
00D6 08E3 ldi R16,56
00D8 DADF rcall _LcdCmd
00DA .dbline 128
00DA ; LcdCmd(0x06);
00DA 06E0 ldi R16,6
00DC D8DF rcall _LcdCmd
00DE .dbline 129
00DE ; LcdCmd(0x0c);
00DE 0CE0 ldi R16,12
00E0 D6DF rcall _LcdCmd
00E2 .dbline 130
00E2 ; LcdCmd(0x01);
00E2 01E0 ldi R16,1
00E4 .dbline -2
00E4 .dbline 131
00E4 ; }
00E4 L25:
00E4 .dbline 0 ; func end
00E4 D4CF rjmp _LcdCmd
00E6 .dbend
00E6 .dbfunc e LcdClr _LcdClr fV
.even
00E6 _LcdClr::
00E6 .dbline -1
00E6 .dbline 136
00E6 ;
00E6 ;
00E6 ; void LcdClr(void); /* LCD???????? */
00E6 ; void LcdClr()
00E6 ; {
00E6 .dbline 137
00E6 ; LcdCmd(0x01);
00E6 01E0 ldi R16,1
00E8 .dbline -2
00E8 .dbline 138
00E8 ; }
00E8 L26:
00E8 .dbline 0 ; func end
00E8 D2CF rjmp _LcdCmd
00EA .dbend
00EA .dbfunc e LcdStr _LcdStr fV
00EA ; d -> R20,R21
00EA ; c -> R22,R23
.even
00EA _LcdStr::
00EA 00D0 rcall push_gset2
00EC B801 movw R22,R16
00EE .dbline -1
00EE .dbline 146
00EE ;
00EE ;
00EE ;
00EE ;
00EE ;
00EE ; void LcdStr(char *); /* ????×?·??????? */
00EE ; void LcdStr(char *c)
00EE ; {
00EE .dbline 147
00EE ; int d=0;
00EE 4427 clr R20
00F0 5527 clr R21
00F2 08C0 rjmp L29
00F4 L28:
00F4 .dbline 149
00F4 1A01 movw R2,R20
00F6 4F5F subi R20,255 ; offset = 1
00F8 5F4F sbci R21,255
00FA F101 movw R30,R2
00FC E60F add R30,R22
00FE F71F adc R31,R23
0100 0081 ldd R16,z+0
0102 D2DF rcall _LcdData
0104 L29:
0104 .dbline 148
0104 ; while (c[d]!=0)
0104 FA01 movw R30,R20
0106 E60F add R30,R22
0108 F71F adc R31,R23
010A 2080 ldd R2,z+0
010C 2220 tst R2
010E 91F7 brne L28
0110 .dbline -2
0110 .dbline 151
0110 ; LcdData(c[d++]); /* char of LCM */
0110 ;
0110 ; }
0110 L27:
0110 00D0 rcall pop_gset2
0112 .dbline 0 ; func end
0112 0895 ret
0114 .dbsym r d 20 I
0114 .dbsym r c 22 pc
0114 .dbend
0114 .dbfunc e main _main fV
.even
0114 _main::
0114 2C97 sbiw R28,12
0116 .dbline -1
0116 .dbline 156
0116 ;
0116 ;
0116 ;
0116 ; void main(void)
0116 ; {
0116 .dbline 157
0116 ; delay(2000);
0116 00ED ldi R16,2000
0118 17E0 ldi R17,7
011A 72DF rcall _delay
011C .dbline 158
011C ; OSCCAL=EEPROM_read(osccal_addr);
011C 0FEF ldi R16,511
011E 11E0 ldi R17,1
0120 7FDF rcall _EEPROM_read
0122 01BF out 0x31,R16
0124 .dbline 159
0124 ; DDRC=0xfe;
0124 8EEF ldi R24,254
0126 84BB out 0x14,R24
0128 .dbline 160
0128 ; DDRB=0Xff;
0128 8FEF ldi R24,255
012A 87BB out 0x17,R24
012C .dbline 162
012C ; //init_wdt();
012C ; SEI();
012C 7894 sei
012E .dbline 163
012E ; init_adc();
012E 7FDF rcall _init_adc
0130 .dbline 164
0130 ; LcdInit();
0130 CDDF rcall _LcdInit
0132 .dbline 165
0132 ; LcdClr();
0132 D9DF rcall _LcdClr
0134 CBC1 rjmp L33
0136 L32:
0136 .dbline 168
0136 ;
0136 ; while(1)
0136 ; { delay(10000);
0136 .dbline 168
0136 00E1 ldi R16,10000
0138 17E2 ldi R17,39
013A 62DF rcall _delay
013C .dbline 169
013C ; WDR();
013C A895 wdr
013E .dbline 170
013E ; init_adc();
013E 77DF rcall _init_adc
0140 .dbline 172
0140 ; //LcdClr();
0140 ; ADCSRA|=(1<<ADSC);
0140 369A sbi 0x6,6
0142 L35:
0142 .dbline 173
0142 L36:
0142 .dbline 173
0142 ; while(ADCSRA&(1<<ADIF));
0142 3499 sbic 0x6,4
0144 FECF rjmp L35
0146 .dbline 174
0146 ; readadc();
0146 77DF rcall _readadc
0148 .dbline 175
0148 ; ADCSRA|=(1<<ADIF);
0148 349A sbi 0x6,4
014A .dbline 176
014A ; datax=(datah<<8)+datal;
014A 20901000 lds R2,_datal
014E 30901200 lds R3,_datah
0152 30921500 sts _datax+1,R3
0156 20921400 sts _datax,R2
015A .dbline 177
015A ; ADCSRA&=~(1<<ADEN);
015A 3798 cbi 0x6,7
015C .dbline 178
015C ; v=(float)datax/0x3ff*2.56;
015C 00E0 ldi R16,<L38
015E 10E0 ldi R17,>L38
0160 00D0 rcall lpm32
0162 3A93 st -y,R19
0164 2A93 st -y,R18
0166 1A93 st -y,R17
0168 0A93 st -y,R16
016A 00E0 ldi R16,<L39
016C 10E0 ldi R17,>L39
016E 00D0 rcall lpm32
0170 3A93 st -y,R19
0172 2A93 st -y,R18
0174 1A93 st -y,R17
0176 0A93 st -y,R16
0178 00911400 lds R16,_datax
017C 10911500 lds R17,_datax+1
0180 1695 lsr R17
0182 0795 ror R16
0184 00D0 rcall int2fp
0186 3A93 st -y,R19
0188 2A93 st -y,R18
018A 1A93 st -y,R17
018C 0A93 st -y,R16
018E 00D0 rcall empy32fs
0190 00911400 lds R16,_datax
0194 10911500 lds R17,_datax+1
0198 0170 andi R16,1
019A 1070 andi R17,0
019C 00D0 rcall int2fp
019E 3A93 st -y,R19
01A0 2A93 st -y,R18
01A2 1A93 st -y,R17
01A4 0A93 st -y,R16
01A6 00D0 rcall add32fs
01A8 00E0 ldi R16,<L40
01AA 10E0 ldi R17,>L40
01AC 00D0 rcall lpm32
01AE 3A93 st -y,R19
01B0 2A93 st -y,R18
01B2 1A93 st -y,R17
01B4 0A93 st -y,R16
01B6 00D0 rcall div32fs
01B8 00D0 rcall empy32f
01BA 10930500 sts _v+1,R17
01BE 00930400 sts _v,R16
01C2 30930700 sts _v+2+1,R19
01C6 20930600 sts _v+2,R18
01CA .dbline 179
01CA ; W=(float)v*v;
01CA 3A93 st -y,R19
01CC 2A93 st -y,R18
01CE 1A93 st -y,R17
01D0 0A93 st -y,R16
01D2 3A93 st -y,R19
01D4 2A93 st -y,R18
01D6 1A93 st -y,R17
01D8 0A93 st -y,R16
01DA 00D0 rcall empy32f
01DC 10930100 sts _W+1,R17
01E0 00930000 sts _W,R16
01E4 30930300 sts _W+2+1,R19
01E8 20930200 sts _W+2,R18
01EC .dbline 180
01EC ; w1=(uint)W;
01EC 3A93 st -y,R19
01EE 2A93 st -y,R18
01F0 1A93 st -y,R17
01F2 0A93 st -y,R16
01F4 00E0 ldi R16,<L43
01F6 10E0 ldi R17,>L43
01F8 00D0 rcall lpm32
01FA 3A93 st -y,R19
01FC 2A93 st -y,R18
01FE 1A93 st -y,R17
0200 0A93 st -y,R16
0202 00D0 rcall cmp32f
0204 D4F0 brlt L41
0206 40900200 lds R4,_W+2
020A 50900300 lds R5,_W+2+1
020E 20900000 lds R2,_W
0212 30900100 lds R3,_W+1
0216 5A92 st -y,R5
0218 4A92 st -y,R4
021A 3A92 st -y,R3
021C 2A92 st -y,R2
021E 00E0 ldi R16,<L43
0220 10E0 ldi R17,>L43
0222 00D0 rcall lpm32
0224 3A93 st -y,R19
0226 2A93 st -y,R18
0228 1A93 st -y,R17
022A 0A93 st -y,R16
022C 00D0 rcall sub32f
022E 00D0 rcall fp2int
0230 C801 movw R24,R16
0232 8050 subi R24,0 ; offset = 32768
0234 9048 sbci R25,128
0236 5C01 movw R10,R24
0238 0AC0 rjmp L42
023A L41:
023A 20910200 lds R18,_W+2
023E 30910300 lds R19,_W+2+1
0242 00910000 lds R16,_W
0246 10910100 lds R17,_W+1
024A 00D0 rcall fp2int
024C 5801 movw R10,R16
024E L42:
024E A0920B00 sts _w1,R10
0252 .dbline 181
0252 ; w2=(uint)((W-w1)*10);
0252 00E0 ldi R16,<L46
0254 10E0 ldi R17,>L46
0256 00D0 rcall lpm32
0258 3A93 st -y,R19
025A 2A93 st -y,R18
025C 1A93 st -y,R17
025E 0A93 st -y,R16
0260 40900200 lds R4,_W+2
0264 50900300 lds R5,_W+2+1
0268 20900000 lds R2,_W
026C 30900100 lds R3,_W+1
0270 5A92 st -y,R5
0272 4A92 st -y,R4
0274 3A92 st -y,R3
0276 2A92 st -y,R2
0278 00910B00 lds R16,_w1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -