基于AT89C51的數據采集系統(tǒng)設計新方法
引言
近年來,隨著制造技術的發(fā)展,單片機的價格越來越低,性能卻不斷提升,因而其應用范圍也越來越廣。然而在開發(fā)基于單片機的應用系統(tǒng)時,傳統(tǒng)方法一般都需要大量的硬件設備,這些設備極易損壞而且攜帶不方便。為此,本文基于AT89C51數據采集系統(tǒng)詳細說明了如何利用Pro-teus和兩款串口仿真軟件來進行單片機程序及外圍電路的仿真設計。采用該方法可以大大簡化硬件電路測試和系統(tǒng)調試過程,對單片機系統(tǒng)開發(fā)具有指導意義。本文介紹的基于AT89C5l單片機的數據采集系統(tǒng)能實現(xiàn)16路信號輸入,每一路都是0~10 mV的信號,每秒鐘采集一遍,從而將數據傳給上位PC計算機。
1 硬件設計
1.1 主控芯片
AT89C51是一種帶有4 KB閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,可為很多嵌入式控制系統(tǒng)提供靈活且價廉的方案。所以,本設計采用ATMEL公司的AT89C51作為程序的主控芯片。
AT89C51數據總線是由P0口提供的,P0口本身能以多種方式提供數據總線和地址總線。當ALE輸出信號為高電平時,P0將輸出的數據鎖入總線驅動器中作為地址的低8位,然后和P2送出來的高8位地址一起組成一個完整的16位地址,以尋址到外部的64KB的地址空間。AT89C51的地址總線比較簡單(只有3個:RD、WR、PSEN),其中RD是用來讀取外部數據內存的控制線,WR是用來寫數據到外部數據內存的控制線,PSEN是用來存取外部程序內存的讀取控制線。
由于P0口是數據和地址分時復用口,故要進行地址鎖存,本設計使用74HC573作為鎖存器。
1.2 系統(tǒng)硬件電路
本系統(tǒng)的硬件電路原理如圖1所示。因為ADC0809的地址選擇端A、B、C都接地,所以ADC0809的數據采集通道只有IN0被選通。16路模擬信號連接到多路選擇模擬開關HCC4067后,即可通過地址選擇端A、B、C、D進行選擇,每一次選通一路,選通的通道經IO COM X和ADC0809的IN0相連,以進行A/D轉換。P2.7(地址總線最高位A 15)可作為A/D轉換的啟動開關,P2.7為低電平有效。在啟動A/D轉換時,可由寫信號WR和P2.7控制ADC0809的地址鎖存和轉換啟動。而在讀取轉換結果時,則由讀信號RD和P2.7控制ADC0809的OE信號。若令P2.7為0,74HC573的A、B、C、D即可給出被選擇的模擬通道的地址,此時若ABCD=0000,則16路信號的100被選通,并將其數據送到ADC0809的IN0中,地址是7FF0H;若ABCD:1111,地址為7FFFH,則指向IO15。所以,16路信號依次對應的地址為7FFOH~7FFFH。轉換完成后,數據將保存到一數組中,直到當上位PC機通過串行口發(fā)信號時,AT89C51通過檢測地址是否和本機地址相符來作出動作。如果地址相符,則發(fā)送A/D轉換結果,如不相符,則繼續(xù)等待。