天天看點

如何來看單片機外設A/D轉換器ADC0804時序圖

如圖,為單片機AD轉換器的一種:

ADC0804單片內建A/D轉換器。它采用CMOS工藝20引腳內建晶片,分辯率為8位,轉換時間為100µs,輸入電壓範圍為0~5V。晶片内具有三态輸出資料鎖存器,可直接接在資料總線上。

如何來看單片機外設A/D轉換器ADC0804時序圖

各引腳名稱及作用如下:

VIN(+),VIN(-)——兩模拟信号輸入端,用以接收單極性、雙極性和差模輸入信号。

DB7~DB0——具有三态特性數字信号輸出口。

AGND——模拟信号地。

DGND——數字信号地。

CLK——時鐘信号輸入端。

CLKR——内部時鐘發生器的外接電阻端,與CLK端配合可由晶片自身産生時鐘脈沖,其頻率為1/(1.1RC)。

CS#---片選信号輸入端,低電平有效,一旦CS#有效,表明A/D轉換器被選中,可啟動工作。

WR#---寫信号輸入,低電平啟動A/D轉換。

RD#---讀信号輸入,低電平輸出端有效。

INTR#---A/D轉換結束信号,低電平有效表示本次轉換已完成。

VREF/2---參考電平輸入,決定量化機關。

VCC---晶片電源5V輸入。

打開ADC0804的資料手冊,我們可以看到以下典型的電路接法:

如何來看單片機外設A/D轉換器ADC0804時序圖

我們可以用仿真軟體畫出來:

如何來看單片機外設A/D轉換器ADC0804時序圖

接下來,我們分析一下上圖的工作原理:

①ADC0804的片選端CS連接配接U2鎖存哭的Q7輸出端,我們可通過控制鎖存器來控制CS,這樣接的原因是TX-1C實驗闆擴充的外圍太多,沒有多餘的I/O口獨立控制ADC0804的CS端,是以選擇U2。

② VIN(+)接電位器的中間滑動端,VIN(-)接地,因為這兩端可以輸入差分電壓,即它可測量VIN(+)與VIN(-)之間的電壓,當VIN(-)接地時,VIN(+)端的電壓即為ADC0804的模拟輸入電壓。VIN(+)與電位器之間串聯一個10kΩ電阻,目的是限制流入VIN(+)端的電流,防止電流過大而燒壞A/D晶片,當用短路帽短接插針ADIN後,電位器的中間滑動端便通過電阻R12與VIN(+)連接配接,此時調節電位器的旋鈕,其中間滑動端的電壓便在0~VCC變化,進而ADC0804的數字輸出端也在0x00~0xFF變化。

③ CLKR,CLR,GND之間用電阻和電容組成RC振蕩電路,用來給ADC0804提供工作所需的脈沖,其脈沖的頻率為1/(1.1RC),按晶片手冊上說明,R取10kΩ,C取150pF,TX-1C實驗闆上為了減少元件種類和焊接友善,C選用的是104磁片電容。大家在設計自己的電路時,可選擇150pF電容,否則會影響A/D的轉換速率。

④ VREF/2端用兩個1kΩ的電阻分壓得到VCC/2電壓,即2.5V,将該電壓作為A/D晶片工作時内部的參考電壓。

⑤WR#、 RD#分别接單片機的P3.6和P3.7引腳,數字輸出端接單片機的P1口。

⑥ 将AGND和DGND同時連接配接到實驗闆的GND上。我們在設計産品時,若用到A/D和D/A,一般這些晶片都提供獨立的模拟地(AGND)和數字地(DGND)引腳,為了達到精度高,穩定性好的目的,最好将所有器件的模拟地和數字地分别連接配接,最後将模拟地與數字地僅在一點連接配接。

⑦ INTR#引腳未連接配接,TX-1C實驗闆上讀取A/D資料未用中斷法,是以可不接該引腳。數字晶片在操作時首先要分析它的操作時序圖,圖4.4.6是ADC0804的啟動轉換時序圖。

ADC0804轉換時序圖:

分析圖4.4.6可知,CS先為低電平,WR#随後置低,經過至少tW(WR#)L時間後,WR#拉高,随後A/D轉換器被啟動,并且在經過(1~8個A/D時鐘周期+内部TC)時間後,模/數完成轉換,轉換結果存入資料鎖存器,同時INTR自動變為低電平,通知單片機本次轉換已結束。關于幾個時間的大小在晶片手冊中都有說明。

我在寫單片機程式啟動A/D轉換時就要遵循上面的時序,由于TX-1C實驗闆未用中斷讀取A/D資料,是以我們在啟動A/D轉換後,稍等一會兒時間,然後直接讀取A/D的數字輸出口即可。讀取結束啟動一次A/D轉換,如此循環下去。力4.4.7是ADC0804讀取資料時序圖。

如何來看單片機外設A/D轉換器ADC0804時序圖

分析上圖可知,CS先為低電平,WR#随後置低,經過至少tW(WR#)L時間後,WR#拉高,随後A/D轉換器被啟動,并且在經過(1~8個A/D時鐘周期+内部TC)時間後,模/數完成轉換,轉換結果存入資料鎖存器,同時INTR自動變為低電平,通知單片機本次轉換已結束。關于幾個時間的大小在晶片手冊中都有說明。

我在寫單片機程式啟動A/D轉換時就要遵循上面的時序,由于TX-1C實驗闆未用中斷讀取A/D資料,是以我們在啟動A/D轉換後,稍等一會兒時間,然後直接讀取A/D的數字輸出口即可。讀取結束啟動一次A/D轉換,如此循環下去。力下圖是ADC0804讀取資料時序圖。

如何來看單片機外設A/D轉換器ADC0804時序圖

分析上圖可知,當INTR#變為低電平後,将CS#先置低,在RD#置低至少經過tACC時間後,數字輸出口上的資料達到穩定狀态,此時直接讀取數字輸出端口資料便可得的數字信号,讀走資料後,馬上将RD#拉高,然後再将CS#拉高,INTR#是自動變化的,當RD#置低tR1時間後,INTR#自動拉高,我們不必人為去幹涉。

圖4.4.6和圖4.4.7是ADC0804啟動轉換和讀取資料的時序圖,這是啟動一次和讀取一次資料的時序圖,當我們要連續轉換并且連續讀取資料時,有沒有必要每次都把CS#置低再位高,因為CS#是片選信号,置低表示該晶片可被操作或處于能夠正常工作狀态,是以在寫程式時,隻要一開始将CS#置低,以後當要啟動轉換和讀取資料時隻需操作WR#和RD#即可。

繼續閱讀