STC12CA560S2 ADC/PWM相關例程

 

 

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

今天下午把STC12C5A60S2的ADC轉換函數寫了,查詢法只要檢查ADC_FLAG是否爲1,再進行相關程序就行了。下面這個是用中斷法。這是STC技術手冊上提供的中斷號,直接在PDF上覆制過來的,顯示順序亂了,自己可以在中斷寄存器 那一節可以看到

?void Int0_Routine(void) interrupt 0;
void LVD_Routine(void) interrupt 6;
void ADC_Routine(void) interrupt 5;
void PCA_Routine(void) interrupt 7;
void Timer0_Routine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Routine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void UART2_Routine(void) interrupt 8;
void SPI_Routine(void) interrupt 9;

STC12C5A60AD/S2系列帶A/D轉換的單片機的A/D轉換口在P1口(P1.7-P1.0),有8路10位高速A/D轉
換器,速度可達到250KHz(25 萬次/ 秒)。8 路電壓輸入型A/D,可做溫度檢測、電池電壓檢測、按鍵掃描、
頻譜檢測等。上電覆位後P1 口爲弱上拉型I/O 口,用戶可以通過軟件設置將8 路中的任何一路設置爲A/D
轉換,不需作爲A/D 使用的口可繼續作爲I/O 口使用。

 

具體寄存器設置見STC的datasheet.

注:此函數只是讀取寄存器中的值,沒有進行電壓的轉換

 

 

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

STC單片機內置ADC的使用方法

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

    A/D轉換寄存器總表:

 

寄存器

 

地址

 

名稱

 

7

 

6

 

5

 

4

 

3

 

2

 

1

 

0

 

初始初

 

P1_ADC_EN

 

97H

 

允許P1.x

成爲A/D口

 

P17

 

P16

 

P15

 

P14

 

P13

 

P12

 

P11

 

P10

 

0000

0000

 

ADC_

CONTR

 

C5H

 

A/D轉換

控制寄存器

 

 

 

 

ADC_FLAG

 

ADC_START

 

CHS2

 

CHS1

 

CHS0

 

xxx0

0000

 

ADC_DATA

 

C6H

 

A/D轉換

結果寄存器

 

 

 

 

 

 

 

 

 

0000

0000

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

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

(2)       ADC_CONTR:特殊功能寄存器

           CHS2/CHS1/CHS0是模擬輸入通道選擇,CHS2/CHS1/CHS0的取值如下表所示:

 

CHS2

 

CHS1

 

CHS0

 

模擬輸入通道選擇

 

0

 

0

 

0

 

選擇P1.0爲A/D輸入

 

0

 

0

 

1

 

選擇P1.1爲A/D輸入

 

0

 

1

 

0

 

選擇P1.2爲A/D輸入

 

0

 

1

 

1

 

選擇P1.3爲A/D輸入

 

1

 

0

 

0

 

選擇P1.4爲A/D輸入

 

1

 

0

 

1

 

選擇P1.5爲A/D輸入

 

1

 

1

 

0

 

選擇P1.6爲A/D輸入

 

1

 

1

 

1

 

選擇P1.7爲A/D輸入

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

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

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

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

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章