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

📄 init.lis

📁 本设计以ATMEL公司生产的AT90S8515作为控制核心
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -