📄 adc.c
字号:
/**************************************************************************************
* 子程序:底层程序 *
* 功能:内部ADC功能设置,处理方法设置; *
* 调用子程序; *
* *
***************************************************************************************/
# include <intrins.h>
# include "stc12c5a60s2.h"
# include "macroandconst.h"
# include "delay.h"
#define ADC_POWER 0x80 //ADC 电源控制
#define ADC_FLAG 0x10 //ADC 完成标志
#define ADC_START 0x08 //ADC 启动控制
#define ADC_SPEEDLL 0x00 //420 时钟
#define ADC_SPEEDL 0x20 //280 时钟
#define ADC_SPEEDH 0x40 //140 时钟
#define ADC_SPEEDHH 0x60
UINT GetADCResult(UINT ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDH | ch | ADC_START;
_nop_(); //开始等待时间
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//等待完成标志
ADC_CONTR &= ~ADC_FLAG; //关闭 ADC
return ((ADC_RES<<2)|ADC_RESL); //返回 ADC 结果
}
void InitADC()
{
P1ASF = 0x81; //打开第一路和第七路ADC功能
AUXR1=0x00;
ADC_RES = 0; ADC_RESL = 0; //数据存储器初始化
ADC_CONTR = ADC_POWER | ADC_SPEEDH;
Delay1(2); //ADC 开机延时
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -