① 如何提高pic單片機adc輸入電容對信號的精度的影響
AD輸入並電容測直流可以提高測量精度,間隔一段時間轉換即可,AD有內阻,所以採集時會導致電壓變化,加並電容可以抵消一部分!
② 單片機控制ADC的常用方法有哪些
1、ADC原理
ADC轉換器由前置濾波器、調制器、數字濾波器和梳值濾波器組成,22∃ADC的結構如圖1所示.它是將輸入信號通過22∃調制器量化成1bit的高速數據流,再經過數字濾波和采樣抽取後才得到最後的結果.和傳統的AD轉換相比,其原理和結構有很大地不同,下面以一階22∃調制器為例來說明22∃ADC原理.
圖1 2-∃ADC的結構
2、常用的方法
ADC0809是帶有8位A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉換器,可以和單片機直接介面。
(1)ADC0809的內部邏輯結構
由下圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與解碼器、一個A/D轉換器和一個三態輸出鎖存器組成。多路開關可選通8個模擬通道,允許8 路模擬量分時輸入,共用A/D轉換器進行轉換。三態輸出鎖器用於鎖存A/D轉換完的數字量,當OE端為高電平時,才可以從三態輸出鎖存器取走轉換完的數 據。
(2). ADC0809引腳結構
ADC0809各腳功能如下:
D7-D0:8位數字量輸出引腳。
IN0-IN7:8位模擬量輸入引腳。
VCC:+5V工作電壓。
GND:地。
REF(+):參考電壓正端。
REF(-):參考電壓負端。
START:A/D轉換啟動信號輸入端。
ALE:地址鎖存允許信號輸入端。
(以上兩種信號用於啟動A/D轉換).
EOC:轉換結束信號輸出引腳,開始轉換時為低電平,當轉換結束時為高電平。
OE:輸出允許控制端,用以打開三態數據輸出鎖存器。
CLK:時鍾信號輸入端(一般為500KHz)。
A、B、C:地址輸入線。
ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
地址輸入和控制線:4條
ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與解碼器將A,B,C三條地址線的地址信號進行鎖存,經解碼後被選中的通道的模擬量進轉換器進行轉換。A,B和C為地址輸入線,用於選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。
數字量輸出及控制線:11條
ST為轉換啟動信號。當ST上跳沿時,所有內部寄存器清零;下跳沿時,開始進行A/D轉換;在轉換期間,ST應保持低電平。EOC為轉換結束信號。當 EOC為高電平時,表明轉換結束;否則,表明正在進行A/D轉換。OE為輸出允許信號,用於控制三條輸出鎖存器向單片機輸出轉換得到的數據。OE=1,輸 出轉換得到的數據;OE=0,輸出數據線呈高阻狀態。D7-D0為數字量輸出線。
CLK為時鍾輸入信號線。因ADC0809的內部沒有時鍾電路,所需時鍾信號必須由外界提供,通常使用頻率為500KHZ,
VREF(+),VREF(-)為參考電壓輸入。
2. ADC0809應用說明
(1). ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。
(2). 初始化時,使ST和OE信號全為低電平。
(3). 送要轉換的哪一通道的地址到A,B,C埠上。
(4). 在ST端給出一個至少有100ns寬的正脈沖信號。
(5). 是否轉換完畢,我們根據EOC信號來判斷。
(6). 當EOC變為高電平時,這時給OE為高電平,轉換的數據就輸出給單片機了。
3. 實驗任務
如下圖所示,從ADC0809的通道IN3輸入0-5V之間的模擬量,通過ADC0809轉換成數字量在數碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。
4. 程序設計內容
(1). 進行A/D轉換時,採用查詢EOC的標志信號來檢測A/D轉換是否完畢,若完畢則把數據通過P0埠讀入,經過數據處理之後在數碼管上顯示。
(2). 進行A/D轉換之前,要啟動轉換的方法:
ABC=110選擇第三通道
ST=0,ST=1,ST=0產生啟動轉換的正脈沖信號 .
C語言源程序
#include
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,0,0,0};
unsigned char dispcount;
sbit ST="P3"^0;
sbit OE="P3"^1;
sbit EOC="P3"^2;
unsigned char channel="0xbc";//IN3
unsigned char getdata;
void main(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;
P3=channel;
while(1)
{
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
dispbuf[2]=getdata/100;
getdata=getdata%10;
dispbuf[1]=getdata/10;
dispbuf[0]=getdata%10;
}
}
void t0(void) interrupt 1 using 0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
③ avr單片機中adc有兩個模擬量輸入怎麼辦
單片機有的不止1路ADC。如果只一路那就只能在外圍電路想辦法,分時採集。
也可以採用外擴ADC晶元,如ADC0832等。
④ 關於單片機ADC輸入的問題
方案很多,我列舉一兩個吧。
一、用凌陽單片機,凌陽單片機內部ADC,有十路通道,完全滿足你的需要。
二、用數據選擇器,一般用的是8選一,通過單片機控制晶元的三路地址來選擇輸出8路數據中的哪一路。晶元具體型號:74F151.關於具體用法看Datasheet。
三、自定義采樣協議,分時段對不同信號進行采樣。
.....
⑤ 32單片機什麼樣的引腳可以接受ADC的數字信號
32單片機所有IO引腳都可以接收數字信號,其內部還有2到3個ADC模塊,每個ADC有16個外部輸入通道,這些通道對應引腳是可以接收模擬信號的。
⑥ 單片機adc轉換怎樣進行模擬,模擬量怎樣輸入表示
最常用的ADC0808晶元,接+5V和-5V電壓基準,然後滑動變阻器分壓模擬輸入的模擬量
⑦ 配置stc15系列單片機內置ADC,輸入引腳未接信號,通電後模擬輸入引腳不
配置stc15系列單片機內置ADC,輸入引腳未接信號,通電後模擬輸入引腳不為零,硬體部分ADC引腳不應該有上拉電阻(或者有其他連接),如果電路正確 那 肯定是 ADC配置 有錯誤,應該配置成 開漏。
⑧ 單片機adc是什麼意思 單片機adc的意思介紹
1、ADC即模擬數字轉換器(英語:Analog-to-digital converter)是用於將模擬形式的連續信號轉換為數字形式的離散信號的一類設備。一個模擬數字轉換器可以提供信號用於測量。與之相對的設備成為數字模擬轉換器。
2、ADC的作用是將連續變化的模擬信號轉換為離散的數字信號。真實世界的模擬信號,例如溫度、壓力、聲音或者圖像等,需要轉換成更容易儲存、處理和發射的數字形式。
⑨ 現在我用三十二位 單片機進行電壓差分輸入ADC,怎麼處理得到之後的值
一般內部直接差分的都是SIGMA DELTA 的型ADC ,一般用來接感測器(電橋)。
至於雙積分或逐次比較型的ADC,本人基本都使用外部運放電路和基準源去將原始信號的放大衰減平移到 是 0V至Vref 的范圍後給ADC。