日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

PIC单片机入门_8位AD转换器

發(fā)布時(shí)間:2025/3/15 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PIC单片机入门_8位AD转换器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.前言

PIC16F876的模數(shù)轉(zhuǎn)換器 (A/D) 模塊有多達(dá) 8 個(gè)模擬輸入通道。如果選擇8位A/D 轉(zhuǎn)換器,那么芯片可以將能將一個(gè)模擬輸入信號(hào)轉(zhuǎn)換成相應(yīng)的 8 位數(shù)字信號(hào)。采樣保持輸出是轉(zhuǎn)換器的輸入,A/D 轉(zhuǎn)換器采用逐次逼近法產(chǎn)生轉(zhuǎn)換結(jié)果。通過(guò)軟件設(shè)置,模擬參考電壓可以選擇為器件的正向電源電壓 (VDD) 或 VREF 引腳上的電平。 A/D 轉(zhuǎn)換器具備可在休眠狀態(tài)下工作的獨(dú)特特性。

2.AD控制原理

與A/D 轉(zhuǎn)換器相關(guān)連得有 3 個(gè)寄存器,它們分別是:
? A/D 結(jié)果寄存器 (ADRES) ? ? ?

? A/D 控制寄存器 0 (ADCON0) ?
控制 A/D 模塊的操作
? A/D 控制寄存器 1 (ADCON1) ??
端口的引腳功能進(jìn)行配置I/O 引腳可被配置成模擬輸入 ( 其中一個(gè) I/O 也可作為模擬參考電壓 ) 或數(shù)字 I/O 口。?
A/D 模塊結(jié)構(gòu)框圖如圖 所示:

2.1 AD控制寄存器0:控制A/D模塊操作


bit [7:6] ADCS1:ADCS0:A/D 轉(zhuǎn)換時(shí)鐘選擇位;00 = FOSC/2;01 = FOSC/8;10 = FOSC/32;11 = FRC ( 來(lái)自內(nèi)部 A/D 的 RC 振蕩器的時(shí)鐘 ) bit [5:3] CHS2:CHS0:模擬通道選擇位;000 = channel 0, (AN0);001 = channel 1, (AN1);010 = channel 2, (AN2);011 = channel 3, (AN3);100 = channel 4, (AN4);101 = channel 5, (AN5);110 = channel 6, (AN6);111 = channel 7, (AN7)。
注:PIC16F876A僅提供AN0~AN4模擬通道選擇位。 bit 2 GO/DONE:A/D 轉(zhuǎn)換狀態(tài)位;當(dāng) ADON = 1 時(shí),1 = A/D 轉(zhuǎn)換正在進(jìn)行;( 該位置 1 啟動(dòng) A/D 轉(zhuǎn)換。 A/D 轉(zhuǎn)換結(jié)束后該位由硬件自動(dòng)清零 );0 = 未進(jìn)行 A/D 轉(zhuǎn)換
bit 1 保留 : 總是保持該位為 0。
bit 0 ADON: A/D 模塊開(kāi)啟位;1 = A/D 轉(zhuǎn)換器模塊工作;0 = A/D 轉(zhuǎn)換器關(guān)閉,不消耗工作電流。

2.2?控制寄存器 1 (ADCON1):引腳功能配置


bit 7 ? ? ADFM: A/D轉(zhuǎn)換結(jié)果格式選擇位 ?1 = 右對(duì)齊 ?0 = 左對(duì)齊 bit6 ? ? ?ADCS2:A/D轉(zhuǎn)換時(shí)鐘選擇位
bit 3:0 PCFG2:PCFG0:A/D 端口配置控制位;其端口配置效果圖如下所示:

注 : 當(dāng) AN3 被選作 VREF 時(shí), A/D 的參考電壓為 AN3 引腳的電壓。當(dāng) AN3 被選作模擬輸入 (A) 時(shí), A/D 的參考電壓為器件的 VDD。

