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