《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于Proteus的單片機應(yīng)用于嵌入式系統(tǒng)設(shè)計方案
基于Proteus的單片機應(yīng)用于嵌入式系統(tǒng)設(shè)計方案
摘要: 基于Proteus電路設(shè)計,、Keil程序設(shè)計以及它們聯(lián)合仿真調(diào)試的方法,建立了單片機系統(tǒng)硬件設(shè)計,、軟件設(shè)計以及調(diào)試的全虛擬環(huán)境,,使得全部的設(shè)計工作基于PC就能完成,,顯著提高了設(shè)計開發(fā)效率,降低開發(fā)風險,,這對嵌入式方案設(shè)計無疑是一個很好的思路,。
Abstract:
Key words :

1 概述

隨著半導體技術(shù)的飛速發(fā)展,,以及移動通信、網(wǎng)絡(luò)技術(shù),、多媒體技術(shù)在嵌入式系統(tǒng)設(shè)計中的應(yīng)用,,單片機從4位、8位,、16位到32位,,其發(fā)展歷程一直受到廣大電子愛好者的極大關(guān)注。單片機功能越來越強大,,價格卻不斷下降的優(yōu)勢無疑成為嵌入式系統(tǒng)方案設(shè)計的首選,,同時單片機應(yīng)用領(lǐng)域的擴大也使得更多人加入到基于單片機系統(tǒng)的開發(fā)行列中,推動著單片機技術(shù)的創(chuàng)新進步,。

然而傳統(tǒng)的單片機系統(tǒng)開發(fā)除了需要購置諸如仿真器,、編程器、示波器等價格不菲的電子設(shè)備外,,開發(fā)過程也較繁瑣,。如圖1所示,用戶程序需要在硬件完成的情況下才能進行聯(lián)調(diào),,如果在調(diào)試過程中發(fā)現(xiàn)需修改硬件,,則要重新制板。因此無論從硬件成本還是開發(fā)周期來看,,其高風險,、低效率的特性顯露無遺。來自英國Labcenter Electronics公司的Proteus軟件很好地詮釋了利用現(xiàn)代EDA工具方便快捷開發(fā)單片機系統(tǒng)的優(yōu)勢,。它包括PROTEUS VSM(Virtual System Modelling),、PROTEUS PCB DESIGN兩大組成部分,在PC機上就能實現(xiàn)原理圖電路設(shè)計,、電路分析與仿真,、單片機代碼級調(diào)試與仿真、系統(tǒng)測試與功能驗證以及形成PCB文件的完整嵌入式系統(tǒng)設(shè)計與研發(fā)過程,。本文講述PROTEUS VSM單片機系統(tǒng)的PROTEUS設(shè)計與仿真功能,,圖2為基于PROTEUS仿真軟件的單片機系統(tǒng)設(shè)計流程,它極大地簡化了設(shè)計工作,,得到眾多設(shè)計師的青睞,。


圖1 傳統(tǒng)的單片機系統(tǒng)設(shè)計流程  圖2 基于Proteus的單片機系統(tǒng)設(shè)計流程

2 基于Proteus的單片機系統(tǒng)設(shè)計與仿真

Proteus支持51、PIC,、AVR,、ARM7等多個系列的單片機芯片,集編輯,、編譯,、仿真調(diào)試于一體,。它的界面簡潔友好,可利用該軟件提供的數(shù)千種數(shù)字/模擬仿真元器件以及豐富的仿真設(shè)備,,使得在程序調(diào)試,、系統(tǒng)仿真時不僅能觀察到程序執(zhí)行過程中單片機寄存器和存儲器等內(nèi)容變化,還可從工程的角度直觀地看到外圍電路工作情況,,非常接近工程應(yīng)用。另外Proteus還能與第三方集成開發(fā)環(huán)境(如Keil的μVision)進行聯(lián)合仿真調(diào)試,,給予開發(fā)人員莫大便利,。本設(shè)計以51單片機構(gòu)成的99秒馬表為例描述基于Proteus的硬件設(shè)計、基于Keil C的軟件設(shè)計以及它們的聯(lián)合仿真調(diào)試過程,。

