什么是單片機的A/D 轉(zhuǎn)換器接口
由于單片機只能處理數(shù)字量,因而應(yīng)用系統(tǒng)中凡遇到有模擬量的地方,就要進行模擬量向數(shù)字量或數(shù)字量向模擬量的轉(zhuǎn)換,這就需要解決單片機與 A/D 和 D/A 的接口問題。
目前 A/D、D/A 轉(zhuǎn)換器都已集成化,具有體積小、功能強、可靠性高、誤差小、功耗低等特點,并能很方便地與單片機連接。
A/D 轉(zhuǎn)換器接口
1.概述
A/D 轉(zhuǎn)換器用以實現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。按轉(zhuǎn)換原理可分為 4 種:計數(shù)式 、雙積 分式、逐次逼近式以及并行式 A/D 轉(zhuǎn)換器。
逐次逼近式 A/D 轉(zhuǎn)換器是一種速度較快,精度較高的轉(zhuǎn)換器,其轉(zhuǎn)換時間大約在幾微秒到幾百微秒之間。常用的這種芯片有:
(1) ADC0801~ADC0805 型 8 位 MOS 型 A/D 轉(zhuǎn)換器;
(2) ADC0808/0809 型 8 位 MOS 型 A/D 轉(zhuǎn)換器;
(3) ADC0816/0817 型 8 位 MOS 型 A/D 轉(zhuǎn)換器。
量化間隔和量化誤差是 A/D 轉(zhuǎn)換器的主要技術(shù)指標之一。
量化間隔由下式計算:
其中 n 為 A/D 轉(zhuǎn)換器的位數(shù)。
量化誤差有兩種表示方法:一種是絕對量化誤差;另一種是相對量化誤差。
絕對量化誤差
相對量化誤差
2.典型 A/D 轉(zhuǎn)換器芯片 ADC0809 簡介
ADC0809 是 8 位逐次逼近式 A/D 轉(zhuǎn)換器。帶 8 個模擬量輸入通道,有通道地址譯碼鎖存器,輸出帶三態(tài)數(shù)據(jù)鎖存器。啟動信號為脈沖啟動方 式,最大可調(diào)誤差為 ±1LSB 。 ADC0809 內(nèi)部設(shè)有時鐘電路,故 CLK 時鐘需由外部輸入,fclk 允許范圍為 500kHz~ 1 MHz,典型值為 640kHz 。每一通道的轉(zhuǎn)換需 66~73 個時鐘脈沖,大約 100~110 μs 。
ADC0809 的內(nèi)部結(jié)構(gòu)圖見圖 7.32,芯片引腳如圖 7.33 所示。
圖 7.33 ADC0809 引腳圖
引腳功能介紹如下:
IN0 ~IN7 :8 路輸入通道的模擬量輸入端口。
2-1 ~2-8 :8 位數(shù)字量輸出端口。
STAR,ALE:STAR 為啟動控制輸入端口,ALE 為地址鎖存控制信號端口。這兩個信號連在一起,當輸入一個正脈沖時,便立即啟動模/數(shù)轉(zhuǎn)換。
EOC,OE:EOC 為轉(zhuǎn)換結(jié)束信號脈沖輸出端口,OE 為輸出允許控制端口。這兩個信號亦可連在一起表示 A/D 轉(zhuǎn)換結(jié)束。OE 端的電平由低變高,打開三態(tài)輸 出鎖存器,將轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。
REF(+), REF(-), VCC ,GND:REF(+) 和 REF(-) 為參考電壓輸入端,VCC 為主 電源輸入端,GND 為接地端。
CLK:時鐘輸入端。
ADD A 、B、C:8 路模擬開關(guān)的 3 位地址選通輸入端,其對應(yīng)關(guān)系如表 7.9 所示。
ADC0809 時序圖如圖 7.34 所示。其中,
tWS :最小啟動脈寬,典型值為 100ns,最大為 200ns 。
tWE :最小 ALE 脈寬,典型值為 100ns,最大為 200ns 。
tD :模擬開關(guān)延時,典型值為 1 μs,最大為 2.5 μs 。
tC :轉(zhuǎn)換時間 ,當 fclk=640kHz 時,典型值為 100 μs,最大為 116 μs 。
tEOC:轉(zhuǎn)換結(jié)束延時,最大為 8 個時鐘周期加 2 μs。
圖 7.34 ADC0809 時序圖
3.ADC0809 與 8031 的接口電路
ADC0809 與 8031 的硬件接口有三種方式:查詢方式、中斷方式和等待延時。下面介紹最常用的查詢與中斷方式。
1) 查詢方式
ADC0809 與 8031 的硬件接口如圖 7.35 所示。
在編程時,令 P2.7=A15=0 ,A0 A1 A2 給 出被選擇的模擬通道的地址;執(zhí)行一條輸 出 指令,啟動 A/D 轉(zhuǎn)換;執(zhí)行一條輸入指令,讀取 A/D 轉(zhuǎn)換結(jié)果。
下面的程序是采用查詢方法,分別對 8 路模擬信號輪流采樣一次,并依次把結(jié)果轉(zhuǎn)存到數(shù)據(jù)存儲區(qū)的采樣轉(zhuǎn)換程序。
2) 中斷方式
ADC0809 與 8031 的硬件接口如圖 7.36 所示。
圖 7.36 ADC0809 中斷方式硬件接口
這里將 ADC0809 作為一個外部擴展的并行 I/O 口,直接由 8031 的 P2.0 和 WR脈沖 進行啟動。因而其端口地址為 0FEFFH。用中斷方式讀取轉(zhuǎn)換結(jié)果的數(shù)字量,模擬量輸入通道選擇端 ADD A 、ADDB、ADDC 分別與 8031 的 P0.0 、P0.1 、P0.2 直接相連,CLK 由 8031 的 ALE 提供。其讀取通道 0 轉(zhuǎn)換后的數(shù)字量程序段如下: