譚艷春 朱又敏



摘? 要:51系列單片機以系統架構開放、工作性能靈活可靠、價格低廉的優勢,在工業自動化、交通控制、智能儀表等眾多領域得到了廣泛的應用。為了進一步研究并拓展其應用場景,本文利用STC89C52單片機、KeilC51和Proteus軟件對多功能體育用計時器進行了完整的軟硬件開發與設計。Proteus在線仿真驗證了系統設計的正確性及合理性,具有較強的實際指導意義和應用價值。
關鍵詞:KeilC51;Proteus;STC89C52;計時器
中圖分類號:TP399? ? ?文獻標識碼:A
Abstract:MCS-51 has been widely used in industrial automation,traffic control,intelligent instruments and many other fields because of its open system structure,flexible and reliable performance and low price.In order to further study the SCM and expand its application,the paper designs and develops the software and hardware of multi-functional sports timer through MCU STC89C52,KeilC51 and Proteus.The online simulation of Proteus verifies the validity and rationality of the system design,proving its considerable guiding significance and practical value.
Keywords:KeilC51;Proteus;STC89C52;timer
1? ?引言(Introduction)
STC89C52單片機使用經典的MCS-51內核,但又做了很多改進使該芯片具有傳統51單片機不具備的功能,它以低功耗、高性能可為眾多嵌入式控制應用系統提供靈活、智能、有效的解決方案[1-3]。
Proteus和Keil是目前比較流行的單片機仿真軟件和集成開發軟件。其中,Proteus不僅具有其他EDA工具軟件的仿真功能,還能仿真單片機及外圍器件,是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺;而Keil支持51單片機的所有兼容機。所以將Proteus和Keil應用于單片機的前期開發設計與仿真,可以充分檢驗系統設計的合理性及可靠性,避免直接搭建硬件電路帶來的一些不可逆的嚴重后果,如因設計問題導致芯片燒毀等,因此用Proteus和Keil進行系統的前期開發仿真對硬件電路的搭建具有實際指導意義和作用[4-6]。
2? ?硬件電路設計(Design of hardware circuit)
該系統的硬件電路主要包括STC89C52最小電路模塊、鎖存電路模塊、按鍵模塊和顯示模塊四部分,電路方框圖如圖1所示。
各電路模塊的具體說明如下:
2.1? ?STC89C52最小電路模塊
該模塊采用內部時鐘方式,晶振頻率選為12MHz,由此可知一個機器周期為1us。設計時器的最小計時單位為tmin ms,因此定時器T0的初始值計算公式為:TH0=(65535-tmin)/256;TL0=(65535-tmin)%256。
2.2? ?鎖存電路模塊
鎖存電路模塊采用2塊74HC573,它是一種包含八路3態輸出的非反轉透明鎖存器。
2.3? ?按鍵模塊
用K1—K4四個按鍵分別實現計時器的啟動/停止、存儲、回顯和清零的功能,具體電路如圖3所示。
2.4? ?顯示模塊
計時器從左到右依次顯示為:分鐘(2位,最多計時59分鐘)、空1位、秒(2位,最多計時59秒)、空1位、10毫秒(2位,最多計時100個10毫秒)。
3 KeilC51環境下的編程(Programming in the KeilC51)
3.1? ?軟件編程要點及難點分析
(1)啟動/停止按鍵、計時按鍵、回顯按鍵和清零按鍵信息分別通過STC89C52單片機的P3.2—P3.5的四個引腳輸入。
(2)通過P0口將位選信息,以及需要顯示的數字信息同時送給兩個74HC573鎖存器。
(3)1個74HC573鎖存器接數碼管的A-G,DP引腳,另1個74HC573鎖存器接8個數碼管的公共端,并通過STC89C52的P1.4和P1.5引腳控制兩個鎖存器的使能。
(4)該計時器最小計時單位tmin的選擇:雖然人的手眼協調與反應時間和人當時的狀態有很大關系,如興奮的時候比沮喪的時候反應快,但大量的統計數據表明,正常人的反應時間一般不會低于100ms,因此本文設計的體育用計時器的最小計時單位選為10ms完全可以滿足實際需求和應用,而沒有必要再過分地細化。
(5)該系統的設計難點在于如何實現計時數據在正確位置的顯示。因為所有的時間(本設計包括分、秒、100ms)都是通過并行I/O口送出,因此需要通過軟件編程控制數據應在其對應的數碼管上顯示,即分顯示在左數1位和2位、秒顯示在左數4位和5位、100ms顯示在左數7位和8位。
3.2? ?程序流程圖
該系統的程序流程圖如圖2所示。
3.3? ?系統源代碼
該多功能體育用計時器系統的代碼比較多,因篇幅所限,故本文只介紹以下幾個主要源代碼模塊[7,8]。
3.4? ?系統的應用拓展
本文設計的多功能體育用計時器的最多存儲計時個數、回顯個數及顯示模式可根據實際情況進行調整。
(1)計時器最多存儲計時個數及回顯個數的調整。
如果要改變該計時器的最大存儲計時個數及回顯個數,實現方法特別簡單,可通過重新定義變量temp_buf進行改變。例如將該數組的定義由temp_buf[10][3]變為temp_buf[20][3],則意味著該計時器的最大存儲計時個數及回顯個數由10個變為20個。
(2)計時器顯示模式的調整。
計時器的顯示模式應和實際需求相匹配,因此需要根據不同的應用場合進行適當的調整。例如有些應用場景不需要很高的精度(最小計時單位為秒即可),但要求計時較長(長達數個小時),此時可以選取這樣的顯示模式:小時(2位,最多計時99小時)、空1位、分(2位,最多計時59分)、空1位、秒(2位,最多計時59秒)。以上功能可以通過調整源代碼中的void t0_server(void)interrupt 1和void display(u8 which_bit,u8 which_number)這兩個函數來實現。當然如果8位顯示還不能夠滿足實際需求,則可以通過增加硬件來實現。
4? 程序加載及仿真演示(Program loading and simulation demonstration)
將調試過沒有語法錯誤的代碼文件*.HEX加載到Proteus原理仿真圖的STC89C52單片機中,點擊運行后,依次按下K1~K4,可以觀察到與預期一致的計時效果,即可以實現啟動、停止、記錄、回顯和清零的功能。具體操作過程是先按下K1,啟動系統,然后間隔隨機的時間按下K2共10次,即記錄存儲了10個數據,再按下K3(10次),依次顯示第10個、第9個……第1個的時間,最后按下K4,實現清零功能。而且經過多次反復實驗,該系統都可以正常運行,說明系統有很好的穩定性和可靠性。由于文本的限制,無法演示系統運行的動態過程,這里只截取了仿真過程中的一張圖。圖3展示的是存儲鍵K2第1次按下時,記錄的時間(0'6.26''),當再按下回顯鍵K3時,以倒序依次顯示存儲的時間數據,倒數第二個數據顯示的和圖3完全一致,即0'6.26''。這里要注意一個問題:若存儲鍵K2鍵連續按下的次數超過系統設置的上限值,則以后的存儲操作不會被系統執行,例如本文設置的計時數組為temp_buf[10][3],即最多可以存儲10組時間。所以在使用系統之前,要根據實際需求進行合理設置,避免存儲過程中因設置不足導致數據的丟失。
5? ?結論(Conclusion)
本文所設計的多功能體育用計時器通過Proteus軟件在線仿真驗證了該系統設計的正確性,以及運行的可靠性和穩定性。此外,該系統還可以根據不同應用場合的實際需求對計時器的最多存儲個數、回顯個數及顯示格式通過簡單修改軟件中的一些函數和變量參數來實現,因此該系統具有很好的拓展性,以及較強的實際指導意義和應用價值。
參考文獻(References)
[1] 于博,楊曉慶.基于KeilC51與Proteus仿真聯合的單片機應用研究[J].軟件工程師,2015,18(9):51-52.
[2] 郭文會.基于單片機與RS485通信芯片的智能家居控制系統設計[J].自動化與儀器儀表,2016(09):244-246.
[3] 譚玉琪,王超,湯吉昀.基于Proteus的單片機多機通信的設計與仿真[J].電子設計工程,2019(3):164-168.
[4] 譚艷春,朱又敏,劉目磊.基于KeilC51和Proteus花樣流水燈系統的設計[J].軟件工程,2018,21(11):14-16.
[5] 鄧力.基于Keil時序邏輯和Proteus的電路仿真[J].實驗室研究與探索,2017,36(01):80-83.
[6] 朱敏玲,張偉,侯凌燕.基于Proteus的微機原理與接口技術教學改革[J].實驗室研究與探索,2016,35(01):155-160.
[7] 林立等.單片機原理及應用——基于Proteus和Keil C[M].北京:電子工業出版社,2018.
[8] 杜樹春.基于Proteus和KeilC51的單片機設計與仿真[M].北京:電子工業出版社,2012.
作者簡介:
譚艷春(1980-),女,碩士,講師.研究領域:系統設計,信號處理.
朱又敏(1966-),男,碩士,工程師.研究領域:射頻通信.本文通訊作者.