3.AD操作細(xì)則

當(dāng)A/D轉(zhuǎn)換完成之后,轉(zhuǎn)換結(jié)果被載入ADRES寄存器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) 的確定我們要詳細(xì)說(shuō)明。在這一采集時(shí)間過(guò)去之后,A/D轉(zhuǎn)換即可開(kāi)始。

3.1 AD采集需要遵循的步驟?

1. 配置 A/D 模塊:對(duì)模擬引腳 / 參考電壓 / 數(shù)字 I/O (ADCON1) 進(jìn)行配置;選擇 A/D 輸入通道 (ADCON0);選擇 A/D 轉(zhuǎn)換時(shí)鐘 (ADCON0);打開(kāi) 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)換完成,通過(guò)以下兩種方法之一可判斷轉(zhuǎn)換是否完成:輪詢 GO/DONE 位是否被清零;等待 A/D 轉(zhuǎn)換的中斷。
6. 讀取 A/D 結(jié)果寄存器 (ADRES),需要時(shí)將 ADIF 位清零。
7. 要再次進(jìn)行 A/D 轉(zhuǎn)換,根據(jù)要求轉(zhuǎn)入步驟 1 或步驟 2。每一位的 A/D 轉(zhuǎn)換時(shí)間定義為 TAD。在下一次采集開(kāi)始前至少需要等待 2TAD。
A/D 轉(zhuǎn)換時(shí)序如下:

3.2 AD采集時(shí)間要求

TACQ = 放大器的建立時(shí)間 +?保持電容充電時(shí)間 +溫度系數(shù)?= TAMP + TC + TCOFF
PIC為中檔單片機(jī)提供了最小采集時(shí)間計(jì)算參考;由于這一部分我只是工程上的應(yīng)用,沒(méi)有進(jìn)行芯片原理探究;只給出一個(gè)參考公式,其余的不做涉獵: TACQ = TAMP + TC + TCOFF
TACQ = 5 μs + Tc + [(Temp - 25°C)(0.05 μs/°C)]
TC = -CHOLD (RIC + RSS + RS) ln(1/512)-51.2 pF (1 k? + 7 k? + 10 k?) ln(0.0020)-51.2 pF (18 k?) ln(0.0020)-0.921 μs (-6.2146) =5.724 μs
TACQ = 5 μs + 5.724 μs + [(50°C - 25°C)(0.05 μs/°C)]=10.724 μs + 1.25 μs=11.974 μs

3.3 AD采集過(guò)程中時(shí)鐘的選擇

每一位的 A/D 轉(zhuǎn)換時(shí)間被定義為 TAD。每完成一次 8 位 A/D 轉(zhuǎn)換需要 9.5 TAD。 A/D 轉(zhuǎn)換的時(shí)鐘
源可用軟件進(jìn)行選擇。 TAD 的 4 種選項(xiàng)為:2TOSC;8TOSC;32TOSC;內(nèi)部 RC 振蕩器
為了確保 A/D 轉(zhuǎn)換正確,所有器件的 A/D 轉(zhuǎn)換時(shí)鐘 (TAD) 的選擇必須滿足
最小 1.6 μs 的 TAD時(shí)
間。下表 顯示了器件在不同工作頻率下以及所選的不同A/D時(shí)鐘源下得到的TAD結(jié)果。

陰影部分不在推薦工作范圍內(nèi)。1: RC 時(shí)鐘源的典型 TAD 為 4 μs。2: 這些值違反了所需最小 TAD 時(shí)間。3: 要加快轉(zhuǎn)換時(shí)間,建議選擇另一時(shí)鐘源。4: 器件工作頻率高于 1 MHz 時(shí),整個(gè)轉(zhuǎn)換過(guò)程應(yīng)在休眠模式下進(jìn)行,否則 A/D 轉(zhuǎn)換精度可能超出允許范圍。

3.4?配置模擬輸入端口

