北京赛车挂机方案|北京赛车挂机方案
datasheet

STC12C5A60S2 AD 轉換詳解

2019-05-21來源: eefocus關鍵字:STC12C5A60S2  AD  轉換

STC系列單片機中的STC89LE516AD/X2提供了8路8位精度的高速A/D轉換器,位于P1口上,從而省去了片外ADC的麻煩。這8路ADC為電壓輸入型,可做按鍵掃描,電池電壓檢測,頻譜檢測等。ADC轉換過程需要17個機器周期。通過對相關功能寄存器的適當配置,就可以控制其工作。下面就對相關功能寄存器進行介紹。


A/D轉換寄存器總表:

(1)P1_ADC_EN:特殊功能寄存器

P1.x作為A/D轉換輸入通道來用允許特殊功能寄存器。相應位為“1”時,對應的P1.x口作為A/D轉換使用,內部上拉電阻自動斷開。

ADC_START是模擬/數字轉換(ADC)啟動控制位,設置為1時,開始轉換。

      

ADC_FLAG是模擬/數字轉換結束標志位,當A/D轉換完成后,ADC_FLAG=1。


(3)ADC_DATA: A/D轉換結果特殊功能寄存器

模擬/數字轉換結果計算公式為 結果=256×Vin/Vcc

Vin是模擬輸入通道輸入電壓,Vcc為單片機實際工作電壓,用單片機工作電壓作為模擬參考電壓。

         

內置ADC的使用例程:


STC_ADC.h:

sfr P1_ADC_EN=0x97;

sfr ADC_CONTR=0xc5;

sfr ADC_DATA=0xc6;

 

int GetAD(unsigned char channel)//channel為要取的通道號(0~7)

{

    unsigned char AD_finished=0;

    ADC_DATA=0;

    ADC_CONTR=channel;

    ADC_CONTR|=0x08;

    while(!AD_finished)

      AD_finished=(ADC_CONTR&0x10);

    ADC_CONTR&=0xF7;

    return (ADC_DATA);

}

 

void AD_Init(unsigned char ADin)// ADC 初始化,ADin為八位2進制數,分別對應AD7~0,置1代表打開此路

{

 P1=P1|ADin;//要設置為A/D轉換的P1.x口,先設為高

 P1_ADC_EN=ADin; 

}

 

_main.c:

#include

#include

 

/*

-------------------------------------------------

    此程序用以說明STC單片機ADC的使用方法

-------------------------------------------------

*/

 

void delay(unsigned time)

{

 while(time--);

}

 

void main()

{

 AD_Init(0x63);//0110,0011,要設置為A/D轉換的P1.x口,先設置為高

             //0110,0011,P1的P1.0,P1.1,P1.5,P1.6設置為A/D轉換輸入腳

                     //斷開P1.0,P1.1,P1.5,P1.6內部上拉電阻

 while(1)

 {

  P2=GetAD(0);

  delay(10000);

  P2=GetAD(1);

  delay(10000);

  P2=GetAD(5);

  delay(10000);

  P2=GetAD(6);

  delay(10000);

 }

}


關鍵字:STC12C5A60S2  AD  轉換

編輯:什么魚 引用地址:http://www.bp0.com.cn/mcu/ic462392.html
本網站轉載的所有的文章、圖片、音頻視頻文件等資料的版權歸版權所有人所有,本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如果本網所選內容的文章作者及編輯認為其作品不宜公開自由傳播,或不應無償使用,請及時通過電子郵件或電話通知我們,以迅速采取適當措施,避免給雙方造成不必要的經濟損失。

上一篇:STC12C5A60S2單片機實現ISP自動下載
下一篇:STC12C5A60S2雙串口通信

關注eeworld公眾號 快捷獲取更多信息
關注eeworld公眾號
快捷獲取更多信息
關注eeworld服務號 享受更多官方福利
關注eeworld服務號
享受更多官方福利

推薦閱讀

STC12C5A60S2_PWM

#include <reg52.h>#include <intrin.h>#define uint unsigned int #define uchar unsigned charsfr CCON = 0XD8;sbit CCFO = CCON^0;sbit CCF1 = CCON^1;sbit CR = CCON^6;sbit CF = CCON^7;sfr CMOD = 0XD9;sfr CL = 0XE9;sfr CH = 0XF9;sfr CCAPM0 = 0XDA;sfr CCAP0L = 0XEA;sfr CCAP0H = 0XFA;sfr CCAMP1 = 0XDB;sfr CCAP1
發表于 2019-06-01

單片機PWM輸出控制直流電機(89c51系列、stc12c5a60s2系列)

= 0; if(time < PWM) pwm = 1; else if(time >= PWM) pwm = 0; }}proteus仿真結果由仿真結果來看,所得波形還是不算很精準,實際應用過程中還會有很多誤差,但是這樣已經比延時函數產生pwm的結果可靠的多。【STC12C5A60S2系列單片機輸出PWM】我在做循跡小車時使用的是stc12c5a60s2單片機。stc12c5a60s2單片機集成了兩路可編程計數器陣列(PCA)模塊,可用于軟件定時器、外部脈沖的捕捉、高速輸出以及脈寬調制(PWM)輸出。使用stc12c5a60s2單片機的PCA模塊可通過程序設定,使其工作于8位PWM模式,通過P13和P14輸出
發表于 2019-05-22
單片機PWM輸出控制直流電機(89c51系列、stc12c5a60s2系列)

STC12C5A60S2的PCA模塊輸出PWM波

,就會去改變PWM的占空比,這也就是所說的脈寬調制。要改變PWM的周期,只能改變CL的取值范圍,但是CL的取值范圍是不可改變的,因為CL是一個8位寄存器。所以只能是改變CL每次加1的速度(原來CL加1用0.1s,現在要改為0.05s)也就是說我們要時鐘源的頻率。這種方法并沒有被PCA模塊所用,PCA模塊所改變PWM頻率的方法為,時鐘源選擇T0的溢出率,或者是選擇外部時鐘晶振源。上述為個人理解,下圖為手冊中的流程
發表于 2019-05-22
STC12C5A60S2的PCA模塊輸出PWM波

增強型單片機STC12C5A60S2輸出各種頻率方波信號

【例7-3】 設時鐘頻率Fosc=18.432MHz,設計程序,從P1.0/CLKOUT2引腳輸出頻率為124.540KHz的時鐘;從T0(P3.4)引腳輸出頻率為125KHz的時鐘;從T1(P3.5)引腳輸出頻率為38.4KHz的時鐘。解:使用STC12C5A60S2的可編程時鐘輸出功能完成所需要求。在下面的程序設計中(在此只給出C語言程序),T0、T1和獨立波特率發生器BRT均工作在1T模式。程序編制如下:#include "stc12c5a.h"        //包含STC12C5A60S2的寄存器定義頭文件void main(void){   
發表于 2019-05-22

STC12C5A60S2 ADC中斷方式

/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------------------*//* --- Web: www.STCMCU.com -----------------------------------------*//* If you want to use the program or
發表于 2019-05-22

STC12C5A60S2 ADC查詢方式

/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------------------*//* --- Web: www.STCMCU.com -----------------------------------------*//* If you want to use the program or
發表于 2019-05-22

小廣播

何立民專欄

單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號 電信業務審批[2006]字第258號函 京公海網安備110108001534 Copyright ? 2005-2019 EEWORLD.com.cn, Inc. All rights reserved
北京赛车挂机方案