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