📄 ad.s
字号:
.module AD.C
.area data(ram, con, rel)
_adc_mux::
.blkb 1
.area idata
.byte 1
.area data(ram, con, rel)
.dbfile D:\仿真\增量式模糊控制\AD.C
.dbsym e adc_mux _adc_mux c
.area text(rom, con, rel)
.dbfile D:\仿真\增量式模糊控制\AD.C
.dbfunc e init_adc _init_adc fV
.even
_init_adc::
.dbline -1
.dbline 8
; #define AD_C
; #include "includes.h"
; unsigned char adc_mux = 0x01 ;
;
; /******************************************************************************/
; /******************************************************************************/
; void init_adc(void)
; {
.dbline 13
;
; //WDR(); //看门狗计数清零
; //WDTCR=0x0F; //使能watchdog,并且,采用2048K分频,典型溢出时间5V时2.1S
; // ADCSRA=0X00;
; ADCSR = 0x00;
clr R2
out 0x6,R2
.dbline 15
; //ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1); //参考电压为内部2.56
; ADMUX =(adc_mux&0x1f)|(1<<REFS0); //参考电压为内部AVCC
lds R24,_adc_mux
andi R24,31
ori R24,64
out 0x7,R24
.dbline 17
; //ADMUX =(adc_mux&0x1f); //参考电压为引脚AREF
; ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
ldi R24,206
out 0x6,R24
.dbline 18
; asm("sei");
sei
.dbline 20
; //UBRRH = 25;
; UBRRL = 25;
ldi R24,25
out 0x9,R24
.dbline 21
; UCSRB=0x18;
ldi R24,24
out 0xa,R24
.dbline 22
; UCSRC=0x86;
ldi R24,134
out 0x20,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.area vector(rom, abs)
.org 56
jmp _adc_isr
.area text(rom, con, rel)
.dbfile D:\仿真\增量式模糊控制\AD.C
.dbfunc e adc_isr _adc_isr fV
.even
_adc_isr::
st -y,R24
in R24,0x3f
st -y,R24
.dbline -1
.dbline 34
; /*
; ADCSR = 0x00; //disable adc
; ADMUX = 0x00; //select adc input 0
; ACSR = 0x80;
; ADCSR = 0xEE;
; */
; }
; //ADC完成中断
; /******************************************************************************/
; #pragma interrupt_handler adc_isr:15
; void adc_isr(void)
; {
.dbline 38
; //conversion complete, read value (int) using...
; // value=ADCL; //Read 8 low bits first (important)
; // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
; ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);
lds R24,_adc_mux
andi R24,31
ori R24,192
out 0x7,R24
.dbline 39
; ADCSR|=(1<<ADSC);//启动AD转换
sbi 0x6,6
.dbline -2
L2:
ld R24,y+
out 0x3f,R24
ld R24,y+
.dbline 0 ; func end
reti
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -