新聞中心

        STM8S的ADC應(yīng)用

        作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
        //軟件環(huán)境:IAR FOR STM8 V1.0

        //作者:Nicole

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

        //功能:AD的單次轉(zhuǎn)換程序,適合溫度的采集和電壓的采集
        //日期:2010.11.05

        #include "iostm8s105c6.h"
        unsigned int DATA;
        unsigned int DATAH;
        unsigned int DATAL;
        // 函數(shù)功能:延時(shí)函數(shù)
        // 輸入?yún)?shù):ms -- 要延時(shí)的毫秒數(shù),這里假設(shè)CPU的主頻為2MHZ
        void DelayMS(unsigned int ms)
        {
        unsigned char i;
        while(ms != 0)
        {
        for(i=0;i<250;i++)
        {
        }
        for(i=0;i<75;i++)
        {
        }
        ms--;
        }
        }
        //時(shí)鐘配置默認(rèn)
        void CLK_Init(void)
        {
        }

        // 將PD0設(shè)置成推挽輸出,以便推動(dòng)LED
        void GPIO_Init(void)
        {
        PD_DDR = 0x01;
        PD_CR1 = 0x01;
        PD_CR2 = 0x00;
        }

        // 初始化A/D模塊
        void ADC_Init(void)
        {
        ADC_CR2 = 0x00;// A/D結(jié)果數(shù)據(jù)左對(duì)齊
        ADC_CR1 = 0x00;// ADC時(shí)鐘=主時(shí)鐘/2=1MHZ
        // ADC轉(zhuǎn)換模式=單次
        // 禁止ADC轉(zhuǎn)換
        ADC_CSR = 0x00;// 選擇通道0
        ADC_TDRL = 0x01;//禁止施密特觸發(fā)
        }
        main()
        {
        int i;
        GPIO_Init();
        ADC_Init();
        while(1)// 進(jìn)入無(wú)限循環(huán)

        {

        ADC_CR1 = 0x01;// CR1寄存器的最低位置1,使能ADC轉(zhuǎn)換
        for(i=0;i<100;i++);// 延時(shí)一段時(shí)間,至少7uS,保證ADC模塊的上電完成
        ADC_CR1 = ADC_CR1 | 0x01; // 再次將CR1寄存器的最低位置1
        // 使能ADC轉(zhuǎn)換
        while((ADC_CSR & 0x80) == 0); // 等待ADC結(jié)束

        DATAH = ADC_DRH;// 讀出ADC結(jié)果的高8位

        DATAL = ADC_DRL;

        DATA = (DATAH<<2) + DATAL ; //得到十位精度的數(shù)據(jù)

        //PD_ODR = 0x01;// PD0滅

        DelayMS(DATA);// 延時(shí)一段時(shí)間

        PD_ODR = PD_ODR ^ 0x01;

        // DelayMS(DATA);

        }

        }



        關(guān)鍵詞: STM8SADC應(yīng)

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 望江县| 思南县| 巴里| 长治市| 阳泉市| 彝良县| 赤城县| 遂昌县| 阿图什市| 杨浦区| 清新县| 日土县| 万源市| 湾仔区| 华宁县| 安康市| 宁明县| 佛冈县| 玉环县| 昌平区| 张掖市| 水城县| 嘉禾县| 东辽县| 山阴县| 个旧市| 宁波市| 瑞丽市| 常山县| 巴楚县| 龙海市| 柞水县| 黄浦区| 沅江市| 关岭| 古交市| 黄平县| 西贡区| 霍林郭勒市| 鹤岗市| 华安县|