渠麗巖
(天津理工大學 中環信息學院,天津 300380)
PROTEUS軟件是LabCenter Electronics公司開發的EDA工具軟件,它集成了高級原理圖設計、混合模式SPICE電路仿真及PCB設計[1],最具特色的是它能夠仿真基于單片機的電子系統。PROTEUS不但支持MCS-51及其派生系列單片機的設計與仿真,還可以仿真基于AVR、ARM和PIC系列的嵌入式系統。
PROTEUS軟件可提供各類元器庫30多個,超過27 000多種元器件。此外,對于元件庫中沒有的器件,用戶可以依照需要自己創建。在軟件調試方面,其內部帶有8051、AVR、PIC的匯編編譯器,支持單片機匯編語言的編輯、編譯和源代碼級仿真,也可以與第三方集成編譯環境(如IAR、Keil和Hitech)結合,進行高級語言的源代碼級仿真和調試。PROTUES不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化,這是實物演示難以達到的效果[2]。
在計算機廣泛應用的今天,日益突顯數據采集的重要性,它是計算機與外部世界連接的橋梁。數據采集系統主要是將傳感器采集來的模擬信號經A/D轉換后形成數字信號,并通過接口電路送給處理器,然后再進行分析、傳輸、顯示和存儲等處理。
數據采集裝置在工業現場和科學研究中應用廣泛。在生產過程中,應用這一裝置可以對生產現場的各種參數進行采集、監控和記錄,為提高產品質量、降低成本、增加生產效率提供信息和手段;在科學研究中,數據采集裝置可獲得大量的動態信息,是各種研究領域的有力工具,也是破解科學奧秘的重要手段之一[3]。
本系統的核心部分電路采用ATMEL公司生產的AT89C51單片機。AT89C51單片機是一款低電壓、高性能的CMOS型8位微處理器,與工業標準的MCS-51單片機完全兼容。
AT89C51具有以下標準功能:4k字節FLASH閃速存儲器,128字節內部 RAM,32個 I/O口線,2個 16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0 Hz靜態邏輯操作,并支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,但允許RAM、定時器/計數器、串口、中斷系統繼續工作;掉電保護方式下,RAM內容被保存,振蕩器停止工作并禁止其他所有部件工作,直到下一個硬件復位。AT89S51為很多嵌入式控制系統提供了一種靈活高效且價廉的方案,因此在眾多嵌入式控制應用系統中得到廣泛應用[4]。
本系統核心部分電路可與傳感器配合實現對電壓、電流、溫度、濕度、壓力等多種信號的采集與處理,可以處理8路信號;若需要采集的信號較多時,可配合使用可編程并行輸入/輸出接口芯片。采集處理后的信號可送往顯示器顯示并存儲。圖1數據采集系統結構框圖。

圖1 數據采集系統的結構框圖Fig.1 The structure diagram of data acquisition system
這里主要介紹A/D轉換程序設計。本系統的ACD采用的是ADC0808。ADC0808是采樣分辨率為8位的逐次逼近型模/數轉換器。其內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼后的信號,選通8路模擬輸入信號中的任意一個進行A/D轉換,并將轉換結果送入單片機進行處理。它作為簡單的數據采集系統,在多點巡回檢測、過程控制和運動控制中應用十分廣泛。
使用ADC0808時,首先通過單片機的P3.4~P3.6引腳設置 ADDC、ADDB、ADDA,從而選擇轉換通道;然后通過 P3.2鎖存地址信號,同時啟動A/D轉換[5]。
ADC0808內部沒有時鐘電路,PROTEUS軟件為系統仿真提供了各種形式的時鐘信號,本系統中ADC0808的時鐘信號頻率為500 kHz,其設置如圖2所示。單片機可以通過查詢或中斷的方式等待A/D轉換完畢,轉換數據保存在ADDR寄存器中。

圖2 ADC0808的時鐘信號設置Fig.2 ADC0808 clock signal settings
進行多通道AD轉換時,首先切換到通道0進行A/D轉換,并等待轉換結束,讀取轉換結果;然后切換到通道1進行轉換,操作過程與通道0相同;依次切換轉換通道,完成所有通道的轉換。A/D轉換程序的流程如圖3所示。
在PROTEU軟件上仿真基于單片機的電子系統,實質是構建基于PROTEUS和Keil的AT89S51虛擬實驗平臺。
Keil C51是51系列兼容單片機軟件開發系統,可以編輯、編譯匯編語言和C語言編寫的單片機程序。Keil C51軟件提供了豐富的庫函數和功能強大的集成開發調試工具,它生成的后綴為“.hex”的文件,即可以直接下載到硬件設備上運行,也可以添加到PROTEU軟件環境中進行仿真[6]。
基于PROTEU軟件的仿真過程如下:
1)在Keil C51中編寫源程序,并調試、編譯源程序,生成后綴為“.hex”的文件;
2)在PROTEUS軟件中設計電路原理圖,并設置相關參數;將“.hex”文件導入AT89C51芯片;
3)在PROTEUS軟件中運行,觀察仿真結果,并檢驗是否與設計要求一致。
圖4所示是數據采集系統的仿真結果。圖中只畫出了一路數據采集通道,使用的是溫度傳感器,調節溫度傳感器的滑動觸頭,可以觀測到所采集數據的變化情況。本圖中選擇通道IN0采集的信號進行演示。

圖3 A/D轉換流程圖Fig.3 A/D conversion process flow diagram
本系統在單極性參考電壓0~5 V范圍內,運行穩定可靠,采樣精度高;調節滑動觸頭,可觀測到輸出信號的變化情況。對于參考電壓 5 V,輸出值在0~255之間,其對應于0~99℃之間的溫度值。本系統能滿足多數測控系統的要求,因此基于PROTEUS和Keil C51的單片機數據采集系統的設計是切實可行的。本系統不僅可以實現系統的A/D轉換和顯示任務,通過簡單的擴展還可以實現串口通信、鍵盤監測等任務的仿真與調試。采用虛擬實驗的方式,不僅能夠降低開發成本,而且可以提高開發效率、提升開發速度,具有較高的推廣應用價值。

圖4 數據采集系統的仿真結果Fig.4 The simulation results of the data acquisition system
[1]周潤景,張麗娜,丁莉.基于PROTEUS的電路及單片機設計與仿真[M].2版.北京:北京航空航天大學出版社,2010.
[2]董普松.Proteus在單片機系統設計中的應用 [J].現代電子技術,2008(14):153-154.DONG Pu-song.Applicaion ofProteusin singlechip computer system design[J].Modern Electronic Technology,2008(14):153-154.
[3]周鴻雁.ADuC845單片機和PTR2000的無線數據采集系統設計[J].單片機與嵌入式系統應用,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]胡漢才.單片機原理及其接口技術[M].3版.北京:清華大學出版社.
[5]康華光.電子技術基礎——數字部分[M].4版.北京:高等教育出版社.
[6]李莉.基于Proteus的數據采集系統仿真設計[J].電力學報,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.