📄 ad.asm
字号:
//====================================================================================
//文 件 名: 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -