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

📄 main.lis

📁 本设计以ATMEL公司生产的AT90S8515作为控制核心
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                        .module main.c
                        .area data(ram, con, rel)
 0000           _DAC4_value::
 0000                   .blkb 1
                        .area idata
 0000 01                .byte 1
                        .area data(ram, con, rel)
 0001                   .dbfile D:\hujie\main.c
 0001                   .dbsym e DAC4_value _DAC4_value c
 0001           _K1::
 0001                   .blkb 4
                        .area idata
 0001 E926C13F          .word 0x26e9,0x3fc1
                        .area data(ram, con, rel)
 0005                   .dbfile D:\hujie\main.c
 0005                   .dbsym e K1 _K1 D
 0005           _mode::
 0005                   .blkb 1
                        .area idata
 0005 01                .byte 1
                        .area data(ram, con, rel)
 0006                   .dbfile D:\hujie\main.c
 0006                   .dbsym e mode _mode c
 0006           _arv_ADC::
 0006                   .blkb 4
                        .area idata
 0006 00000000          .word 0,0
                        .area data(ram, con, rel)
 000A                   .dbfile D:\hujie\main.c
 000A                   .dbsym e arv_ADC _arv_ADC l
 000A           _arv_count::
 000A                   .blkb 4
                        .area idata
 000A 00000000          .word 0,0
                        .area data(ram, con, rel)
 000E                   .dbfile D:\hujie\main.c
 000E                   .dbsym e arv_count _arv_count l
                        .area text(rom, con, rel)
 0000                   .dbfile D:\hujie\main.c
 0000                   .dbfunc e main _main fV
                        .even
 0000           _main::
 0000 2497              sbiw R28,4
 0002                   .dbline -1
 0002                   .dbline 28
 0002           ; #include <eeprom.h>
 0002           ; #include <io8515v.h>
 0002           ; #include "init.h"
 0002           ; #include "key5.h"
 0002           ; #include "1602LCD.h"
 0002           ; #define DEFAULT_K1 1.509
 0002           ; #define DEFAULT_T  100
 0002           ; #define MIN_T 50
 0002           ; // globals:
 0002           ; unsigned int  value;                  //  电流数值                     
 0002           ; //unsigned int  *p;                     //  数据指针
 0002           ; unsigned char DAC4_value=1;
 0002           ; float K1=DEFAULT_K1;
 0002           ; unsigned int  ADC;                    //  AD转换值
 0002           ; unsigned int  ADC_GD;
 0002           ; unsigned int  DAC;                    //  DA转换值
 0002           ; unsigned char time_count;             //  计数寄存器
 0002           ; float POUNT;
 0002           ; unsigned char value_table[5];         //  数据缓冲区
 0002           ; unsigned char mode=1;                 //  模式标志
 0002           ; unsigned int  value_temp;             //  数据寄存器
 0002           ; unsigned char j;                                        //  光标位置
 0002           ; unsigned long arv_ADC=0;
 0002           ; unsigned long arv_count=0;
 0002           ; unsigned int Time1;
 0002           ; 
 0002           ; void main(void)
 0002           ; {
 0002                   .dbline 29
 0002           ;       mode_choice();
 0002 A7D0              rcall _mode_choice
 0004                   .dbline 30
 0004           ;       init_devices();                   //  硬件初始化
 0004 00D0              rcall _init_devices
 0006 09C0              rjmp L3
 0008           L2:
 0008                   .dbline 33
 0008                   .dbline 34
 0008 80E0              ldi R24,<_value
 000A 90E0              ldi R25,>_value
 000C 9B83              std y+3,R25
 000E 8A83              std y+2,R24
 0010 84E0              ldi R24,4
 0012 8883              std y+0,R24
 0014 2227              clr R18
 0016 02E0              ldi R16,2
 0018 00D0              rcall _key_service
 001A                   .dbline 35
 001A           L3:
 001A                   .dbline 32
 001A F6CF              rjmp L2
 001C           X0:
 001C                   .dbline -2
 001C                   .dbline 36
 001C           ;       
 001C           ;       while(1)                          //  主循环
 001C           ;       {
 001C           ;           key_service(2,0,4,&value );   //  键盘服务
 001C           ;       }
 001C           ; }
 001C           L1:
 001C 2496              adiw R28,4
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbend
 0020                   .dbfunc e SaveToEEPROM _SaveToEEPROM fV
 0020           ;              i -> R20,R21
 0020           ;            add -> R22,R23
 0020           ;            len -> R10
 0020           ;            off -> R12
                        .even
 0020           _SaveToEEPROM::
 0020 00D0              rcall push_gset4
 0022 A22E              mov R10,R18
 0024 C02E              mov R12,R16
 0026 6885              ldd R22,y+8
 0028 7985              ldd R23,y+9
 002A                   .dbline -1
 002A                   .dbline 38
 002A           ; void SaveToEEPROM(unsigned char off,unsigned char len,unsigned add)
 002A           ; {
 002A                   .dbline 40
 002A           ;       int i;
 002A           ;       for(i=0;i<len;i++)
 002A 4427              clr R20
 002C 5527              clr R21
 002E 15C0              rjmp L9
 0030           L6:
 0030                   .dbline 41
 0030 2C2C              mov R2,R12
 0032 3324              clr R3
 0034 822D              mov R24,R2
 0036 8F5F              subi R24,255    ; addi 1
 0038 C82E              mov R12,R24
 003A 80E0              ldi R24,<_value_table
 003C 90E0              ldi R25,>_value_table
 003E E22D              mov R30,R2
 0040 FF27              clr R31
 0042 E80F              add R30,R24
 0044 F91F              adc R31,R25
 0046 2081              ldd R18,z+0
 0048 262E              mov R2,R22
 004A 372E              mov R3,R23
 004C 6F5F              subi R22,255  ; offset = 1
 004E 7F4F              sbci R23,255
 0050 022D              mov R16,R2
 0052 132D              mov R17,R3
 0054 00D0              rcall _EEPROMwrite
 0056           L7:
 0056                   .dbline 40
 0056 4F5F              subi R20,255  ; offset = 1
 0058 5F4F              sbci R21,255
 005A           L9:
 005A                   .dbline 40
 005A 2A2C              mov R2,R10
 005C 3324              clr R3
 005E 4215              cp R20,R2
 0060 5305              cpc R21,R3
 0062 34F3              brlt L6
 0064                   .dbline -2
 0064                   .dbline 42
 0064           ;               EEPROMwrite(add++,value_table[off++]);
 0064           ; }
 0064           L5:
 0064 00D0              rcall pop_gset4
 0066                   .dbline 0 ; func end
 0066 0895              ret
 0068                   .dbsym r i 20 I
 0068                   .dbsym r add 22 i
 0068                   .dbsym r len 10 c
 0068                   .dbsym r off 12 c
 0068                   .dbend
 0068                   .dbfunc e changK1 _changK1 fi
                        .even
 0068           _changK1::
 0068 00D0              rcall push_gset1
 006A 2497              sbiw R28,4
 006C                   .dbline -1
 006C                   .dbline 44
 006C           ; unsigned int changK1(void)
 006C           ; {
 006C                   .dbline 45
 006C           ;       if(K1>6.5) K1=6.5;
 006C 00E0              ldi R16,<L13
 006E 10E0              ldi R17,>L13
 0070 00D0              rcall lpm32
 0072 3A93              st -y,R19
 0074 2A93              st -y,R18
 0076 1A93              st -y,R17
 0078 0A93              st -y,R16
 007A 40900300          lds R4,_K1+2
 007E 50900400          lds R5,_K1+2+1
 0082 20900100          lds R2,_K1
 0086 30900200          lds R3,_K1+1
 008A 5A92              st -y,R5
 008C 4A92              st -y,R4
 008E 3A92              st -y,R3
 0090 2A92              st -y,R2
 0092 00D0              rcall cmp32f
 0094 5CF4              brge L11
 0096                   .dbline 45
 0096 00E0              ldi R16,<L14
 0098 10E0              ldi R17,>L14
 009A 00D0              rcall lpm32
 009C 10930200          sts _K1+1,R17
 00A0 00930100          sts _K1,R16
 00A4 30930400          sts _K1+2+1,R19
 00A8 20930300          sts _K1+2,R18
 00AC           L11:
 00AC                   .dbline 46
 00AC           ;       return K1*10000;
 00AC 00E0              ldi R16,<L17
 00AE 10E0              ldi R17,>L17
 00B0 00D0              rcall lpm32
 00B2 3A93              st -y,R19
 00B4 2A93              st -y,R18
 00B6 1A93              st -y,R17
 00B8 0A93              st -y,R16
 00BA 40900300          lds R4,_K1+2
 00BE 50900400          lds R5,_K1+2+1
 00C2 20900100          lds R2,_K1
 00C6 30900200          lds R3,_K1+1
 00CA 5A92              st -y,R5
 00CC 4A92              st -y,R4
 00CE 3A92              st -y,R3
 00D0 2A92              st -y,R2
 00D2 00D0              rcall mpy32f
 00D4 EC2F              mov R30,R28
 00D6 FD2F              mov R31,R29
 00D8 0083              std z+0,R16
 00DA 1183              std z+1,R17
 00DC 2283              std z+2,R18
 00DE 3383              std z+3,R19
 00E0 EC2F              mov R30,R28
 00E2 FD2F              mov R31,R29
 00E4 2080              ldd R2,z+0
 00E6 3180              ldd R3,z+1
 00E8 4280              ldd R4,z+2
 00EA 5380              ldd R5,z+3
 00EC 5A92              st -y,R5
 00EE 4A92              st -y,R4
 00F0 3A92              st -y,R3
 00F2 2A92              st -y,R2
 00F4 00E0              ldi R16,<L18
 00F6 10E0              ldi R17,>L18
 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 00D0              rcall cmp32f
 0104 C4F0              brlt L15
 0106 EC2F              mov R30,R28
 0108 FD2F              mov R31,R29
 010A 2080              ldd R2,z+0
 010C 3180              ldd R3,z+1
 010E 4280              ldd R4,z+2
 0110 5380              ldd R5,z+3
 0112 5A92              st -y,R5
 0114 4A92              st -y,R4
 0116 3A92              st -y,R3
 0118 2A92              st -y,R2
 011A 00E0              ldi R16,<L18
 011C 10E0              ldi R17,>L18
 011E 00D0              rcall lpm32
 0120 3A93              st -y,R19
 0122 2A93              st -y,R18
 0124 1A93              st -y,R17
 0126 0A93              st -y,R16
 0128 00D0              rcall sub32f
 012A 00D0              rcall fp2int
 012C 402F              mov R20,R16
 012E 512F              mov R21,R17
 0130 4050              subi R20,0  ; offset = 32768
 0132 5048              sbci R21,128
 0134 09C0              rjmp L16
 0136           L15:
 0136 EC2F              mov R30,R28
 0138 FD2F              mov R31,R29
 013A 0081              ldd R16,z+0
 013C 1181              ldd R17,z+1
 013E 2281              ldd R18,z+2
 0140 3381              ldd R19,z+3
 0142 00D0              rcall fp2int
 0144 402F              mov R20,R16
 0146 512F              mov R21,R17
 0148           L16:
 0148 042F              mov R16,R20
 014A 152F              mov R17,R21
 014C                   .dbline -2
 014C           L10:
 014C 2496              adiw R28,4
 014E 00D0              rcall pop_gset1
 0150                   .dbline 0 ; func end
 0150 0895              ret
 0152                   .dbend
 0152                   .dbfunc e mode_choice _mode_choice fV
 0152           ;           flag -> R20
 0152           ;       key_temp -> R10
                        .even
 0152           _mode_choice::
 0152 00D0              rcall push_gset4
 0154 2697              sbiw R28,6
 0156                   .dbline -1
 0156                   .dbline 49
 0156           ; }
 0156           ; void mode_choice(void)
 0156           ; {
 0156                   .dbline 50
 0156           ;       unsigned char flag=1;
 0156 41E0              ldi R20,1
 0158                   .dbline 53
 0158           ;       unsigned char key_temp;
 0158           ;       
 0158           ;       LCD_init();
 0158 00D0              rcall _LCD_init
 015A                   .dbline 54
 015A           ;       K1=EEPROMread(0x00)+EEPROMread(0x01)*0.1+EEPROMread(0x02)*0.01+EEPROMread(0x03)*0.001+EEPROMread(0x04)*0.0001;
 015A 0027              clr R16
 015C 1127              clr R17
 015E 00D0              rcall _EEPROMread
 0160 202E              mov R2,R16
 0162 01E0              ldi R16,1
 0164 10E0              ldi R17,0
 0166 2F92              push R2
 0168 00D0              rcall _EEPROMread
 016A 2F90              pop R2
 016C 402E              mov R4,R16
 016E 02E0              ldi R16,2
 0170 10E0              ldi R17,0
 0172 4F92              push R4
 0174 2F92              push R2
 0176 00D0              rcall _EEPROMread
 0178 2F90              pop R2
 017A 4F90              pop R4
 017C 602E              mov R6,R16
 017E 03E0              ldi R16,3
 0180 10E0              ldi R17,0
 0182 6F92              push R6
 0184 4F92              push R4
 0186 2F92              push R2
 0188 00D0              rcall _EEPROMread
 018A 2F90              pop R2
 018C 4F90              pop R4
 018E 6F90              pop R6
 0190 802E              mov R8,R16
 0192 04E0              ldi R16,4
 0194 10E0              ldi R17,0
 0196 8F92              push R8
 0198 6F92              push R6
 019A 4F92              push R4

⌨️ 快捷键说明

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