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

📄 main.lis

📁 AD/DA转换,通过外挂LCD显示转换数据数据值
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -