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

📄 ad.lis

📁 用m16编的ad-da转换程序。已经在proteus上面调通。
💻 LIS
字号:
                        .module AD.C
                        .area data(ram, con, rel)
 0000           _adc_mux::
 0000                   .blkb 1
                        .area idata
 0000 01                .byte 1
                        .area data(ram, con, rel)
 0001                   .dbfile E:\仿真\ADC\AD.C
 0001                   .dbsym e adc_mux _adc_mux c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\仿真\ADC\AD.C
 0000                   .dbfunc e init_adc _init_adc fV
                        .even
 0000           _init_adc::
 0000                   .dbline -1
 0000                   .dbline 8
 0000           ; //#define AD_C
 0000           ; #include "includes.h"
 0000           ; unsigned char  adc_mux = 0x01 ;
 0000           ; 
 0000           ; /******************************************************************************/
 0000           ; /******************************************************************************/
 0000           ; void init_adc(void)
 0000           ; {     
 0000                   .dbline 12
 0000           ;     //WDR();       //看门狗计数清零
 0000           ;     //WDTCR=0x0F;  //使能watchdog,并且,采用2048K分频,典型溢出时间5V时2.1S
 0000           ;     // ADCSRA=0X00;
 0000           ;     ADCSRA = 0x00; 
 0000 2224              clr R2
 0002 26B8              out 0x6,R2
 0004                   .dbline 13
 0004           ;     ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);  //参考电压为内部2.56
 0004 80910000          lds R24,_adc_mux
 0008 8F71              andi R24,31
 000A 806C              ori R24,192
 000C 87B9              out 0x7,R24
 000E                   .dbline 16
 000E           ;     //ADMUX =(adc_mux&0x1f)|(1<<REFS0);  //参考电压为内部AVCC
 000E           ;     //ADMUX =(adc_mux&0x1f);  //参考电压为引脚AREF
 000E           ;     ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
 000E 8EEC              ldi R24,206
 0010 86B9              out 0x6,R24
 0012                   .dbline 17
 0012           ;     asm("sei");
 0012 7894              sei
 0014                   .dbline 18
 0014           ;     UBRRH = 25;
 0014 89E1              ldi R24,25
 0016 80BD              out 0x20,R24
 0018                   .dbline 19
 0018           ;     UBRRL = 25;
 0018 89B9              out 0x9,R24
 001A                   .dbline 20
 001A           ;     UCSRB=0x18;    
 001A 88E1              ldi R24,24
 001C 8AB9              out 0xa,R24
 001E                   .dbline 21
 001E           ;     UCSRC=0x86;        
 001E 86E8              ldi R24,134
 0020 80BD              out 0x20,R24
 0022                   .dbline -2
 0022           L1:
 0022                   .dbline 0 ; func end
 0022 0895              ret
 0024                   .dbend
                        .area vector(rom, abs)
                        .org 56
 0038 0C941200          jmp _adc_isr
                        .area text(rom, con, rel)
 0024                   .dbfile E:\仿真\ADC\AD.C
 0024                   .dbfunc e adc_isr _adc_isr fV
                        .even
 0024           _adc_isr::
 0024 8A93              st -y,R24
 0026 8FB7              in R24,0x3f
 0028 8A93              st -y,R24
 002A                   .dbline -1
 002A                   .dbline 34
 002A           ; }
 002A           ; 
 002A           ; /******************************************************************************/
 002A           ; 
 002A           ; /******************************************************************************/
 002A           ;  //ADC完成中断
 002A           ; //#pragma vector = interrupt_handler adc_isr:iv_ADC  
 002A           ; // define the interrupt handler
 002A           ; 
 002A           ; //#pragma vector=ADC_vect __interrupt void adc_isr( void )
 002A           ; #pragma interrupt_handler adc_isr:15
 002A           ; void adc_isr(void)
 002A           ; {
 002A                   .dbline 35
 002A           ;     ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);
 002A 80910000          lds R24,_adc_mux
 002E 8F71              andi R24,31
 0030 806C              ori R24,192
 0032 87B9              out 0x7,R24
 0034                   .dbline 36
 0034           ;     ADCSRA|=(1<<ADSC);//启动AD转换
 0034 369A              sbi 0x6,6
 0036                   .dbline -2
 0036           L2:
 0036 8991              ld R24,y+
 0038 8FBF              out 0x3f,R24
 003A 8991              ld R24,y+
 003C                   .dbline 0 ; func end
 003C 1895              reti
 003E                   .dbend

⌨️ 快捷键说明

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