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

📄 adc0832.lis

📁 AVRmega8515的AD转换
💻 LIS
字号:
                        .module adc0832.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\adc0832.c
 0000                   .dbfunc e read_adc _read_adc fc
 0000           ;          data1 -> R16
 0000           ;              i -> R18
                        .even
 0000           _read_adc::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; //adc0832相关程序
 0000           ; #include "adc0832.h"
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; uchar read_adc(void)
 0000           ; {      
 0000                   .dbline 9
 0000           ;      uchar i,data1;
 0000           ;      Clr_adc_cs;//bADcs = 0;
 0000 C698              cbi 0x18,6
 0002                   .dbline 10
 0002           ;        Clr_adc_clk;//bADcl=0;
 0002 C598              cbi 0x18,5
 0004                   .dbline 12
 0004           ;        
 0004           ;        Set_adc_data;//bADda=1;    //PB.4
 0004 C49A              sbi 0x18,4
 0006                   .dbline 13
 0006           ;        Set_adc_clk;//bADcl=1;    //PB.5
 0006 C59A              sbi 0x18,5
 0008                   .dbline 14
 0008           ;        Clr_adc_clk;//bADcl=0;
 0008 C598              cbi 0x18,5
 000A                   .dbline 16
 000A           ;        
 000A           ;        Set_adc_data;//bADda=1;
 000A C49A              sbi 0x18,4
 000C                   .dbline 17
 000C           ;        Set_adc_clk;// bADcl=1;
 000C C59A              sbi 0x18,5
 000E                   .dbline 18
 000E           ;        Clr_adc_clk;//bADcl=0;
 000E C598              cbi 0x18,5
 0010                   .dbline 19
 0010           ;        Clr_adc_data;//bADda=0;
 0010 C498              cbi 0x18,4
 0012                   .dbline 21
 0012           ;        
 0012           ;        Set_adc_clk;//bADcl=1;
 0012 C59A              sbi 0x18,5
 0014                   .dbline 22
 0014           ;        Clr_adc_clk;//bADcl=0;
 0014 C598              cbi 0x18,5
 0016                   .dbline 23
 0016           ;        Set_adc_data;//bADda=1;
 0016 C49A              sbi 0x18,4
 0018                   .dbline 25
 0018           ;      
 0018           ;        Set_adc_clk;//bADcl=1;
 0018 C59A              sbi 0x18,5
 001A                   .dbline 26
 001A           ;        Clr_adc_clk;//bADcl=0; 
 001A C598              cbi 0x18,5
 001C                   .dbline 27
 001C           ;        adc_data_in;  //DDRB清零,单片机输入
 001C BC98              cbi 0x17,4
 001E                   .dbline 28
 001E           ;      for(i=8;i>0;i--)
 001E 28E0              ldi R18,8
 0020 09C0              rjmp L5
 0022           L2:
 0022                   .dbline 29
 0022           ;               {
 0022                   .dbline 30
 0022           ;               data1<<=1;
 0022 000F              lsl R16
 0024                   .dbline 31
 0024           ;               Clr_adc_clk;//bADcl=0;
 0024 C598              cbi 0x18,5
 0026                   .dbline 32
 0026           ;               asm("nop");              //延时很关键1us
 0026 0000              nop
 0028                   .dbline 33
 0028           ;               Set_adc_clk;//bADcl=1;
 0028 C59A              sbi 0x18,5
 002A                   .dbline 34
 002A           ;               asm("nop");
 002A 0000              nop
 002C                   .dbline 35
 002C           ;               if(adc_read_data) data1|=0x01;
 002C B49B              sbis 0x16,4
 002E 01C0              rjmp L6
 0030           X0:
 0030                   .dbline 35
 0030 0160              ori R16,1
 0032           L6:
 0032                   .dbline 36
 0032           ;               }
 0032           L3:
 0032                   .dbline 28
 0032 2A95              dec R18
 0034           L5:
 0034                   .dbline 28
 0034 80E0              ldi R24,0
 0036 8217              cp R24,R18
 0038 A0F3              brlo L2
 003A           X1:
 003A                   .dbline 37
 003A           ;        Set_adc_cs;// bADcs=1;
 003A C69A              sbi 0x18,6
 003C                   .dbline 38
 003C           ;        adc_data_out;
 003C BC9A              sbi 0x17,4
 003E                   .dbline 40
 003E           ;          
 003E           ;          return data1;
 003E                   .dbline -2
 003E           L1:
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbsym r data1 16 c
 0040                   .dbsym r i 18 c
 0040                   .dbend
 0040                   .dbfunc e returnvol _returnvol fi
 0040           ;          data2 -> R10
                        .even
 0040           _returnvol::
 0040 00D0              rcall push_xgsetF00C
 0042                   .dbline -1
 0042                   .dbline 45
 0042           ;        
 0042           ; }
 0042           ; 
 0042           ; uint returnvol(void)
 0042           ; {
 0042                   .dbline 47
 0042           ;    uchar data2;
 0042           ;    data2=((ulong)read_adc()*493)/256;
 0042 DEDF              rcall _read_adc
 0044 202E              mov R2,R16
 0046 3324              clr R3
 0048 4424              clr R4
 004A 5524              clr R5
 004C 4DEE              ldi R20,237
 004E 51E0              ldi R21,1
 0050 60E0              ldi R22,0
 0052 70E0              ldi R23,0
 0054 5A92              st -y,R5
 0056 4A92              st -y,R4
 0058 3A92              st -y,R3
 005A 2A92              st -y,R2
 005C 8A01              movw R16,R20
 005E 9B01              movw R18,R22
 0060 00D0              rcall empy32u
 0062 88E0              ldi R24,8
 0064 90E0              ldi R25,0
 0066 8A93              st -y,R24
 0068 00D0              rcall lsr32
 006A A02E              mov R10,R16
 006C                   .dbline 49
 006C           ;    
 006C           ;    return data2;
 006C 1127              clr R17
 006E                   .dbline -2
 006E           L8:
 006E                   .dbline 0 ; func end
 006E 00C0              rjmp pop_xgsetF00C
 0070                   .dbsym r data2 10 c
 0070                   .dbend
 0070           ; 
 0070           ; }

⌨️ 快捷键说明

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