📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile E:\新建文件夹\ADDA_ICC\cfile\main.c
0000 .dbfunc e main _main fV
0000 ; test -> R10,R11
0000 ; RS -> R22,R23
0000 ; j -> y+2
0000 ; value -> R20,R21
0000 ; count -> R10,R11
.even
0000 _main::
0000 2697 sbiw R28,6
0002 .dbline -1
0002 .dbline 18
0002 ; #define ENABLE_BIT_DEFINITIONS
0002 ;
0002 ; #include "includes.h"
0002 ;
0002 ;
0002 ;
0002 ; //#define Vref 50000
0002 ; void init_adc(void);
0002 ; void WDR(void);
0002 ; void WDT_init(void);
0002 ;
0002 ; //unsigned char adc_mux = 0x01; //通道选择
0002 ;
0002 ; unsigned char RSend;
0002 ; unsigned char RS_buf[10];
0002 ; unsigned char RS_flag;
0002 ; void main(void)
0002 ; {
0002 .dbline 21
0002 ; float j;
0002 ; int count;
0002 ; unsigned char *test = "The Voltage is: ";
0002 80E0 ldi R24,<L2
0004 90E0 ldi R25,>L2
0006 5C01 movw R10,R24
0008 .dbline 22
0008 ; unsigned char *value = "0.000 V";
0008 40E0 ldi R20,<L3
000A 50E0 ldi R21,>L3
000C .dbline 24
000C ; unsigned char *RS;
000C ; RS = RS_buf;
000C 60E0 ldi R22,<_RS_buf
000E 70E0 ldi R23,>_RS_buf
0010 .dbline 25
0010 ; RS_flag = 0;
0010 2224 clr R2
0012 20920000 sts _RS_flag,R2
0016 .dbline 26
0016 ; delay_nms(1);
0016 01E0 ldi R16,1
0018 10E0 ldi R17,0
001A 0E940000 xcall _delay_nms
001E .dbline 28
001E ; //dataport=0xff;
001E ; OSCCAL=0Xab;//系统时钟校准,不同的芯片和不的频率,
001E 8BEA ldi R24,171
0020 81BF out 0x31,R24
0022 .dbline 29
0022 ; init_adc();
0022 0E940000 xcall _init_adc
0026 .dbline 30
0026 ; InitSerial();
0026 0E940000 xcall _InitSerial
002A .dbline 32
002A ; //init_time1();
002A ; Init_LCD();
002A 0E940000 xcall _Init_LCD
002E .dbline 35
002E ; // WDT_init();
002E ;
002E ; LCD_DisplayString(1,1,test);
002E B982 std y+1,R11
0030 A882 std y+0,R10
0032 21E0 ldi R18,1
0034 01E0 ldi R16,1
0036 0E940000 xcall _LCD_DisplayString
003A .dbline 36
003A ; LCD_DisplayString(2,1,value);
003A 5983 std y+1,R21
003C 4883 std y+0,R20
003E 21E0 ldi R18,1
0040 02E0 ldi R16,2
0042 0E940000 xcall _LCD_DisplayString
0046 .dbline 37
0046 ; put_string(value);
0046 8A01 movw R16,R20
0048 0E940000 xcall _put_string
004C .dbline 38
004C ; put_char(0x0d);
004C 0DE0 ldi R16,13
004E 10E0 ldi R17,0
0050 0E940000 xcall _put_char
0054 .dbline 39
0054 ; put_char(0x0a);
0054 0AE0 ldi R16,10
0056 10E0 ldi R17,0
0058 0E940000 xcall _put_char
005C 85C0 xjmp L5
005E L4:
005E .dbline 41
005E ; while(1)
005E ; {
005E .dbline 43
005E ; //j = (float)(((float)((Vref/1023)))*(ADCH*256+ADCL))/1000.00;
005E ; j = (float)(((float)((Vref/1023)))*( ADC&0X3FF))/1000.00;
005E 00E0 ldi R16,<L7
0060 10E0 ldi R17,>L7
0062 0E940000 xcall lpm32
0066 1801 movw R2,R16
0068 2901 movw R4,R18
006A 04B1 in R16,0x4
006C 15B1 in R17,0x5
006E 1370 andi R17,3
0070 0E940000 xcall uint2fp
0074 3A93 st -y,R19
0076 2A93 st -y,R18
0078 1A93 st -y,R17
007A 0A93 st -y,R16
007C 8101 movw R16,R2
007E 9201 movw R18,R4
0080 0E940000 xcall fpmule2
0084 1801 movw R2,R16
0086 2901 movw R4,R18
0088 00E0 ldi R16,<L8
008A 10E0 ldi R17,>L8
008C 0E940000 xcall lpm32
0090 3A93 st -y,R19
0092 2A93 st -y,R18
0094 1A93 st -y,R17
0096 0A93 st -y,R16
0098 8101 movw R16,R2
009A 9201 movw R18,R4
009C 0E940000 xcall fpdiv2
00A0 0A83 std y+2,R16
00A2 1B83 std y+3,R17
00A4 2C83 std y+4,R18
00A6 3D83 std y+5,R19
00A8 .dbline 44
00A8 ; count = j*100;
00A8 00E0 ldi R16,<L9
00AA 10E0 ldi R17,>L9
00AC 0E940000 xcall lpm32
00B0 CE01 movw R24,R28
00B2 0296 adiw R24,2
00B4 9A93 st -y,R25
00B6 8A93 st -y,R24
00B8 0E940000 xcall fpmule1
00BC 0E940000 xcall fpint
00C0 5801 movw R10,R16
00C2 .dbline 45
00C2 ; value[0] = count /1000+0x30;
00C2 28EE ldi R18,1000
00C4 33E0 ldi R19,3
00C6 0E940000 xcall div16s
00CA C801 movw R24,R16
00CC C096 adiw R24,48
00CE FA01 movw R30,R20
00D0 8083 std z+0,R24
00D2 .dbline 46
00D2 ; count = count %1000;
00D2 28EE ldi R18,1000
00D4 33E0 ldi R19,3
00D6 8501 movw R16,R10
00D8 0E940000 xcall mod16s
00DC 5801 movw R10,R16
00DE .dbline 47
00DE ; value[2] = count /100+0x30;
00DE 24E6 ldi R18,100
00E0 30E0 ldi R19,0
00E2 0E940000 xcall div16s
00E6 C801 movw R24,R16
00E8 C096 adiw R24,48
00EA FA01 movw R30,R20
00EC 8283 std z+2,R24
00EE .dbline 48
00EE ; count = count %100;
00EE 24E6 ldi R18,100
00F0 30E0 ldi R19,0
00F2 8501 movw R16,R10
00F4 0E940000 xcall mod16s
00F8 5801 movw R10,R16
00FA .dbline 49
00FA ; value[3] = count /10 + 0x30;
00FA 2AE0 ldi R18,10
00FC 30E0 ldi R19,0
00FE 0E940000 xcall div16s
0102 C801 movw R24,R16
0104 C096 adiw R24,48
0106 FA01 movw R30,R20
0108 8383 std z+3,R24
010A .dbline 50
010A ; value[4] = count %10 + 0x30;
010A 2AE0 ldi R18,10
010C 30E0 ldi R19,0
010E 8501 movw R16,R10
0110 0E940000 xcall mod16s
0114 C801 movw R24,R16
0116 C096 adiw R24,48
0118 FA01 movw R30,R20
011A 8483 std z+4,R24
011C .dbline 52
011C ;
011C ; LCD_Cursor(0,1);
011C 21E0 ldi R18,1
011E 0027 clr R16
0120 0E940000 xcall _LCD_Cursor
0124 .dbline 53
0124 ; LCD_DisplayString(2,1,value);
0124 5983 std y+1,R21
0126 4883 std y+0,R20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -