渠麗巖
(天津理工大學(xué) 中環(huán)信息學(xué)院,天津 300380)
PROTEUS軟件是LabCenter Electronics公司開發(fā)的EDA工具軟件,它集成了高級(jí)原理圖設(shè)計(jì)、混合模式SPICE電路仿真及PCB設(shè)計(jì)[1],最具特色的是它能夠仿真基于單片機(jī)的電子系統(tǒng)。PROTEUS不但支持MCS-51及其派生系列單片機(jī)的設(shè)計(jì)與仿真,還可以仿真基于AVR、ARM和PIC系列的嵌入式系統(tǒng)。
PROTEUS軟件可提供各類元器庫30多個(gè),超過27 000多種元器件。此外,對于元件庫中沒有的器件,用戶可以依照需要自己創(chuàng)建。在軟件調(diào)試方面,其內(nèi)部帶有8051、AVR、PIC的匯編編譯器,支持單片機(jī)匯編語言的編輯、編譯和源代碼級(jí)仿真,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級(jí)語言的源代碼級(jí)仿真和調(diào)試。PROTUES不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化,這是實(shí)物演示難以達(dá)到的效果[2]。
在計(jì)算機(jī)廣泛應(yīng)用的今天,日益突顯數(shù)據(jù)采集的重要性,它是計(jì)算機(jī)與外部世界連接的橋梁。數(shù)據(jù)采集系統(tǒng)主要是將傳感器采集來的模擬信號(hào)經(jīng)A/D轉(zhuǎn)換后形成數(shù)字信號(hào),并通過接口電路送給處理器,然后再進(jìn)行分析、傳輸、顯示和存儲(chǔ)等處理。
數(shù)據(jù)采集裝置在工業(yè)現(xiàn)場和科學(xué)研究中應(yīng)用廣泛。在生產(chǎn)過程中,應(yīng)用這一裝置可以對生產(chǎn)現(xiàn)場的各種參數(shù)進(jìn)行采集、監(jiān)控和記錄,為提高產(chǎn)品質(zhì)量、降低成本、增加生產(chǎn)效率提供信息和手段;在科學(xué)研究中,數(shù)據(jù)采集裝置可獲得大量的動(dòng)態(tài)信息,是各種研究領(lǐng)域的有力工具,也是破解科學(xué)奧秘的重要手段之一[3]。
本系統(tǒng)的核心部分電路采用ATMEL公司生產(chǎn)的AT89C51單片機(jī)。AT89C51單片機(jī)是一款低電壓、高性能的CMOS型8位微處理器,與工業(yè)標(biāo)準(zhǔn)的MCS-51單片機(jī)完全兼容。
AT89C51具有以下標(biāo)準(zhǔn)功能:4k字節(jié)FLASH閃速存儲(chǔ)器,128字節(jié)內(nèi)部 RAM,32個(gè) I/O口線,2個(gè) 16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至0 Hz靜態(tài)邏輯操作,并支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,但允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷系統(tǒng)繼續(xù)工作;掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器停止工作并禁止其他所有部件工作,直到下一個(gè)硬件復(fù)位。AT89S51為很多嵌入式控制系統(tǒng)提供了一種靈活高效且價(jià)廉的方案,因此在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用[4]。
本系統(tǒng)核心部分電路可與傳感器配合實(shí)現(xiàn)對電壓、電流、溫度、濕度、壓力等多種信號(hào)的采集與處理,可以處理8路信號(hào);若需要采集的信號(hào)較多時(shí),可配合使用可編程并行輸入/輸出接口芯片。采集處理后的信號(hào)可送往顯示器顯示并存儲(chǔ)。圖1數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖。
圖1 數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖Fig.1 The structure diagram of data acquisition system
這里主要介紹A/D轉(zhuǎn)換程序設(shè)計(jì)。本系統(tǒng)的ACD采用的是ADC0808。ADC0808是采樣分辨率為8位的逐次逼近型模/數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),選通8路模擬輸入信號(hào)中的任意一個(gè)進(jìn)行A/D轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果送入單片機(jī)進(jìn)行處理。它作為簡單的數(shù)據(jù)采集系統(tǒng),在多點(diǎn)巡回檢測、過程控制和運(yùn)動(dòng)控制中應(yīng)用十分廣泛。
使用ADC0808時(shí),首先通過單片機(jī)的P3.4~P3.6引腳設(shè)置 ADDC、ADDB、ADDA,從而選擇轉(zhuǎn)換通道;然后通過 P3.2鎖存地址信號(hào),同時(shí)啟動(dòng)A/D轉(zhuǎn)換[5]。
ADC0808內(nèi)部沒有時(shí)鐘電路,PROTEUS軟件為系統(tǒng)仿真提供了各種形式的時(shí)鐘信號(hào),本系統(tǒng)中ADC0808的時(shí)鐘信號(hào)頻率為500 kHz,其設(shè)置如圖2所示。單片機(jī)可以通過查詢或中斷的方式等待A/D轉(zhuǎn)換完畢,轉(zhuǎn)換數(shù)據(jù)保存在ADDR寄存器中。
圖2 ADC0808的時(shí)鐘信號(hào)設(shè)置Fig.2 ADC0808 clock signal settings
進(jìn)行多通道AD轉(zhuǎn)換時(shí),首先切換到通道0進(jìn)行A/D轉(zhuǎn)換,并等待轉(zhuǎn)換結(jié)束,讀取轉(zhuǎn)換結(jié)果;然后切換到通道1進(jìn)行轉(zhuǎn)換,操作過程與通道0相同;依次切換轉(zhuǎn)換通道,完成所有通道的轉(zhuǎn)換。A/D轉(zhuǎn)換程序的流程如圖3所示。
在PROTEU軟件上仿真基于單片機(jī)的電子系統(tǒng),實(shí)質(zhì)是構(gòu)建基于PROTEUS和Keil的AT89S51虛擬實(shí)驗(yàn)平臺(tái)。
Keil C51是51系列兼容單片機(jī)軟件開發(fā)系統(tǒng),可以編輯、編譯匯編語言和C語言編寫的單片機(jī)程序。Keil C51軟件提供了豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,它生成的后綴為“.hex”的文件,即可以直接下載到硬件設(shè)備上運(yùn)行,也可以添加到PROTEU軟件環(huán)境中進(jìn)行仿真[6]。
基于PROTEU軟件的仿真過程如下:
1)在Keil C51中編寫源程序,并調(diào)試、編譯源程序,生成后綴為“.hex”的文件;
2)在PROTEUS軟件中設(shè)計(jì)電路原理圖,并設(shè)置相關(guān)參數(shù);將“.hex”文件導(dǎo)入AT89C51芯片;
3)在PROTEUS軟件中運(yùn)行,觀察仿真結(jié)果,并檢驗(yàn)是否與設(shè)計(jì)要求一致。
圖4所示是數(shù)據(jù)采集系統(tǒng)的仿真結(jié)果。圖中只畫出了一路數(shù)據(jù)采集通道,使用的是溫度傳感器,調(diào)節(jié)溫度傳感器的滑動(dòng)觸頭,可以觀測到所采集數(shù)據(jù)的變化情況。本圖中選擇通道IN0采集的信號(hào)進(jìn)行演示。
圖3 A/D轉(zhuǎn)換流程圖Fig.3 A/D conversion process flow diagram
本系統(tǒng)在單極性參考電壓0~5 V范圍內(nèi),運(yùn)行穩(wěn)定可靠,采樣精度高;調(diào)節(jié)滑動(dòng)觸頭,可觀測到輸出信號(hào)的變化情況。對于參考電壓 5 V,輸出值在0~255之間,其對應(yīng)于0~99℃之間的溫度值。本系統(tǒng)能滿足多數(shù)測控系統(tǒng)的要求,因此基于PROTEUS和Keil C51的單片機(jī)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)是切實(shí)可行的。本系統(tǒng)不僅可以實(shí)現(xiàn)系統(tǒng)的A/D轉(zhuǎn)換和顯示任務(wù),通過簡單的擴(kuò)展還可以實(shí)現(xiàn)串口通信、鍵盤監(jiān)測等任務(wù)的仿真與調(diào)試。采用虛擬實(shí)驗(yàn)的方式,不僅能夠降低開發(fā)成本,而且可以提高開發(fā)效率、提升開發(fā)速度,具有較高的推廣應(yīng)用價(jià)值。
圖4 數(shù)據(jù)采集系統(tǒng)的仿真結(jié)果Fig.4 The simulation results of the data acquisition system
[1]周潤景,張麗娜,丁莉.基于PROTEUS的電路及單片機(jī)設(shè)計(jì)與仿真[M].2版.北京:北京航空航天大學(xué)出版社,2010.
[2]董普松.Proteus在單片機(jī)系統(tǒng)設(shè)計(jì)中的應(yīng)用 [J].現(xiàn)代電子技術(shù),2008(14):153-154.DONG Pu-song.Applicaion ofProteusin singlechip computer system design[J].Modern Electronic Technology,2008(14):153-154.
[3]周鴻雁.ADuC845單片機(jī)和PTR2000的無線數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(2):57-60.ZHOU Hong-yan.Wireless data acquistion system based on ADuC845 and PTR2000[J].Microcontroller&Embedded Systems,2012(2):57-60.
[4]胡漢才.單片機(jī)原理及其接口技術(shù)[M].3版.北京:清華大學(xué)出版社.
[5]康華光.電子技術(shù)基礎(chǔ)——數(shù)字部分[M].4版.北京:高等教育出版社.
[6]李莉.基于Proteus的數(shù)據(jù)采集系統(tǒng)仿真設(shè)計(jì)[J].電力學(xué)報(bào),2009,24(3):206-207.LI Li.Simulation design of data acquisition system based on proteus[J].Journal of Electric Power,2009,24(3):206-207.