74ls138和AT89C2051組成的數字電壓表電路
我們利用AD574與ATMEL公司的低價高性能單片機AT89C2051組成一個高精度的數字電壓表,電原理圖如圖1,AD574是12位逐次比較型A/D轉換器,共有12根數據線,AT89C2051的P1與AD574的高8位數據線直接相接,AD574的低4位數據線與單片機的高半4位P1.4——P1.7直接相接,數據的讀取是依靠單片機的控制線進行分時選通進行。P3.5接AD574的字節短周期控制線(A0),P3.4接讀轉換數據控制腳(),P3.7直接與工作狀態指示端(STS)相連,這樣的結構決定只能是8位輸出形式,故數據模式選擇端直接接地即可。AT89C2051只有15根I/O口線,上述用了11根,只余下4根口線,我們將輸出的數據通過單片機的串行口輸出,外接一片74LS164(串入并出)譯碼器進行擴展,同時顯示的數據為4位,剩下的2根口線仍不能滿足要求,還需要一片74LS138三——八譯碼器對顯示LED進行地址選通。
????這里我們采用10V量程的輸入模式,故AD574的Pin13為被測電壓的輸入端,因為只使用了一片AD574轉換芯片,所以CS端直接接地即可。轉換器使用±12V電源電壓供電,工作電壓為+5V。
????74LS164為串入并出譯碼器,AT89C2051通過串行口輸出的BCD串行碼經74LS164譯碼輸出為七段BCD碼,直接與LED的a——g相連,同時四位LED的數據線都一一對應連接在一起。LED數碼管選用共陽型,74LS138輸出的地址碼經一個三極管2SA1015(PNP)接LED的公共端,四位LED的顯示是通過地址線進行分時選通的,這就是我們常用的動態掃描顯示方式。 ????值得一提的是,動態掃描顯示方式中,動態掃描的頻率有一定的要求,頻率太低,LED將出現閃爍現象。如頻率太高,由于每個LED點亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取10ms左右為宜,這就要求在編寫程序時,選通某一位LED使其點亮并保持一定的時間,程序上常采用的是調用延時子程序。在C51指令中,延時子程序是相當簡單的,并且延時時間也很容易更改。 |
評論
查看更多