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

📄 init.lis

📁 增量式模糊PID控制方法AVR单片机mega16
💻 LIS
字号:
                        .module init.c
                        .area data(ram, con, rel)
 0000           _test::
 0000                   .blkw 1
                        .area idata
 0000 0C00              .word L1
                        .area data(ram, con, rel)
 0002                   .dbfile D:\仿真\增量式模糊控制\init.c
 0002                   .dbsym e test _test pc
 0002           _value::
 0002                   .blkw 1
                        .area idata
 0002 0400              .word L2
                        .area data(ram, con, rel)
 0004                   .dbfile D:\仿真\增量式模糊控制\init.c
 0004                   .dbsym e value _value pc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\仿真\增量式模糊控制\init.c
 0000                   .dbfunc e WDR _WDR fV
                        .even
 0000           _WDR::
 0000                   .dbline -1
 0000                   .dbline 13
 0000           ; #define INIT_C
 0000           ; #include "includes.h"
 0000           ; //#define Vref 25600
 0000           ; 
 0000           ; 
 0000           ; int count;
 0000           ; float j;  
 0000           ;    
 0000           ; unsigned char *test = "The Voltage is: ";
 0000           ; unsigned char *value = "0.000 V";     
 0000           ; 
 0000           ; void WDR(void)
 0000           ; {
 0000                   .dbline 14
 0000           ;      asm("wdr");
 0000 A895              wdr
 0002                   .dbline -2
 0002           L3:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e WDT_init _WDT_init fV
                        .even
 0004           _WDT_init::
 0004                   .dbline -1
 0004                   .dbline 18
 0004           ; }
 0004           ; 
 0004           ; void WDT_init(void)
 0004           ; {
 0004                   .dbline 19
 0004           ;    WDR();
 0004 FDDF              xcall _WDR
 0006                   .dbline 20
 0006           ;    WDTCR = 0x0f;
 0006 8FE0              ldi R24,15
 0008 81BD              out 0x21,R24
 000A                   .dbline -2
 000A           L4:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e init_time1 _init_time1 fV
                        .even
 000C           _init_time1::
 000C                   .dbline -1
 000C                   .dbline 23
 000C           ; }
 000C           ; void init_time1(void)
 000C           ; {
 000C                   .dbline 24
 000C           ;     TIMSK = 0X02;  //T1溢出中断
 000C 82E0              ldi R24,2
 000E 89BF              out 0x39,R24
 0010                   .dbline 25
 0010           ;     TCCR1B = 0X00; //停止T1
 0010 2224              clr R2
 0012 2EBC              out 0x2e,R2
 0014                   .dbline 26
 0014           ;     TCNT1H = 0XF9; //
 0014 89EF              ldi R24,249
 0016 8DBD              out 0x2d,R24
 0018                   .dbline 27
 0018           ;     TCNT1L = 0XE6;
 0018 86EE              ldi R24,230
 001A 8CBD              out 0x2c,R24
 001C                   .dbline 28
 001C           ;     TCCR1A = 0X00;
 001C 2FBC              out 0x2f,R2
 001E                   .dbline 29
 001E           ;     TCCR1B = 0X01; 
 001E 81E0              ldi R24,1
 0020 8EBD              out 0x2e,R24
 0022                   .dbline 30
 0022           ;     asm("sei");
 0022 7894              sei
 0024                   .dbline -2
 0024           L5:
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C941300          jmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0026                   .dbfile D:\仿真\增量式模糊控制\init.c
 0026                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0026           _timer1_ovf_isr::
 0026 0E940000          xcall push_lset
 002A 2297              sbiw R28,2
 002C                   .dbline -1
 002C                   .dbline 37
 002C           ; }
 002C           ; 
 002C           ; 
 002C           ; 
 002C           ; #pragma interrupt_handler timer1_ovf_isr:9
 002C           ; void timer1_ovf_isr(void)
 002C           ; {
 002C                   .dbline 38
 002C           ;     TCNT1H = 0XF9; //
 002C 89EF              ldi R24,249
 002E 8DBD              out 0x2d,R24
 0030                   .dbline 39
 0030           ;     TCNT1L = 0XE6;
 0030 86EE              ldi R24,230
 0032 8CBD              out 0x2c,R24
 0034                   .dbline 40
 0034           ;     j = (float)(((float)((Vref /1023)))*( ADC&0X3FF))/1000.00;
 0034 84B1              in R24,0x4
 0036 95B1              in R25,0x5
 0038 8170              andi R24,1
 003A 9070              andi R25,0
 003C 1C01              movw R2,R24
 003E 00E0              ldi R16,<L7
 0040 10E0              ldi R17,>L7
 0042 0E940000          xcall lpm32
 0046 3A93              st -y,R19
 0048 2A93              st -y,R18
 004A 1A93              st -y,R17
 004C 0A93              st -y,R16
 004E 00E0              ldi R16,<L8
 0050 10E0              ldi R17,>L8
 0052 0E940000          xcall lpm32
 0056 3A93              st -y,R19
 0058 2A93              st -y,R18
 005A 1A93              st -y,R17
 005C 0A93              st -y,R16
 005E 8101              movw R16,R2
 0060 1695              lsr R17
 0062 0795              ror R16
 0064 0E940000          xcall int2fp
 0068 3A93              st -y,R19
 006A 2A93              st -y,R18
 006C 1A93              st -y,R17
 006E 0A93              st -y,R16
 0070 0E940000          xcall empy32fs
 0074 8101              movw R16,R2
 0076 0E940000          xcall int2fp
 007A 3A93              st -y,R19
 007C 2A93              st -y,R18
 007E 1A93              st -y,R17
 0080 0A93              st -y,R16
 0082 0E940000          xcall add32fs
 0086 0E940000          xcall empy32fs
 008A 00E0              ldi R16,<L9
 008C 10E0              ldi R17,>L9
 008E 0E940000          xcall lpm32
 0092 3A93              st -y,R19
 0094 2A93              st -y,R18
 0096 1A93              st -y,R17
 0098 0A93              st -y,R16
 009A 0E940000          xcall div32f
 009E 10930100          sts _j+1,R17
 00A2 00930000          sts _j,R16
 00A6 30930300          sts _j+2+1,R19
 00AA 20930200          sts _j+2,R18
 00AE                   .dbline 41
 00AE           ;     count = j*100;                                    
 00AE 00E0              ldi R16,<L10
 00B0 10E0              ldi R17,>L10
 00B2 0E940000          xcall lpm32
 00B6 3A93              st -y,R19
 00B8 2A93              st -y,R18
 00BA 1A93              st -y,R17
 00BC 0A93              st -y,R16
 00BE 40900200          lds R4,_j+2
 00C2 50900300          lds R5,_j+2+1
 00C6 20900000          lds R2,_j
 00CA 30900100          lds R3,_j+1
 00CE 5A92              st -y,R5
 00D0 4A92              st -y,R4
 00D2 3A92              st -y,R3
 00D4 2A92              st -y,R2
 00D6 0E940000          xcall empy32f
 00DA 0E940000          xcall fp2int
 00DE 10930500          sts _count+1,R17
 00E2 00930400          sts _count,R16
 00E6                   .dbline 42
 00E6           ;     value[0] = count /1000+0x30;
 00E6 28EE              ldi R18,1000
 00E8 33E0              ldi R19,3
 00EA 0E940000          xcall div16s
 00EE C801              movw R24,R16
 00F0 C096              adiw R24,48
 00F2 E0910200          lds R30,_value
 00F6 F0910300          lds R31,_value+1
 00FA 8083              std z+0,R24
 00FC                   .dbline 43
 00FC           ;     count = count %1000;
 00FC 28EE              ldi R18,1000
 00FE 33E0              ldi R19,3
 0100 00910400          lds R16,_count
 0104 10910500          lds R17,_count+1
 0108 0E940000          xcall mod16s
 010C 10930500          sts _count+1,R17
 0110 00930400          sts _count,R16
 0114                   .dbline 44
 0114           ;     value[2] = count /100+0x30;
 0114 24E6              ldi R18,100
 0116 30E0              ldi R19,0
 0118 0E940000          xcall div16s
 011C C801              movw R24,R16
 011E C096              adiw R24,48
 0120 E0910200          lds R30,_value
 0124 F0910300          lds R31,_value+1
 0128 8283              std z+2,R24
 012A                   .dbline 45
 012A           ;     count = count %100;
 012A 24E6              ldi R18,100
 012C 30E0              ldi R19,0
 012E 00910400          lds R16,_count
 0132 10910500          lds R17,_count+1
 0136 0E940000          xcall mod16s
 013A 10930500          sts _count+1,R17
 013E 00930400          sts _count,R16
 0142                   .dbline 46
 0142           ;     value[3] = count  /10 + 0x30;                      
 0142 2AE0              ldi R18,10
 0144 30E0              ldi R19,0
 0146 0E940000          xcall div16s
 014A C801              movw R24,R16
 014C C096              adiw R24,48
 014E E0910200          lds R30,_value
 0152 F0910300          lds R31,_value+1
 0156 8383              std z+3,R24
 0158                   .dbline 47
 0158           ;     value[4] = count  %10 + 0x30;                      
 0158 2AE0              ldi R18,10
 015A 30E0              ldi R19,0
 015C 00910400          lds R16,_count
 0160 10910500          lds R17,_count+1
 0164 0E940000          xcall mod16s
 0168 C801              movw R24,R16
 016A C096              adiw R24,48
 016C E0910200          lds R30,_value
 0170 F0910300          lds R31,_value+1
 0174 8483              std z+4,R24
 0176                   .dbline 49
 0176           ;       
 0176           ;     LCD_Cursor(0,1);
 0176 21E0              ldi R18,1
 0178 0027              clr R16
 017A 0E940000          xcall _LCD_Cursor
 017E                   .dbline 50
 017E           ;     LCD_DisplayString(2,2,value); 
 017E 20900200          lds R2,_value
 0182 30900300          lds R3,_value+1
 0186 3982              std y+1,R3
 0188 2882              std y+0,R2
 018A 22E0              ldi R18,2
 018C 02E0              ldi R16,2
 018E 0E940000          xcall _LCD_DisplayString
 0192                   .dbline -2
 0192           L6:
 0192 2296              adiw R28,2
 0194 0E940000          xcall pop_lset
 0198                   .dbline 0 ; func end
 0198 1895              reti
 019A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\仿真\增量式模糊控制\init.c
 0000           _j::
 0000                   .blkb 4
 0004                   .dbsym e j _j D
 0004           _count::
 0004                   .blkb 2
 0006                   .dbsym e count _count I
                        .area lit(rom, con, rel)
 0000           L10:
 0000 0000C842          .word 0x0,0x42c8
 0004           L9:
 0004 00007A44          .word 0x0,0x447a
 0008           L8:
 0008 00000040          .word 0x0,0x4000
 000C           L7:
 000C 0000C841          .word 0x0,0x41c8
                        .area data(ram, con, rel)
 0004                   .dbfile D:\仿真\增量式模糊控制\init.c
 0004           L2:
 0004                   .blkb 8
                        .area idata
 0004 302E303030205600  .byte 48,46,48,48,48,32,'V,0
                        .area data(ram, con, rel)
 000C                   .dbfile D:\仿真\增量式模糊控制\init.c
 000C           L1:
 000C                   .blkb 17
                        .area idata
 000C 54686520566F6C746167652069733A20  .byte 'T,'h,'e,32,'V,'o,'l,'t,'a,'g,'e,32,'i,'s,58,32
 001C 00                .byte 0
                        .area data(ram, con, rel)
 001D                   .dbfile D:\仿真\增量式模糊控制\init.c

⌨️ 快捷键说明

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