ADCON1 和相應(yīng)的 TRIS 寄存器用來(lái)控制 A/D 端口引腳的運(yùn)行。若希望端口引腳為模擬輸入,則必須將其相應(yīng)的 TRIS 位置 1( 輸入 ) ;A/D 轉(zhuǎn)換與 CHS2:CHS0 位及 TRIS 位的狀態(tài)無(wú)關(guān)。

3.5 正式進(jìn)行AD轉(zhuǎn)換

下面一步一步介紹如何進(jìn)行 A/D 轉(zhuǎn)換。I/O 引腳被配置成模擬輸入模擬參考電壓 (VREF) 為器件電壓 VDD。使能 A/D 中斷A/D 轉(zhuǎn)換時(shí)鐘設(shè)為 FRC。該轉(zhuǎn)換在 AN0 通道上進(jìn)行
注:由于所需采集時(shí)間的要求, 不應(yīng)在打開(kāi) A/D 模塊的同一指令中將 GO/DONE 位置 1(喚醒AD采集模塊與開(kāi)始進(jìn)行AD采集必須分開(kāi))!!! 在轉(zhuǎn)換期間將 GO/DONE 位清零將中止當(dāng)前 A/D 轉(zhuǎn)換。 ADRES 寄存器中的內(nèi)容不會(huì)被部分完成的 A/D 轉(zhuǎn)換樣本所更新, ADRES 寄存器仍然保持上一次轉(zhuǎn)換完成后的結(jié)果 ( 或上一次寫(xiě)入ADRES 寄存器中的值 )。 A/D 轉(zhuǎn)換被中止后,在下一次采集開(kāi)始前,需要等待 2TAD 時(shí)間。 等待 2TAD 之后,采集將在所選通道上自動(dòng)開(kāi)始。
實(shí)例: BSF STATUS, RP0 ;STATUS的PRO置1 CLRF ADCON1 ;配置AD控制寄存器1,即進(jìn)行端口配置 BSF PIE1, ADIE ;PIE1的中斷寄存器ADIE使能位置1 BCF STATUS, RP0 ;STATUE的PRO位清零 MOVLW 0xC1 ;RC時(shí)鐘, A/D被開(kāi)啟,選擇了通道0 MOVWF ADCON0 ;配置AD控制寄存器0,C1=1100 0001 喚醒了AD 卻不能讓他工作! BCF PIR1, ADIF ;A/D中斷標(biāo)志位清零 BSF INTCON, PEIE;開(kāi)啟外圍中斷使能,置1 BSF INTCON, GIE ;開(kāi)啟全局中斷使能,置1BSF ADCON0, GO ;在此處才正式開(kāi)啟 A/D 裝換功能 : ; The ADIF bit will be set and the GO/DONE : ; bit is cleared upon completion of the : ; AD工作流程圖具體如下所示:

4.討論一下復(fù)位對(duì)AD采樣的影響

器件復(fù)位迫使所有寄存器進(jìn)入復(fù)位狀態(tài),同時(shí)迫使 A/D 模塊關(guān)閉并中止任何正在進(jìn)行的轉(zhuǎn)換。上電復(fù)位時(shí), ADRES 寄存器中的值保持不變。上電復(fù)位后 ADRES 寄存器中的值不確定。

5.同學(xué)問(wèn)的一個(gè)小問(wèn)題

早晨,同學(xué)問(wèn)我,我代碼中重復(fù)出現(xiàn)BSF,BCF,是不是數(shù)據(jù)和程序的差別? NO!NO!NO!先看英文 ?BSF = Bit Set; BCF:Bit Clear ? BSF ?f,b ? ? 給f 的第b位置1
BCF ?f,b ? ? 給f 的第b位清0

參考:PIC英文技術(shù)手冊(cè)

總結(jié)

以上是生活随笔為你收集整理的PIC单片机入门_8位AD转换器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。