吳永鵬
摘要:為有效解決當(dāng)前單片機(jī)中存在的定時(shí)器無法自動(dòng)啟停這一問題,此次研究設(shè)計(jì)了一種全新的應(yīng)用方法。該方法主要是通過外部中斷的方式來實(shí)現(xiàn)定時(shí)器的啟停作業(yè)。其中,核心控制單元就是STC90C5RC單片機(jī),通過按鍵申請(qǐng)可以向外部發(fā)出中斷信號(hào)INT0和INT1,其中INT0的中斷函數(shù)可對(duì)定時(shí)器進(jìn)行TR0取反控制,以此來滿足定時(shí)器交替作業(yè)與啟停的目的。而在INT1的中斷函數(shù)中,只要按下操作按鍵,便會(huì)將計(jì)時(shí)器歸零,同時(shí)會(huì)促使TR0=1啟動(dòng)定時(shí)器,以此來實(shí)現(xiàn)定時(shí)器的重啟。
關(guān)鍵詞:單片機(jī);定時(shí)器;外部中斷;中斷函數(shù)
我國自主生產(chǎn)研發(fā)的STC90C5RC單片機(jī)性能卓越,且適用范圍極廣,在國內(nèi)市場有著絕對(duì)的領(lǐng)先地位。在該單片機(jī)的內(nèi)部構(gòu)造中,主要集成方式是利用兩個(gè)16位的可編輯定時(shí)器T0和T1設(shè)計(jì)的,這也是該點(diǎn)偏激中最重要的軟硬件組合配套設(shè)施以及定時(shí)部件。在此基礎(chǔ)上,可以實(shí)現(xiàn)靈活自由的定時(shí)及時(shí)以及裁判。但是因?yàn)槔肨0和T1需要深入掌握單片機(jī)的定時(shí)器控制寄存器TCON以及TMOD的工作機(jī)理,所以相對(duì)來說在設(shè)計(jì)階段有一定的難度。
通過實(shí)踐表明,單片機(jī)定時(shí)器的應(yīng)用需要結(jié)合實(shí)際情況進(jìn)行設(shè)計(jì),Rubicon在田徑運(yùn)動(dòng)場上,需要設(shè)計(jì)為累加計(jì)時(shí),在個(gè)人競技項(xiàng)目中需要設(shè)計(jì)為歸零計(jì)時(shí)等。因?yàn)閱纹瑱C(jī)定時(shí)器在編輯時(shí)無法預(yù)知后期的使用領(lǐng)域,所以需要將之設(shè)計(jì)為可靈活啟停的計(jì)時(shí)器。只有這樣才能滿足在各種環(huán)境下單片機(jī)定時(shí)器在計(jì)時(shí)器當(dāng)中的高效應(yīng)用。
一、硬件設(shè)計(jì)
在此就以體育競賽的計(jì)時(shí)器進(jìn)行參考與設(shè)計(jì)。在正常的體育競技計(jì)時(shí)器中,計(jì)時(shí)器的核心控制單元一般都是STC90C5RC單片機(jī),或者在此基礎(chǔ)上再加一個(gè)微信系統(tǒng)便可實(shí)現(xiàn)精準(zhǔn)操作。為了讓LCD1602液晶顯示屏幕能夠顯示計(jì)時(shí)器提供的時(shí)間,可以把單片機(jī)中的P0端口連接在LCD1602D的數(shù)據(jù)接口上,通過這樣的方式,便可有利于數(shù)據(jù)傳輸?shù)恼w質(zhì)量,同時(shí)在數(shù)據(jù)傳輸?shù)倪^程中還可以對(duì)LCD1602進(jìn)行命令和控制。另外,將單片機(jī)的P2.5、P2.6和P2.7的引腳介入到LCD1602的R/W和RS以及EN端口上,從而便可全面實(shí)現(xiàn)單片機(jī)對(duì)于LCD1602傳輸顯示的控制。同時(shí),彈性按鍵K0是單片機(jī)P3.2引腳的控制點(diǎn),可控制外部中斷INT0的輸入,K1同K0相似,屬于INT1的控制點(diǎn)。當(dāng)兩個(gè)彈性按鍵出發(fā)之后,便可發(fā)出外部中斷申請(qǐng)。
二、程序設(shè)計(jì)
在對(duì)其程序進(jìn)行設(shè)計(jì)的時(shí)候,需要了解程序的各單元。其中主要包括準(zhǔn)備部分、主程序部分、定時(shí)器TO中斷函數(shù)部分、外部中斷INT0以及INT1中斷函數(shù)部分等。其中,準(zhǔn)備部分主要包括說明、延遲函數(shù)、初始化函數(shù)等內(nèi)容。主程序部分主要包括定時(shí)器T0的定時(shí)設(shè)計(jì)時(shí)間。而且在對(duì)定時(shí)器T0中斷函數(shù)進(jìn)行設(shè)計(jì)的時(shí)候,需要主要預(yù)置TH0和TL0的初值,并且要修改時(shí)間數(shù)值,因?yàn)橛?jì)時(shí)器的中斷時(shí)間是0.01秒,所以下修改過程中需要在程序中加0.01秒。
三、啟動(dòng)與暫停按鍵功能的設(shè)計(jì)
如果計(jì)時(shí)器正在工作的過程中,操作人員按下啟動(dòng)或者暫停按鍵,此時(shí)計(jì)時(shí)器就會(huì)停止工作,進(jìn)入暫停狀態(tài)。而且LCD1602上所顯示的時(shí)間也是停止時(shí)間。若此時(shí)操作人員在此按下啟動(dòng)與暫停按鍵,計(jì)時(shí)器便會(huì)按照之前計(jì)時(shí)停止的時(shí)間繼續(xù)計(jì)時(shí)。結(jié)合TCON以及TMOD的工作機(jī)理和原則分析,如果按下啟動(dòng)與暫停按鍵之后,可以同時(shí)實(shí)現(xiàn)TR0=0,此時(shí)便可使T0計(jì)時(shí)器暫停,同時(shí)也能讓unm0的數(shù)值確定不變,另外,unm1—unm3的數(shù)值都會(huì)保持不變。因?yàn)閱?dòng)與暫停按鍵是單片機(jī)P3.2引腳的接口,而且P3.2引腳又是INT0的輸入端口,所以,啟動(dòng)與暫停按鍵在按下之后,便會(huì)自動(dòng)發(fā)出一次申請(qǐng),如果這時(shí)候假設(shè)INT0的中斷函數(shù)是TR0=0,那么就會(huì)導(dǎo)致T0長期處于停止工作的狀態(tài)。若操作人員再次按下啟動(dòng)與暫停按鍵,此時(shí)會(huì)發(fā)現(xiàn)依然無法啟動(dòng)計(jì)時(shí)器。這一問題主要原因是因?yàn)椋褐鞒绦虻腡R0=1,此時(shí)在執(zhí)行第一次中斷函數(shù)取反命令的時(shí)候,TR0=0,這是就會(huì)促使T0暫停計(jì)時(shí)。而在第二次執(zhí)行中斷函數(shù)取反命令的時(shí)候,TR0=1,此時(shí)T0可以滿足暫停的需求,通過這樣的方式,便可以完全實(shí)現(xiàn)啟動(dòng)與暫停按鍵的功能。
四、重新開始按鍵功能的設(shè)計(jì)
無論計(jì)時(shí)器處在什么狀態(tài),在需要重新計(jì)時(shí)的時(shí)候,只需要按下K1按鍵即可,該按鍵便是重新開始按鍵。因?yàn)镵1按鍵所連接的是單片機(jī)的P3.3引腳,所以P3.3引腳也是單片機(jī)外部中斷的輸入節(jié)點(diǎn)。所以,可假設(shè)INT1為中斷函數(shù),并且unm0—unm3都等于0。通過這樣的方式,便可有效實(shí)現(xiàn)按鍵功能。
綜上所述,該設(shè)計(jì)可以基本滿足大眾對(duì)于計(jì)時(shí)器的需求。通過對(duì)單片機(jī)定時(shí)器的設(shè)計(jì),使其在現(xiàn)實(shí)操作中具有較高的靈活性,該方法不僅能滿足對(duì)計(jì)時(shí)器的高效控制,而且還能實(shí)現(xiàn)對(duì)計(jì)時(shí)器的外部中斷可控性,從而全面提高計(jì)時(shí)的效率與準(zhǔn)確率。
參考文獻(xiàn)
[1]葛宇輝,王偉.單片機(jī)程序控制定時(shí)器設(shè)計(jì)[J].湖北農(nóng)機(jī)化,2019(09):75.
[2]蘇晨.基于單片機(jī)的數(shù)字式通電延時(shí)時(shí)間繼電器設(shè)計(jì)[J].電子技術(shù)與軟件工程,2018(18):232-233.