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

📄 adc.asm

📁 2005年全国大学生电子设计竞赛论文集
💻 ASM
字号:
//*****************************************************************************/
// 文件名称: ADC.asm
// 实现功能: 完成模数转换的功能
// IDE环境:  SUNPLUS u'nSPTM  IDE 1.16.4          
// 日期: 2005/7/19
// 作者:Eric
//*****************************************************************************/
.include    hardware.inc

.define		P_ADC_MUX_Ctrl		0x702b 
.define		P_ADC_MUX_DATA		0x702C
.define 	P_ADC_LINEIN_Data	0x702C

.RAM
.PUBLIC _AD_DATA;
.var _AD_DATA

.CODE
//*****************************************************************************/
// 函数原型: void LOAD_AD(void):
// 实现功能: 从选择的通道中取模拟信号进行转换,并将结果保存到变量
// 参数要求: 无
//*****************************************************************************/
.public _LOAD_AD
_LOAD_AD: .PROC
	PUSH R1 TO [SP]

_contin_L_AD:	
	R1 = [P_ADC_MUX_Ctrl]        	//读寄存器[P_ADC_MUX_Ctrl]的B15位
	TEST R1,0x8000               	//判断是否转换完毕
    JZ _contin_L_AD              	//否,继续转换
    R1 = [P_ADC_MUX_DATA]			//是,则读出[P_ADC_MUX_DATA]转换结果
	R1=R1 LSR 4;					//从高10位移到低10位
	R1=R1 LSR 2;
	[_AD_DATA]=R1					//保存至全局变量
	    
	POP R1 FROM [SP]
    
RETF
.ENDP

//函数原型:void ADC_Inti(void)
.public _ADC_Init
_ADC_Init:	.proc
	push R1,R5 to [sp]
	
	R1 = 0x0003;                //选择通道LINE_IN为IOA2
	[P_ADC_MUX_Ctrl] = R1
	
    R1 = 0x0003                 //允许A/D转换
    [P_ADC_Ctrl] = R1 
    		
	pop R1,R5 from [sp]
	RETF
.endp

⌨️ 快捷键说明

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