PIC單片機是美國的微芯公司生產的超小型單片機和微型控制器,是Peripheral Interface Controller的簡稱。基于PIC單片機的設計,使用AD轉換的功能,可以把模擬數據量轉換成數字量數據,并可直接讀取該數據量的值。本設計適合直流5V以下的信號從模擬端口輸入。
本文以PIC16F88為例,來解說A/D轉換的方法。
A/D轉換,PIC內部的小電容(CHOLD)充電,在這之后,因為要執行一個存儲電荷測定的步驟,所以需要等待一段時間,對于10bit的A/D轉換的PIC,充電時間約20μs,再加上測定時間約20μs,合計需要40μs的時間。

.. ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0
ANS<6:0>對應著PIC16F88的AN0-AN6(RA0-RA6),置1表示該端口為模擬量,置0表示該端口為數字量。但是TRIS(I/O口的方向控制寄存器)沒有設置成功的話,該端口也是不能輸入模擬量的。
ADCON0:AD轉換控制寄存器0

ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE ..ADON
ADCON1:AD轉換控制寄存器1

ADFM ADCS2 VCFG1 VCFG0.. .. ....
ADCS<2:0>分別在兩個寄存器中,操作起來有一些麻煩,因為ADCS2是后面補充的,這3個位的ADCS是用來決定A/D變換的時鐘的。A/D變換時鐘的選擇方法:用來做AD變換的時鐘,被叫做TAD,值越小,A/D轉換就越快。詳細內容請參照表1:AD變換時鐘的選擇方法。
TAD被數據表限定在1.6到6.4us之間,所以為了在這個范圍內取最小的值使用ADCS的3位選擇Tosc。TAD受PIC內部時鐘的影響關系如下:

例如:對于給PIC提供10M的時鐘的時候,周期就是0.1us,選擇16Tosc的話,TAD剛好是1.6us,8M時周期是0.125us 16Tosc選擇,TAD就變成了2us請看表1。
表1的灰色范圍是ADCS2-0設定范圍。
CHS<2:0>從這里可以選擇AD變換的通道。CHS 3位組合起來對應選擇的端口:最大6.4us以上的數值也是不可以使用的。

表1 A/D變換時鐘的選擇方法

圖1 ADFM功能示意圖

圖2 A/D變換回路等效圖

圖3 A/D變換的TAD循環時序圖

圖4 A/D變換原理圖


圖5 AD變換程序

圖6 輸入電壓和輸出數值關系
CHS<2:0>從這里可以選擇AD變換的通道。CHS 3位組合起來對應選擇的端口:
圍繞黨的十九大以來新要求,始終把政治建設放在基層黨建首位,將“活力黨建”融入企業管理基礎,增強黨建工作“滲透力”。

GO/DONE:置1 AD變換開始;AD變換完成,這個端口就自動置0。因此這個端口可以用來監聽AD變換是否結束。
ADON:置1取樣充電開始,置0充電停止并開始放電。
ADFM:變換完了的結果(10bit)在ADRESH,ADRESL中是靠左保存還是靠右保存的控制位。
ADRESH,ADRESL:變換后的數字量10 bit的值如圖1所示,在ADRESH,ADRESL 16位的寬度中是靠左還是靠右來保存。如果必要的數據8位就足夠,靠左只用讀取ADRESH里面的數據就可以讀取全部了。
VCFG<1:0>:AD轉換基準電壓設定,使用電源電壓為基準電壓的場合,VCFG<1:0>設置為00。
ADON置1時模擬端口與CHOLD連接,充電開始。10位的AD變換的運行時間
(CHOLD充電的必須時間)TACQ是19.72us。根據PIC16F88的數據表的話,應該選定數據源內阻在10k以下。(請看圖2)
GO/DONE置1時基于CHOLD存儲的電荷的電壓值的測定開始如圖3所示。
A/D變換需要的時間是:12TAD+α。TAD最短的時間1.6us選擇的時候,AD變換測量需要的時間久是:12*TAD+α=19.2μs+α(約20μs)。
A/D變換器設計原理圖如下圖4所示,以PIC16F88為例,對于10bit的AD轉換的PIC,充電時間約20μs,再加上測定時間約20μs,合計需要40μs的時間。圖5給出了程序設計的流程圖。
根據輸出的結果得到輸入與輸出的關系如圖6所示。被測模擬量是 DC5V,分辨率256,精度0.02V。
PIC單片機可以用編程來實現復雜回路的功能,不使用焊錫就可以寫、改和調整功能等等很多優點。用戶可以根據自己的需要添加程序,再加上一些外圍設備,使其資源得到充分的利用。
[1]EDROM/ROM-Based 8-Bit CMOS Microcontr-oller Series.Microchip Technology Inc.,2000.
[2]MPLAB.IDE,SIMULATOR,EDITOR USER’S GUIDE.Microchip Technology Inc.,2000.
[3]閻石.數字電子技術基礎[M].北京:高等教育出版社,1999,4.
[4]鐘肇新.可編程序控制器原理及應用[M].廣州:華南理工大學出版社,1991:492-494.