新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機STC12C5A60S2內部10位AD程序

        單片機STC12C5A60S2內部10位AD程序

        作者: 時間:2016-11-23 來源:網絡 收藏
        #include

        #include

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

        #define uint unsigned int
        #define uchar unsigned char

        sfr P1ASF = 0X9D; //P1口選擇功能寄存器
        sfr ADC_CONTR = 0XBC; //ADC控制寄存器
        sfr ADC_RES = 0XBD; //ADC轉換結果寄存器高
        sfr ADC_RESL = 0XBE; //ADC轉換結果寄存器低
        sfr AUXR1 = 0XA2; //ADC轉換結果調整位
        //sfr IE = 0XA8; //ADC中斷允許寄存器
        //sfr IP = 0XB8; //ADC中斷優先級控制寄存器高
        //sfr IPH = 0XB7; //ADC中斷優先級控制寄存器低

        uint ADC_Result1, ADC_Result2, ADC_Result;

        void ADC_init(void); //AD轉換初始化
        void Delay(uint z); //延時函數

        void main(void)
        {
        uint gei, shi, bai, qian;
        uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

        while (1)
        {
        ADC_init();
        ADC_Result = ADC_Result2 + ADC_Result1 * 256;
        gei = ADC_Result % 10;
        shi = ADC_Result / 10 % 10;
        bai = ADC_Result / 100 % 10;
        qian = ADC_Result / 1000;
        //數碼管動態顯示顯示采集數值
        P2 = 1;
        P0 = table[qian];
        Delay(5);
        P2 = 2;
        P0 = table[bai];
        Delay(5);
        P2 = 3;
        P0 = table[shi];
        Delay(5);
        P2 = 4;
        P0 = table[gei];
        Delay(5);
        }
        }

        void ADC_init(void) //AD轉換初始化
        {
        P1ASF = 0X01; //X選擇P1.0作為ADC轉換輸入通道
        ADC_CONTR = 0X80; //打開ADC轉換電源
        _nop_();
        _nop_();

        AUXR1 = 0X04; //將高兩位存放在寄存器ADC_RES,低八位存放在寄存器ADC_RESL中
        ADC_CONTR |= 0X68; //ADC初始化設置
        _nop_();
        _nop_();
        _nop_();
        _nop_ ();

        ADC_Result1 = ADC_RES;
        ADC_Result2 = ADC_RESL;

        }
        void Delay(uint z) //延時函數
        {
        uint x, y;
        for (x = 0; x < z; x++)
        for (y = 0; y < 140; y++);
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 德格县| 万荣县| 拜城县| 游戏| 苗栗县| 罗平县| 乌鲁木齐县| 冀州市| 大田县| 五华县| 林芝县| 威信县| 新竹县| 乌恰县| 大安市| 长治市| 瓦房店市| 南通市| 通辽市| 青海省| 喜德县| 常州市| 深泽县| 延长县| 微山县| 巍山| 台山市| 丹东市| 民勤县| 姜堰市| 体育| 利辛县| 个旧市| 威宁| 商河县| 自治县| 周至县| 榆社县| 通榆县| 苍南县| 鹤壁市|