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