?? main.lis
字號:
.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 + -