⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stc89le516ad_adc.c

📁 此为本人今期一个项目的部分C51源程序
💻 C
字号:


#include <reg52.h>

//STC89LE516AD扩展的SFR 
 sfr P1_ADC_EN =0X97;        //转换功能允许
 sfr ADC_CONTR=0XC5;         //转换控制
 sfr ADC_DATA=0XC6;          //转换结果

/*-------------------------------------------------------------------------------------------
                               AD转换端口配置
---------------------------------------------------------------------------------------------*/
 void AD_Port_config(void)
 {
    P1=P1 | 0X1c;             //0001,1100 要AD转换,相应段口设定为高
    P1_ADC_EN = 0X1c;         
 }
/*-------------------------------------------------------------------------------------------
                               延时
---------------------------------------------------------------------------------------------*/
void delay(unsigned char delay_time)
{
    unsigned char n;
    unsigned int m;
    for(n=0;n<delay_time;n++){
        for(m=0;m<1000;m++);
    }
}
/*-------------------------------------------------------------------------------------------
                               AD转换函数
入口参数:转换通道
出口参数:转换8位结果                              
---------------------------------------------------------------------------------------------*/ 
 unsigned char Get_AD_Result(unsigned char channel)
 {
    unsigned char AD_Finished=0;   //转换结束标志
    ADC_DATA=0;
    ADC_CONTR=channel;     //选择AD通道
    delay(1);              //等待电压稳定
    ADC_CONTR|=0X08;       //0000,1000 令ADC_START=1,启动AD转换
    AD_Finished=0;
    while(AD_Finished==0){
        AD_Finished=(ADC_CONTR & 0x10);//0001,0000,ADC_FLAG=1 测试AD转换是否结束
        
    }
    ADC_CONTR&=0XF7;                     //1111,0111,令ADC_START=0;关AD
    return(ADC_DATA);
 }



 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -