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

📄 adc0832.s

📁 AVRmega8515的AD转换
💻 S
字号:
	.module adc0832.c
	.area text(rom, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\adc0832.c
	.dbfunc e read_adc _read_adc fc
;          data1 -> R16
;              i -> R18
	.even
_read_adc::
	.dbline -1
	.dbline 7
; //adc0832相关程序
; #include "adc0832.h"
; 
; 
; 
; uchar read_adc(void)
; {  	 
	.dbline 9
;      uchar i,data1;
;      Clr_adc_cs;//bADcs = 0;
	cbi 0x18,6
	.dbline 10
; 	 Clr_adc_clk;//bADcl=0;
	cbi 0x18,5
	.dbline 12
; 	 
; 	 Set_adc_data;//bADda=1;    //PB.4
	sbi 0x18,4
	.dbline 13
; 	 Set_adc_clk;//bADcl=1;    //PB.5
	sbi 0x18,5
	.dbline 14
; 	 Clr_adc_clk;//bADcl=0;
	cbi 0x18,5
	.dbline 16
; 	 
; 	 Set_adc_data;//bADda=1;
	sbi 0x18,4
	.dbline 17
; 	 Set_adc_clk;// bADcl=1;
	sbi 0x18,5
	.dbline 18
; 	 Clr_adc_clk;//bADcl=0;
	cbi 0x18,5
	.dbline 19
; 	 Clr_adc_data;//bADda=0;
	cbi 0x18,4
	.dbline 21
; 	 
; 	 Set_adc_clk;//bADcl=1;
	sbi 0x18,5
	.dbline 22
; 	 Clr_adc_clk;//bADcl=0;
	cbi 0x18,5
	.dbline 23
; 	 Set_adc_data;//bADda=1;
	sbi 0x18,4
	.dbline 25
;      
; 	 Set_adc_clk;//bADcl=1;
	sbi 0x18,5
	.dbline 26
; 	 Clr_adc_clk;//bADcl=0;	
	cbi 0x18,5
	.dbline 27
; 	 adc_data_in;  //DDRB清零,单片机输入
	cbi 0x17,4
	.dbline 28
;      for(i=8;i>0;i--)
	ldi R18,8
	rjmp L5
L2:
	.dbline 29
; 	 	{
	.dbline 30
; 		data1<<=1;
	lsl R16
	.dbline 31
; 	 	Clr_adc_clk;//bADcl=0;
	cbi 0x18,5
	.dbline 32
; 		asm("nop");              //延时很关键1us
	nop
	.dbline 33
; 		Set_adc_clk;//bADcl=1;
	sbi 0x18,5
	.dbline 34
; 		asm("nop");
	nop
	.dbline 35
; 		if(adc_read_data) data1|=0x01;
	sbis 0x16,4
	rjmp L6
X0:
	.dbline 35
	ori R16,1
L6:
	.dbline 36
; 	 	}
L3:
	.dbline 28
	dec R18
L5:
	.dbline 28
	ldi R24,0
	cp R24,R18
	brlo L2
X1:
	.dbline 37
;        Set_adc_cs;// bADcs=1;
	sbi 0x18,6
	.dbline 38
;        adc_data_out;
	sbi 0x17,4
	.dbline 40
; 	   
; 	   return data1;
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r data1 16 c
	.dbsym r i 18 c
	.dbend
	.dbfunc e returnvol _returnvol fi
;          data2 -> R10
	.even
_returnvol::
	rcall push_xgsetF00C
	.dbline -1
	.dbline 45
; 	 
; }
; 
; uint returnvol(void)
; {
	.dbline 47
;    uchar data2;
;    data2=((ulong)read_adc()*493)/256;
	rcall _read_adc
	mov R2,R16
	clr R3
	clr R4
	clr R5
	ldi R20,237
	ldi R21,1
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	rcall empy32u
	ldi R24,8
	ldi R25,0
	st -y,R24
	rcall lsr32
	mov R10,R16
	.dbline 49
;    
;    return data2;
	clr R17
	.dbline -2
L8:
	.dbline 0 ; func end
	rjmp pop_xgsetF00C
	.dbsym r data2 10 c
	.dbend
; 
; }

⌨️ 快捷键说明

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