微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > stc89c5a60s2 内置AD、用法

stc89c5a60s2 内置AD、用法

时间:10-02 整理:3721RD 点击:
最近几天接触了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);
}

三克油啦!哈哈

高手一句话,胜过我迷茫一天啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top