---------------------------------------------------------------------------------------------------------------------------
今天下午把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爲單片機實際工作電壓,用單片機工作電壓作爲模擬參考電壓。