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

📄 ad.lis

📁 增量式模糊PID控制方法AVR单片机mega16
💻 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 D:\仿真\增量式模糊控制\AD.C
 0001                   .dbsym e adc_mux _adc_mux c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\仿真\增量式模糊控制\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 13
 0000           ; 
 0000           ;     //WDR();       //看门狗计数清零
 0000           ;     //WDTCR=0x0F;  //使能watchdog,并且,采用2048K分频,典型溢出时间5V时2.1S
 0000           ;     // ADCSRA=0X00;
 0000           ;     ADCSR = 0x00; 
 0000 2224              clr R2
 0002 26B8              out 0x6,R2
 0004                   .dbline 15
 0004           ;     //ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);  //参考电压为内部2.56
 0004           ;     ADMUX =(adc_mux&0x1f)|(1<<REFS0);  //参考电压为内部AVCC
 0004 80910000          lds R24,_adc_mux
 0008 8F71              andi R24,31
 000A 8064              ori R24,64
 000C 87B9              out 0x7,R24
 000E                   .dbline 17
 000E           ;     //ADMUX =(adc_mux&0x1f);  //参考电压为引脚AREF
 000E           ;     ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
 000E 8EEC              ldi R24,206
 0010 86B9              out 0x6,R24
 0012                   .dbline 18
 0012           ;     asm("sei");
 0012 7894              sei
 0014                   .dbline 20
 0014           ;     //UBRRH = 25;
 0014           ;     UBRRL = 25;
 0014 89E1              ldi R24,25
 0016 89B9              out 0x9,R24
 0018                   .dbline 21
 0018           ;     UCSRB=0x18;    
 0018 88E1              ldi R24,24
 001A 8AB9              out 0xa,R24
 001C                   .dbline 22
 001C           ;     UCSRC=0x86;        
 001C 86E8              ldi R24,134
 001E 80BD              out 0x20,R24
 0020                   .dbline -2
 0020           L1:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbend
                        .area vector(rom, abs)
                        .org 56
 0038 0C941100          jmp _adc_isr
                        .area text(rom, con, rel)
 0022                   .dbfile D:\仿真\增量式模糊控制\AD.C
 0022                   .dbfunc e adc_isr _adc_isr fV
                        .even
 0022           _adc_isr::
 0022 8A93              st -y,R24
 0024 8FB7              in R24,0x3f
 0026 8A93              st -y,R24
 0028                   .dbline -1
 0028                   .dbline 34
 0028           ;       /*
 0028           ;        ADCSR = 0x00; //disable adc
 0028           ;      ADMUX = 0x00; //select adc input 0
 0028           ;      ACSR  = 0x80;
 0028           ;      ADCSR = 0xEE;
 0028           ;        */
 0028           ; }
 0028           ;  //ADC完成中断
 0028           ; /******************************************************************************/
 0028           ; #pragma interrupt_handler adc_isr:15
 0028           ; void adc_isr(void)
 0028           ; {
 0028                   .dbline 38
 0028           ;  //conversion complete, read value (int) using...
 0028           ;  // value=ADCL;            //Read 8 low bits first (important)
 0028           ;  // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
 0028           ;  ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);
 0028 80910000          lds R24,_adc_mux
 002C 8F71              andi R24,31
 002E 806C              ori R24,192
 0030 87B9              out 0x7,R24
 0032                   .dbline 39
 0032           ;  ADCSR|=(1<<ADSC);//启动AD转换
 0032 369A              sbi 0x6,6
 0034                   .dbline -2
 0034           L2:
 0034 8991              ld R24,y+
 0036 8FBF              out 0x3f,R24
 0038 8991              ld R24,y+
 003A                   .dbline 0 ; func end
 003A 1895              reti
 003C                   .dbend

⌨️ 快捷键说明

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