PIC16F877的A/D模塊
結(jié)構(gòu)框圖如下:
本文引用地址:http://www.ex-cimer.com/article/201611/320860.htm操作步驟:
ADRESH:ADRESL寄存器中保存了A/D轉(zhuǎn)換的10位結(jié)果。當A/D轉(zhuǎn)換完成之后,轉(zhuǎn)換結(jié)果被載入這一A/D結(jié)果寄存器對中,GO/DONE(ADCON0<2>)位被清零,且A/D中斷標志位ADIF置1。當配置好A/D 模塊后,在啟動轉(zhuǎn)換前必須先選擇A/D轉(zhuǎn)換的通道。模擬輸入通道的相應(yīng)TRIS位必須設(shè)置為輸入。采集時間(acquisition time)的確定參見“A/D采集時間要求”小節(jié)。在這一采集時間過去之后,A/D轉(zhuǎn)換即可開始。按照以下步驟進行A/D轉(zhuǎn)換:
1. 配置A/D模塊
• 對模擬引腳/參考電壓/數(shù)字I/O(ADCON1)進行配置
• 選擇A/D輸入通道(ADCON0)
• 選擇A/D轉(zhuǎn)換時鐘(ADCON0)
• 打開A/D轉(zhuǎn)換模塊(ADCON0)
2. 需要時,設(shè)置A/D中斷
• 將ADIF位清零
• 將ADIE位置1
• 將GIE位置1
3.等待所需的采集時間
4.啟動A/D轉(zhuǎn)換
• 將GO/DONE置1(ADCON0)
5.等待A/D轉(zhuǎn)換完成,通過以下兩種方法之一可判斷轉(zhuǎn)換是否完成:
• 查詢GO/DONE位是否被清零或ADIF位被置1;
• 等待A/D轉(zhuǎn)換的中斷。
6.讀取A/D結(jié)果寄存器對(ADRESH:ADRESL),需要時將ADIF位清零。
7. 要再次進行A/D轉(zhuǎn)換,根據(jù)要求轉(zhuǎn)入步驟1或步驟2。
圖 23-2 為 A/D轉(zhuǎn)換順序及所使用的術(shù)語。 采集時間是 A/D 模塊的保持電容連接到外部電平的時間。隨后是12TAD的轉(zhuǎn)換時間,開始于GO位被置1。這兩段時間的總和即采樣時間(samplingtime)。為確保保持電容充電至適當電平以使A/D轉(zhuǎn)換達到所需精度,應(yīng)保證一個最小采集時間。
A/D轉(zhuǎn)換時鐘的選擇
每一位的A/D 轉(zhuǎn)換時間被定義為 TAD。每完成一次10位A/D轉(zhuǎn)換需要11.5個 TAD。A/D轉(zhuǎn)換的時鐘可用軟件進行選擇,對于TAD可以有以下4種選擇:
• 2Tosc
• 8Tosc
• 32Tosc
• A/D模塊內(nèi)部RC振蕩器
與A/D有關(guān)的寄存器:
評論