PIC單片機(jī)是美國(guó)的微芯公司生產(chǎn)的超小型單片機(jī)和微型控制器,是Peripheral Interface Controller的簡(jiǎn)稱(chēng)。基于PIC單片機(jī)的設(shè)計(jì),使用AD轉(zhuǎn)換的功能,可以把模擬數(shù)據(jù)量轉(zhuǎn)換成數(shù)字量數(shù)據(jù),并可直接讀取該數(shù)據(jù)量的值。本設(shè)計(jì)適合直流5V以下的信號(hào)從模擬端口輸入。
本文以PIC16F88為例,來(lái)解說(shuō)A/D轉(zhuǎn)換的方法。
A/D轉(zhuǎn)換,PIC內(nèi)部的小電容(CHOLD)充電,在這之后,因?yàn)橐獔?zhí)行一個(gè)存儲(chǔ)電荷測(cè)定的步驟,所以需要等待一段時(shí)間,對(duì)于10bit的A/D轉(zhuǎn)換的PIC,充電時(shí)間約20μs,再加上測(cè)定時(shí)間約20μs,合計(jì)需要40μs的時(shí)間。

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

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

ADFM ADCS2 VCFG1 VCFG0.. .. ....
ADCS<2:0>分別在兩個(gè)寄存器中,操作起來(lái)有一些麻煩,因?yàn)锳DCS2是后面補(bǔ)充的,這3個(gè)位的ADCS是用來(lái)決定A/D變換的時(shí)鐘的。A/D變換時(shí)鐘的選擇方法:用來(lái)做AD變換的時(shí)鐘,被叫做TAD,值越小,A/D轉(zhuǎn)換就越快。詳細(xì)內(nèi)容請(qǐng)參照表1:AD變換時(shí)鐘的選擇方法。
TAD被數(shù)據(jù)表限定在1.6到6.4us之間,所以為了在這個(gè)范圍內(nèi)取最小的值使用ADCS的3位選擇Tosc。TAD受PIC內(nèi)部時(shí)鐘的影響關(guān)系如下:

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

表1 A/D變換時(shí)鐘的選擇方法

圖1 ADFM功能示意圖

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

圖3 A/D變換的TAD循環(huán)時(shí)序圖

圖4 A/D變換原理圖


圖5 AD變換程序

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

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