一、引言
計時器廣泛應用于日常生活和自動化工業控制中。近年來隨著單片機在實時檢測和自動控制系統中的應用,它的優勢越發突出。利用單片機制作的計時器,使其更加智能化。
利用單片機制作的計時器更加智能化,當計時停止時,可發出聲光報警進行提示。本系統采用Proteus與Keil軟件結合構建實驗平臺。首先在計算機上利用Proteus制作硬件電路原理圖;接著使用Keil軟件編制程序,完成系統的軟件設計;最后將程序編譯生成的代碼文件載入到單片機中,執行仿真功能便可以在計算機中上看到最終的運行效果。這種設計方法既可以很好的模擬電路的運行效果又可以大大的降低設計成本、縮短設計周期,是一種非常方便的設計方法。
二、工作原理
本系統采用單片機控制實現精確計時,最小計時單位為秒,計時最大值為24小時。電路閑置時,屏幕無顯示,以最大限度節省電能。若按下啟動按鈕,系統便開始計時。計時時間會顯示在8位數碼管構成的顯示屏上。當按下停止按鈕時,系統停止計時,并且觸發由發光二極管和蜂鳴器構成的聲光報警電路,提示時間已到。
此時顯示屏鎖定在當前時間即已用時間,以備用戶查看。按下復位按鈕后,計時器停止報警并且關斷顯示,系統停止工作。
下次計時可以按下啟動按鈕重新開始。
三、硬件設計
計時器工作原理圖如圖1所示,它以單片機AT89C51為核心,由單片機最小應用系統、數碼管顯示電路、按鈕控制電路和聲光報警電路幾部分組成。數碼管顯示電路用于顯示計時時間,由8位共陽極數碼管及驅動電路組成,采用動態掃描顯示以簡化硬件設計和降低生產成本;按鈕控制電路包括啟動和停止兩個按鈕,以實現計時器的啟動和停止控制;聲光報警電路用于實現計時停止時的報警提示,由一位發光二極管和蜂鳴器組成,如圖2所示。
四、軟件設計
程序設計采用模塊化編程方法。軟件由主程序、子程序和定時中斷服務程序組成。主程序和子程序完成按鍵掃描、顯示、聲光報警功能;定時中斷服務程序用于實現計時功能,并實時更新顯示數據。
程序流程圖如圖3所示:
其主程序和主要部分子程序如下:
五、仿真調試
采用Proteus與Keil軟件結合構建實驗平臺,既可以很好的模擬電路的運行效果又可以大大的降低設計成本、縮短設計周期。具體步驟如下:
1.在計算機上利用Proteus軟件制作硬件電路原理圖
Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真及一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持幾乎所有的單片機。編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。Proteus中提供了非常豐富的元件與部件,可以輕而易舉完成電路原理圖的編輯。
在Proteus中新建一個文件,依次添加原理圖中的元件進行電路繪制。當載入已編譯好的目標代碼文件:*.HEX,可以在Proteus的原理圖中看到模擬的實物運行狀態和過程。
2.使用Keil軟件編制程序,完成系統的軟件設計
Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。特別是使用C語言編程,性能尤為突出。
在Keil中新建一個工程,輸入程序。
程序調試時除了可以使用Keil的軟件仿真功能,也可以啟動Keil與Proteus聯合仿真功能。聯調后,Proteus中的電路便會隨之一起啟動。Keil中的一個操作,如單步運行、全速運行、復位等,在Proteus電路中都會有所對應。
3.將程序編譯生成的代碼文件載入到單片機
進入Proteus界面,雙擊單片機AT89c51,彈出“編輯元件屬性”對話框,在“ProgramFile”欄中選擇要加載的代碼文件,然后點擊確定。如圖4所示。
最后點擊軟件左下角的“運行”控制按鈕,以執行仿真功能。
按要求進行控制便可以在電路中上看到最終的運行效果。如圖5所示。
六、結束語
利用單片機制作的計時器通過程序控制使其更加智能化,且具有很好的性價比。采用Proteus與Keil軟件結合構建實驗平臺進行系統設計,既可以很好的模擬電路的運行效果又可以大大的降低設計成本、縮短設計周期,對單片機系統設計有很大的幫助。
-
單片機
+關注
關注
6043文章
44622瀏覽量
638548 -
計時器
+關注
關注
1文章
426瀏覽量
32861 -
keil
+關注
關注
69文章
1214瀏覽量
167276
發布評論請先 登錄
相關推薦
Proteus軟件仿真與Keil的單片機系統設計方案
![<b class='flag-5'>Proteus</b><b class='flag-5'>軟件</b>仿真與<b class='flag-5'>Keil</b>的<b class='flag-5'>單片機</b><b class='flag-5'>系統</b>設計方案](https://file1.elecfans.com//web2/M00/A4/AB/wKgZomUMNTeAeAqAAAAwAoFP1gA898.gif)
基于單片機技術的機械設備計時器的研制
![基于<b class='flag-5'>單片機</b>技術的機械設備<b class='flag-5'>計時器</b>的研制](https://file1.elecfans.com//web2/M00/A5/51/wKgZomUMN-KAFeJ5AABLtgHBqac881.jpg)
51單片機計時器中斷
基于單片機系統的籃球計分計時器的設計
![基于<b class='flag-5'>單片機</b><b class='flag-5'>系統</b>的籃球計分<b class='flag-5'>計時器</b>的設計](https://file.elecfans.com/web2/M00/49/69/poYBAGKhwK-AH1UXAAAgrT_lPV0123.png)
使用keil和proteus軟件基于51單片機設計簡易計數器系統的資料說明
![使用<b class='flag-5'>keil</b>和<b class='flag-5'>proteus</b><b class='flag-5'>軟件</b>基于51<b class='flag-5'>單片機</b>設計簡易計數<b class='flag-5'>器</b><b class='flag-5'>系統</b>的資料說明](https://file.elecfans.com/web1/M00/C0/28/pIYBAF77_Z6AESo5AAC-m53W89k587.png)
單片機開發軟件keil4和proteus的使用教程(超詳細)_☆往事隨風☆的博客
![<b class='flag-5'>單片機</b>開發<b class='flag-5'>軟件</b><b class='flag-5'>keil</b>4和<b class='flag-5'>proteus</b>的使用教程(超詳細)_☆往事隨風☆的博客](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論