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

📄 ad.s

📁 增量式模糊PID控制方法AVR单片机mega16
💻 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 + -