新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC內部10位AD轉換器程序(stc_ad.h頭文件)

        STC內部10位AD轉換器程序(stc_ad.h頭文件)

        作者: 時間:2016-12-02 來源:網絡 收藏
        下面是頭文件的內容,復制文本保存到stc_ad.h即可

        #ifndef __STC_AD_H__
        #define __STC_AD_H__

        本文引用地址:http://www.104case.com/article/201612/324689.htm

        #define ADC_FLAG 0x10
        #define ADC_STOP 0xEF
        #define ADC_START 0x08
        #define ADC_SPEED_HH 0x00 // 89 us
        #define ADC_SPEED_H 0x20 //178 us
        #define ADC_SPEED_L 0x40 //356 us
        #define ADC_SPEED_LL 0x60 //534 us

        void Delay(unsigned int z);
        void Delay_us();
        void ADC_init();
        unsigned char ADC_convert(unsigned char Gallery);

        /************************************************
        延時function:
        ************************************************/
        void Delay_ad(unsigned int z)
        {
        unsigned char x;
        while(--z)
        {
        for(x=0;x<250;x++);
        }
        }
        /************************************************
        延時—10 colocks function:
        ************************************************/
        void Delay_us()
        {
        unsigned char i;
        for(i=0;i<6;i++);
        }
        /************************************************
        AD初始化function:
        ************************************************/
        void ADC_init()
        {
        P1_ADC_EN= 0xff; //斷開P1口上拉電阻
        ADC_DATA = 0x00; //清零低8位數據存儲器
        ADC_LOW2 = 0x00; //清零高2位數據存儲器
        ADC_CONTR= ADC_SPEED_HH; //設置AD轉換速率178clocks
        Delay_ad(20); //上電延遲等待
        }

        /************************************************
        AD轉換function:
        ************************************************/
        unsigned int ADC_convert(unsigned char Gallery)
        {
        unsigned int Con_dat=0; //AD轉換數據暫存變量
        // ADC_CONTR |= ADC_SPEED_H; //設置AD轉換速率
        ADC_CONTR |= ADC_START; //開始AD轉換
        ADC_CONTR |= Gallery; //選擇AD通道
        ADC_DATA = 0x00; //清零低8位數據存儲器
        ADC_LOW2 = 0x00; //清零高2位數據存儲器
        Delay_us(); //轉換延遲等待
        while(!(ADC_CONTR & ADC_FLAG)); //等待轉換結束
        ADC_CONTR &= ADC_STOP; //關閉AD 并且清零
        Con_dat = ADC_LOW2; //讀取并處理AD轉換值
        Con_dat <<= 8;
        Con_dat |= ADC_DATA;
        return Con_dat; //返回AD轉換值
        }
        #endif



        關鍵詞: STCAD轉換器頭文

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 广州市| 漠河县| 绥宁县| 巨野县| 叶城县| 绵竹市| 山西省| 景德镇市| 屏南县| 曲阜市| 嵩明县| 绵竹市| 昭觉县| 盐津县| 阿克| 吴旗县| 腾冲县| 德格县| 信阳市| 郑州市| 香港| 兴安盟| 同心县| 尼勒克县| 皮山县| 嘉祥县| 邮箱| 新邵县| 都安| 双牌县| 昂仁县| 临邑县| 新龙县| 津南区| 鸡东县| 郓城县| 嘉禾县| 昭觉县| 龙门县| 日喀则市| 酒泉市|