<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Proteus軟件仿真與Keil的單片機系統設計

Proteus軟件仿真與Keil的單片機系統設計

作者: 時(shí)間:2009-02-26 來(lái)源:網(wǎng)絡(luò ) 收藏

1 概述

本文引用地址:http://dyxdggzs.com/article/173891.htm

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

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

圖1 傳統的單片機系統設計流程  圖2 基于的單片機系統設計流程

  2 基于的單片機系統設計與仿真

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

  2.1 硬件設計

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

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

2.2 軟件設計

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

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

主程序

任務(wù)1

任務(wù)2

2.3 系統聯(lián)調

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


  結語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>