ad.asm
来自「本文介绍了利用两套SPCE061A精简开发板(简称61板)和两套传感器模组设计的」· 汇编 代码 · 共 65 行
ASM
65 行
//====================================================================================
//文 件 名: AD.asm
//功能描述: 1/2通道A/D转换函数
//维护记录: 2006年6月27 by hongyan.Feng
//====================================================================================
.INCLUDE SPCE061A.inc
.CODE
//==============================================================================
//汇编语言格式:_ADGet
//C语言格式:unsigned int ADGet(void)
//功能描述:通道1的A/D转换函数
//入口参数:无
//出口参数:A/D转换后的10位数据
//===============================================================================
.PUBLIC _ADGet
_ADGet:
r1 = 0x0000
[P_DAC_Ctrl] = r1
r1 = 0x0001 //选择ADC通道0和通道1
[P_ADC_MUX_Ctrl] = r1
r1 = 0x0001 //使能ADC
[P_ADC_Ctrl] = r1
r1 = [P_ADC_MUX_Data] //启动ADC
?Loop:
r1 = [P_ADC_MUX_Ctrl]
test r1,0x8000 //判断转换是否完成?
jz ?Loop //没有则继续转换
r1 = [P_ADC_MUX_Data] //取转换数据
r1 = r1 lsr 4
r1 = r1 lsr 2 //右移六位,把转换后的10位数据移到低10位
r2 = 0x0001
[P_Watchdog_Clear] = r2 //清看门狗
retf
//==============================================================================
//汇编语言格式:_ADGet
//C语言格式:unsigned int ADGet(void)
//功能描述:通道2的A/D转换函数
//入口参数:无
//出口参数:无
//===============================================================================
.PUBLIC _ADGet1
_ADGet1:
r1 = 0x0002 //选择ADC通道1
[P_ADC_MUX_Ctrl] = r1
r1 = 0x0001 //使能ADC
[P_ADC_Ctrl] = r1
r1 = [P_ADC_MUX_Data] //启动ADC
?Loop:
r1 = [P_ADC_MUX_Ctrl]
test r1,0x8000 //判断转换是否完成?
jz ?Loop //没有则继续转换
r1 = [P_ADC_MUX_Data] //取转换数据
r1 = r1 lsr 4
r1 = r1 lsr 2 //右移六位,只取八位数据进行显示
r2 = 0x0001
[P_Watchdog_Clear] = r2 //清看门狗
retf
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?