基于Proteus的單片機(jī)計(jì)時器設(shè)計(jì)
一、引言
本文引用地址:http://2s4d.com/article/174667.htm計(jì)時器廣泛應(yīng)用于日常生活和自動化工業(yè)控制中。近年來隨著單片機(jī)在實(shí)時檢測和自動控制系統(tǒng)中的應(yīng)用,它的優(yōu)勢越發(fā)突出。利用單片機(jī)制作的計(jì)時器,使其更加智能化。
利用單片機(jī)制作的計(jì)時器更加智能化,當(dāng)計(jì)時停止時,可發(fā)出聲光報(bào)警進(jìn)行提示。本系統(tǒng)采用Proteus與Keil軟件結(jié)合構(gòu)建實(shí)驗(yàn)平臺。首先在計(jì)算機(jī)上利用Proteus制作硬件電路原理圖;接著使用Keil軟件編制程序,完成系統(tǒng)的軟件設(shè)計(jì);最后將程序編譯生成的代碼文件載入到單片機(jī)中,執(zhí)行仿真功能便可以在計(jì)算機(jī)中上看到最終的運(yùn)行效果。這種設(shè)計(jì)方法既可以很好的模擬電路的運(yùn)行效果又可以大大的降低設(shè)計(jì)成本、縮短設(shè)計(jì)周期,是一種非常方便的設(shè)計(jì)方法。
二、工作原理
本系統(tǒng)采用單片機(jī)控制實(shí)現(xiàn)精確計(jì)時,最小計(jì)時單位為秒,計(jì)時最大值為24小時。電路閑置時,屏幕無顯示,以最大限度節(jié)省電能。若按下啟動按鈕,系統(tǒng)便開始計(jì)時。計(jì)時時間會顯示在8位數(shù)碼管構(gòu)成的顯示屏上。當(dāng)按下停止按鈕時,系統(tǒng)停止計(jì)時,并且觸發(fā)由發(fā)光二極管和蜂鳴器構(gòu)成的聲光報(bào)警電路,提示時間已到。
此時顯示屏鎖定在當(dāng)前時間即已用時間,以備用戶查看。按下復(fù)位按鈕后,計(jì)時器停止報(bào)警并且關(guān)斷顯示,系統(tǒng)停止工作。
下次計(jì)時可以按下啟動按鈕重新開始。
三、硬件設(shè)計(jì)
計(jì)時器工作原理圖如圖1所示,它以單片機(jī)AT89C51為核心,由單片機(jī)最小應(yīng)用系統(tǒng)、數(shù)碼管顯示電路、按鈕控制電路和聲光報(bào)警電路幾部分組成。數(shù)碼管顯示電路用于顯示計(jì)時時間,由8位共陽極數(shù)碼管及驅(qū)動電路組成,采用動態(tài)掃描顯示以簡化硬件設(shè)計(jì)和降低生產(chǎn)成本;按鈕控制電路包括啟動和停止兩個按鈕,以實(shí)現(xiàn)計(jì)時器的啟動和停止控制;聲光報(bào)警電路用于實(shí)現(xiàn)計(jì)時停止時的報(bào)警提示,由一位發(fā)光二極管和蜂鳴器組成,如圖2所示。
四、軟件設(shè)計(jì)
程序設(shè)計(jì)采用模塊化編程方法。軟件由主程序、子程序和定時中斷服務(wù)程序組成。主程序和子程序完成按鍵掃描、顯示、聲光報(bào)警功能;定時中斷服務(wù)程序用于實(shí)現(xiàn)計(jì)時功能,并實(shí)時更新顯示數(shù)據(jù)。
程序流程圖如圖3所示:
其主程序和主要部分子程序如下:
五、仿真調(diào)試
采用Proteus與Keil軟件結(jié)合構(gòu)建實(shí)驗(yàn)平臺,既可以很好的模擬電路的運(yùn)行效果又可以大大的降低設(shè)計(jì)成本、縮短設(shè)計(jì)周期。具體步驟如下:
1.在計(jì)算機(jī)上利用Proteus軟件制作硬件電路原理圖
Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真及一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺,其處理器模型支持幾乎所有的單片機(jī)。編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。Proteus中提供了非常豐富的元件與部件,可以輕而易舉完成電路原理圖的編輯。
在Proteus中新建一個文件,依次添加原理圖中的元件進(jìn)行電路繪制。當(dāng)載入已編譯好的目標(biāo)代碼文件:*.HEX,可以在Proteus的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。
2.使用Keil軟件編制程序,完成系統(tǒng)的軟件設(shè)計(jì)
Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。特別是使用C語言編程,性能尤為突出。
在Keil中新建一個工程,輸入程序。
程序調(diào)試時除了可以使用Keil的軟件仿真功能,也可以啟動Keil與Proteus聯(lián)合仿真功能。聯(lián)調(diào)后,Proteus中的電路便會隨之一起啟動。Keil中的一個操作,如單步運(yùn)行、全速運(yùn)行、復(fù)位等,在Proteus電路中都會有所對應(yīng)。
3.將程序編譯生成的代碼文件載入到單片機(jī)
進(jìn)入Proteus界面,雙擊單片機(jī)AT89c51,彈出“編輯元件屬性”對話框,在“ProgramFile”欄中選擇要加載的代碼文件,然后點(diǎn)擊確定。如圖4所示。
最后點(diǎn)擊軟件左下角的“運(yùn)行”控制按鈕,以執(zhí)行仿真功能。
按要求進(jìn)行控制便可以在電路中上看到最終的運(yùn)行效果。如圖5所示。
六、結(jié)束語
利用單片機(jī)制作的計(jì)時器通過程序控制使其更加智能化,且具有很好的性價(jià)比。采用Proteus與Keil軟件結(jié)合構(gòu)建實(shí)驗(yàn)平臺進(jìn)行系統(tǒng)設(shè)計(jì),既可以很好的模擬電路的運(yùn)行效果又可以大大的降低設(shè)計(jì)成本、縮短設(shè)計(jì)周期,對單片機(jī)系統(tǒng)設(shè)計(jì)有很大的幫助。
二極管相關(guān)文章:二極管工作原理(史上最強(qiáng)二極管攻略)
模擬電路相關(guān)文章:模擬電路基礎(chǔ)
蜂鳴器相關(guān)文章:蜂鳴器原理
評論