📄 init.lis
字号:
00DA 80E0 ldi R24,<L11
00DC 90E0 ldi R25,>L11
00DE 9983 std y+1,R25
00E0 8883 std y+0,R24
00E2 21E0 ldi R18,1
00E4 0027 clr R16
00E6 00D0 rcall _LCD_write_string
00E8 .dbline 92
00E8 ; value=20;
00E8 84E1 ldi R24,20
00EA 90E0 ldi R25,0
00EC 90930100 sts _value+1,R25
00F0 80930000 sts _value,R24
00F4 .dbline 93
00F4 ; ADC_GD=20*K1;
00F4 00E0 ldi R16,<L14
00F6 10E0 ldi R17,>L14
00F8 00D0 rcall lpm32
00FA 3A93 st -y,R19
00FC 2A93 st -y,R18
00FE 1A93 st -y,R17
0100 0A93 st -y,R16
0102 40900200 lds R4,_K1+2
0106 50900300 lds R5,_K1+2+1
010A 20900000 lds R2,_K1
010E 30900100 lds R3,_K1+1
0112 5A92 st -y,R5
0114 4A92 st -y,R4
0116 3A92 st -y,R3
0118 2A92 st -y,R2
011A 00D0 rcall mpy32f
011C EC2F mov R30,R28
011E FD2F mov R31,R29
0120 0283 std z+2,R16
0122 1383 std z+3,R17
0124 2483 std z+4,R18
0126 3583 std z+5,R19
0128 EC2F mov R30,R28
012A FD2F mov R31,R29
012C 2280 ldd R2,z+2
012E 3380 ldd R3,z+3
0130 4480 ldd R4,z+4
0132 5580 ldd R5,z+5
0134 5A92 st -y,R5
0136 4A92 st -y,R4
0138 3A92 st -y,R3
013A 2A92 st -y,R2
013C 00E0 ldi R16,<L15
013E 10E0 ldi R17,>L15
0140 00D0 rcall lpm32
0142 3A93 st -y,R19
0144 2A93 st -y,R18
0146 1A93 st -y,R17
0148 0A93 st -y,R16
014A 00D0 rcall cmp32f
014C C4F0 brlt L12
014E EC2F mov R30,R28
0150 FD2F mov R31,R29
0152 2280 ldd R2,z+2
0154 3380 ldd R3,z+3
0156 4480 ldd R4,z+4
0158 5580 ldd R5,z+5
015A 5A92 st -y,R5
015C 4A92 st -y,R4
015E 3A92 st -y,R3
0160 2A92 st -y,R2
0162 00E0 ldi R16,<L15
0164 10E0 ldi R17,>L15
0166 00D0 rcall lpm32
0168 3A93 st -y,R19
016A 2A93 st -y,R18
016C 1A93 st -y,R17
016E 0A93 st -y,R16
0170 00D0 rcall sub32f
0172 00D0 rcall fp2int
0174 402F mov R20,R16
0176 512F mov R21,R17
0178 4050 subi R20,0 ; offset = 32768
017A 5048 sbci R21,128
017C 09C0 rjmp L13
017E L12:
017E EC2F mov R30,R28
0180 FD2F mov R31,R29
0182 0281 ldd R16,z+2
0184 1381 ldd R17,z+3
0186 2481 ldd R18,z+4
0188 3581 ldd R19,z+5
018A 00D0 rcall fp2int
018C 402F mov R20,R16
018E 512F mov R21,R17
0190 L13:
0190 50930100 sts _ADC_GD+1,R21
0194 40930000 sts _ADC_GD,R20
0198 .dbline 94
0198 ; DAC=7882;
0198 8AEC ldi R24,7882
019A 9EE1 ldi R25,30
019C 90930100 sts _DAC+1,R25
01A0 80930000 sts _DAC,R24
01A4 .dbline 95
01A4 ; SEI();
01A4 7894 sei
01A6 .dbline -2
01A6 .dbline 96
01A6 ; }
01A6 L9:
01A6 2696 adiw R28,6
01A8 00D0 rcall pop_gset1
01AA .dbline 0 ; func end
01AA 0895 ret
01AC .dbend
.area vector(rom, abs)
.org 2
0002 D6C0 rjmp _int0_isr
.area text(rom, con, rel)
01AC .dbfile D:\hujie\init.c
01AC .dbfunc e int0_isr _int0_isr fV
01AC ; jj -> R12,R13
01AC ; ii -> R10,R11
.even
01AC _int0_isr::
01AC 00D0 rcall push_lset
01AE 00D0 rcall push_gset4
01B0 .dbline -1
01B0 .dbline 100
01B0 ; // 读取ADC转换值 启动AD在PID运算后
01B0 ; #pragma interrupt_handler int0_isr:2
01B0 ; void int0_isr(void)
01B0 ; {
01B0 .dbline 104
01B0 ; unsigned int ii;
01B0 ; unsigned int jj;
01B0 ; //external interupt on INT0
01B0 ; ii=ADCL;
01B0 A0900040 lds R10,16384
01B4 BB24 clr R11
01B6 .dbline 105
01B6 ; delay_nus(1);
01B6 01E0 ldi R16,1
01B8 10E0 ldi R17,0
01BA 00D0 rcall _delay_nus
01BC .dbline 106
01BC ; jj=ADCH;
01BC C0900140 lds R12,16385
01C0 DD24 clr R13
01C2 .dbline 107
01C2 ; ADC=jj;
01C2 D0920100 sts _ADC+1,R13
01C6 C0920000 sts _ADC,R12
01CA .dbline 108
01CA ; ADC<<=8;
01CA 2C2C mov R2,R12
01CC 3D2C mov R3,R13
01CE 322C mov R3,R2
01D0 2224 clr R2
01D2 30920100 sts _ADC+1,R3
01D6 20920000 sts _ADC,R2
01DA .dbline 109
01DA ; ADC|=ii;
01DA 2A28 or R2,R10
01DC 3B28 or R3,R11
01DE 30920100 sts _ADC+1,R3
01E2 20920000 sts _ADC,R2
01E6 .dbline 110
01E6 ; arv_ADC+=(unsigned long)ADC;
01E6 4424 clr R4
01E8 5524 clr R5
01EA 80900200 lds R8,_arv_ADC+2
01EE 90900300 lds R9,_arv_ADC+2+1
01F2 60900000 lds R6,_arv_ADC
01F6 70900100 lds R7,_arv_ADC+1
01FA 620C add R6,R2
01FC 731C adc R7,R3
01FE 841C adc R8,R4
0200 951C adc R9,R5
0202 70920100 sts _arv_ADC+1,R7
0206 60920000 sts _arv_ADC,R6
020A 90920300 sts _arv_ADC+2+1,R9
020E 80920200 sts _arv_ADC+2,R8
0212 .dbline 111
0212 ; arv_count++;
0212 41E0 ldi R20,1
0214 50E0 ldi R21,0
0216 60E0 ldi R22,0
0218 70E0 ldi R23,0
021A 40900200 lds R4,_arv_count+2
021E 50900300 lds R5,_arv_count+2+1
0222 20900000 lds R2,_arv_count
0226 30900100 lds R3,_arv_count+1
022A 240E add R2,R20
022C 351E adc R3,R21
022E 461E adc R4,R22
0230 571E adc R5,R23
0232 30920100 sts _arv_count+1,R3
0236 20920000 sts _arv_count,R2
023A 50920300 sts _arv_count+2+1,R5
023E 40920200 sts _arv_count+2,R4
0242 .dbline -2
0242 .dbline 112
0242 ; }
0242 L16:
0242 00D0 rcall pop_gset4
0244 00D0 rcall pop_lset
0246 .dbline 0 ; func end
0246 1895 reti
0248 .dbsym r jj 12 i
0248 .dbsym r ii 10 i
0248 .dbend
.area vector(rom, abs)
.org 14
000E 24C1 rjmp _timer0_ovf_isr
.area text(rom, con, rel)
0248 .dbfile D:\hujie\init.c
0248 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0248 _timer0_ovf_isr::
0248 00D0 rcall push_lset
024A 00D0 rcall push_gset2
024C 6297 sbiw R28,18
024E .dbline -1
024E .dbline 117
024E ;
024E ; // 1s显示一次数据
024E ; #pragma interrupt_handler timer0_ovf_isr:8
024E ; void timer0_ovf_isr(void)
024E ; {
024E .dbline 118
024E ; SEI();
024E 7894 sei
0250 .dbline 119
0250 ; TCNT0 = 0xD9; //reload counter value
0250 89ED ldi R24,217
0252 82BF out 0x32,R24
0254 .dbline 120
0254 ; time_count++;
0254 80910000 lds R24,_time_count
0258 8F5F subi R24,255 ; addi 1
025A 80930000 sts _time_count,R24
025E .dbline 121
025E ; if(time_count==100)
025E 8436 cpi R24,100
0260 09F0 breq X0
0262 D5C0 rjmp L18
0264 X0:
0264 .dbline 122
0264 ; {
0264 .dbline 123
0264 ; time_count=0;
0264 2224 clr R2
0266 20920000 sts _time_count,R2
026A .dbline 124
026A ; LCD_display(9,0,4,arv_ADC/arv_count/K1);
026A 40900200 lds R4,_arv_count+2
026E 50900300 lds R5,_arv_count+2+1
0272 20900000 lds R2,_arv_count
0276 30900100 lds R3,_arv_count+1
027A 80900200 lds R8,_arv_ADC+2
027E 90900300 lds R9,_arv_ADC+2+1
0282 60900000 lds R6,_arv_ADC
0286 70900100 lds R7,_arv_ADC+1
028A 5A92 st -y,R5
028C 4A92 st -y,R4
028E 3A92 st -y,R3
0290 2A92 st -y,R2
0292 062D mov R16,R6
0294 172D mov R17,R7
0296 282D mov R18,R8
0298 392D mov R19,R9
029A 00D0 rcall div32u
029C EC2F mov R30,R28
029E FD2F mov R31,R29
02A0 0287 std z+10,R16
02A2 1387 std z+11,R17
02A4 2487 std z+12,R18
02A6 3587 std z+13,R19
02A8 00E0 ldi R16,<L22
02AA 10E0 ldi R17,>L22
02AC 00D0 rcall lpm32
02AE 3A93 st -y,R19
02B0 2A93 st -y,R18
02B2 1A93 st -y,R17
02B4 0A93 st -y,R16
02B6 EC2F mov R30,R28
02B8 FD2F mov R31,R29
02BA ; stack offset 4
02BA 2684 ldd R2,z+14
02BC 3784 ldd R3,z+15
02BE 4088 ldd R4,z+16
02C0 5188 ldd R5,z+17
02C2 5694 lsr R5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -