stc89c5a60s2 内置AD、用法
错了,stc12c5a60s2
STC12系列单品有12为AD,参考电压为电源电压。
#define VCC 5.0 //电压要自己实测
/****************************************************************************
AD初始化
*****************************************************************************/
void InitAdc(void)
{
P1ASF = 0x01; //将P1.0配置为AD输入功能
ADC_RES = 0; //清除AD转换结果寄存器高字节
ADC_RESL=0;//清除AD转换结果寄存器低字节
ADC_CONTR = ADC_POWER | ADC_SPEEDH;//打开ADC电源
}
/**************************************************************************** AD采样,得到电压值
*****************************************************************************/
float GetVoltage(void)
{
int Voltage;
ADC_CONTR = ADC_POWER | ADC_SPEEDH | ADC_CH0 | ADC_START;
_nop_(); //Must wait before inquiry
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG)); //Wait complete flag
ADC_CONTR &= ~ADC_FLAG; //Close ADC
Voltage=ADC_RES;
Voltage <<=2;
Voltage |=ADC_RESL;
return ((float)Voltage/1024*VCC);
}
三克油啦!哈哈
高手一句话,胜过我迷茫一天啊