2.1 硬件設(shè)計

2個七段數(shù)碼管顯示馬表時間,,用51單片機的P1口驅(qū)動;按鍵SP掛在外部中斷0的I/O口上,第1次按下表示開始運行,,第2次按下為計時停止,,第3次按下重新歸零;擴展程序存儲器27256、數(shù)據(jù)存儲器62256主要是緣于嵌入式操作系統(tǒng)μC/OSII下的應(yīng)用程序設(shè)計,,片內(nèi)存儲空間有限,,同時也方便擴展。

根據(jù)以上分析,,選取的元器件有:AT89C51,、4位7段譯碼顯示器、74LS373,、27256,、62256、按鍵及電阻電容等,。Proteus繪制原理圖和Protel軟件相似,,先從元件庫中取出所需的元件并在繪圖區(qū)布局好,設(shè)置元器件屬性,,接著進行連線,,添加必要的網(wǎng)絡(luò)標示等,最后完成電氣檢測,。圖3為馬表電路原理圖,。

2.2 軟件設(shè)計

隨著嵌入式系統(tǒng)應(yīng)用不斷擴大,功能不斷增強,,為了對整個系統(tǒng)及其所操作的部件,、裝置等資源進行統(tǒng)一協(xié)調(diào)、指揮和有效控制,,使開發(fā)人員只專注于應(yīng)用程序設(shè)計,,在嵌入式系統(tǒng)中引入操作系統(tǒng)是非常必要的,。μC/OSII是源碼公開的實時多任務(wù)操作系統(tǒng),具備足夠的穩(wěn)定性和安全性,,特別適合用于中小型嵌入式系統(tǒng)中,。μC/OSII的具體介紹和移植過程請見參考文獻[1]。

Keil公司的Keil μVision3,,是目前使用最為廣泛的開發(fā)環(huán)境之一,。這里介紹在Keil μVision3環(huán)境下基于μC/OSII嵌入式操作系統(tǒng)的用戶程序設(shè)計。根據(jù)馬表系統(tǒng)功能,,設(shè)計兩個任務(wù): 任務(wù)1為數(shù)碼管顯示,,調(diào)用系統(tǒng)延時函數(shù)實現(xiàn)馬表的運行;任務(wù)2為按鍵判斷,屬于中斷級任務(wù),,通過按鍵啟動/停止/重置馬表,。數(shù)碼管顯示和按鍵判斷任務(wù)之間用信號量實現(xiàn)通信;其中按鍵任務(wù)發(fā)出信號量,數(shù)碼管顯示任務(wù)負責接收信號量,。程序流程如圖4所示,。部分程序清單如下:

主程序

任務(wù)1

任務(wù)2

2.3 系統(tǒng)聯(lián)調(diào)

在Proteus硬件電路圖和Keil C程序設(shè)計完成之后,接著進行聯(lián)合仿真,。此時需要對Proteus和Keil兩個軟件進行簡單的配置,,具體配置過程見參考文獻[2]。同時打開電路仿真圖和C工程文件,,在Keil中啟動調(diào)試“DebugStart/Stop Debug Session”,,并運行DebugGo,此時Proteus仿真被Keil啟動,,在Keil和Proteus中都可以觀察運行狀態(tài),。程序運行后,可看到數(shù)碼管顯示情況,,當按下按鍵,,數(shù)碼管顯示作相應(yīng)切換。

結(jié)語

基于Proteus電路設(shè)計,、Keil程序設(shè)計以及它們聯(lián)合仿真調(diào)試的方法,,建立了單片機系統(tǒng)硬件設(shè)計、軟件設(shè)計以及調(diào)試的全虛擬環(huán)境,,使得全部的設(shè)計工作基于PC就能完成,,顯著提高了設(shè)計開發(fā)效率,降低開發(fā)風險,,這對嵌入式方案設(shè)計無疑是一個很好的思路,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。