詳解基于單片機的數字電壓表的工作原理
IN0-IN7:8條模擬量輸入通道 。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,輸出數據線呈高阻狀態(tài)。D7-D0為數字量輸出線。
CLK為時鐘輸入信號線。因ADC0809的內部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為1MHZ,VREF(+),VREF(-)為參考電壓輸入。
3.5 ADC0809應用說明
ADC0809內部帶有輸出鎖存器,可以與AT89S51單片機直接相連。 初始化時,使ST和OE信號全為低電平。送要轉換的哪一通道的地址到A,B,C端口上。在ST端給出一個至少有100ns寬的正脈沖信號。是否轉換完畢,我們根據EOC信號來判斷。當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉換的數據就輸出給單片機。
3.6 ADC0809工作原理
8路模擬信號由ADC0809的IN0~IN7端輸入,AT89S51單片機的ALE端口輸出的脈沖信號送ADC0809的10腳作為ADC的時鐘信號(產生CLK信號的方法就得用軟件來產生)。A/D轉換完成之后,從EOC端返回AT89S51一個轉換結束信號,單片機隨即用信號將A/D轉換的數字輸出從D0~D7端經P0口數據總線讀入自己的存儲器中。A/D轉換過程全部結束。再經軟件程序轉換成a~g 7段碼輸出,驅動LED數碼管。各位數碼管由位控信號P3.0、P3.1、P3.2、P3.3控制,由74LS245反相驅動將依次巡回點亮數碼管。
3.7 復位電路的設計
本設計采用了上電自動復位和手動復位,上電自動復位是再加電瞬間電容通過充電來實現的,其電路如圖3.2所示。在充電瞬間,電容C通過復位電阻R充電,RST端出現正脈沖,以復位。只要電源VCC的上升時間不超過1MS,就可以實現自動復位,既接通電源就完成了系統(tǒng)的復位初始化,手動復位是通過按鈕實現的。

圖3 復位電路
3.8 時鐘電路的設計
任何一塊單片機的正常工作都離不開時鐘信號,本設計中利用8951內部的高增益反相放大器,外加石英晶體以及兩個電容就構成了穩(wěn)定的自激振蕩器。給單片機提供了時鐘信號,保持單片機按正常的時序工作。

圖4 時鐘電路
評論