李小蕊 崔紫騰 陳清清
摘 要:單片機具有集成度高,體積小可靠性好和性價比高得優點,該文主要闡述了設計一個利用單片機作為總控制中樞的秒表系統。利用單片機可以定時和記數的原理結合時鐘電路、數碼管顯示電路、復位電路和按鍵電路將軟、硬件同時結合起來,使得系統能夠準確無誤地進行計時,同時具有開始,暫停,清零和復位的功能。
關鍵詞:單片機;多功能秒表;C語言
中圖分類號:TP368 文獻標識碼:A 文章編號:1009-3044(2016)13-0257-02
Abstract: MCU with integration of small size, high reliability and high ratio of performance to price advantages, this paper mainly expounds the design using a single chip microcomputer as the total central control of the stopwatch system. The use of single-chip can timing and counting principle in conjunction with the clock circuit, digital tube display circuit, reset circuit and the key circuit software and hardware combined together, which makes the system can accurately correct timing, also has a start, pause, clear and reset function.
Key words: single chip microcomputer; multifunction stopwatch; C language
1 系統硬件總體結構
本系統采用AT89C52單片機為核心器件,通過硬件電路的制作和軟件程序的編寫,利用單片機的控制作用通過LED來直接顯示數字[1]。其中硬件電路如電源電路,晶振電路,復位電路[2],顯示電路,以及一些按鍵電路等,軟件系統采用C語言編寫,包括數碼管點亮顯示程序,加減計數程序,延時程序,按鍵消抖程序等[3],并在Keil中調試運行,硬件系統利用proteus仿真,簡單而且易于觀察,在仿真中就可以觀察到實際的工作。總體硬件框圖如圖1所示。[4]
2 模塊電路分析
多功能秒表能正常工作,是在各個電路模塊組合下協調完成的,其中包括了單片機工作電路、數碼管顯示電路,按鍵電路和時鐘電路,下面做詳細介紹。
2.1 單片機簡單介紹
電源VCC、GND,時鐘引腳XTAL1、XTAL2 ,I/O口引腳P0、P1、P2、P3四組八位I/0,編程控制引腳RST。采用MSC-51系列的單片機是因為其具有兩大優勢[5]:1)片內程序存儲器采用快閃存儲器,使程序寫入方便,還可以任意的擦寫;2)提供了更小的芯片,使整個硬件電路體積更小,物美價廉,經濟適用。
2.2 晶體振蕩電路
AT89C52芯片內部有一個反相放大器,用于構成振蕩器。引腳 XTAL1為反向放大器的輸入,引腳XTAL2為反向放大器輸出,兩端跨接石英晶體及兩個電容就可構成穩定的自激振蕩器。電容器C1,C2起穩定振蕩頻率,并對振蕩頻率有微調作用。這部分給單片機提供晶振周期。
2.3 復位電路
采用上加電壓加按鍵共同組成復位電路[2],上電之后,此時電容是充電狀態,使RST保持高電平。當單片機運行的時候,按下按鍵電路上的復位鍵也能使RST保持在高電平上,由此實現按鍵復位的操作,用來完成單片機的復位初始化。
2.4 數碼管顯示電路
多功能秒表顯示是由AT89C52提供控制信號,通過數碼管的段選和位選來控制數碼管的動態顯示,其中P0口提供段選,給數碼管送入要顯示的數字,P2口控制位選,通過給P2口送入數字來控制數碼管的亮滅,仿真電路圖如圖3所示[6]。
我們采用的是數碼管顯示電路。LED數碼管是由多個發光二極管封裝在一起組成“8”字型的元器件[7],數碼管顯示分為靜態和動態顯示兩種,靜態顯示程序設計比較簡單,但是會用到較多的端口;動態顯示用到的端口會相對較少,節省了單片機的I/O口使用。在設計中,我們采用數碼管動態顯示,用P0口作驅動。因為P0口的內部沒有上拉電阻[8],不管它的驅動能力有多大,也相當于它是沒有電源的,所以在使用時必需要為其外接上拉電阻才能輸出高電平。
2.5 按鍵電路
本設計使用的是P1口作為輸入電路。仿真電路圖如圖5所示。
在按鍵電路中,我們可以在I/O口上直接接按鍵,分別是開始、暫停和清零。P1口作為輸入端時要先向該口進行寫1操作[9](P1口內有上拉電阻,這個端口沒有高阻態,不能鎖存)單片機內部才會正確讀出外部信號。
3 軟件設計
系統軟件由單片機最小系統,按鍵電路和顯示電路組成,當系統開始工作時首先由復位電路給整個程序初始化,然后單片機等待按鍵按下,由所按得鍵執行對應的函數在將函數運行結果傳給顯示電路并將其顯示[10]。程序圖如圖6所示。
4 結束語
本次設計經過仿真成功之后又搭建了實際電路,跟預期結果一致,計時最大值為99.99秒,精確到0.01秒[5],整體電路計時精確度高,抗干擾能力強,實用性強,性價比高具有一定的市場。
參考文獻:
[1] 羅佳. 基于單片機的數字電子鐘及其實現[J]. 常州信息職業技術學院學報,2010,9(2):17-19,22.
[2] 高文慶,呂英英. 基于AT89C51單片機的數字秒表設計[J]. 電腦知識與技術,2012(22):5344-5346.
[3] 樓俊君. 基于STC89C51的簡易秒表的設計[J]. 福建電腦,2015(9):116,145.
[4] 雷躍榮,詹旭,杜玲艷,等. 基于單片機的智能秒表設計[J].四川理工學院學報:自然科學版,2010,23(5):602-604.
[5] 郭海麗. 基于單片機的數字秒表設計[J]. 電子元器件應用,2012,14(1):27-29.
[6] 吳瑋瑋. 基于Multisim10的智能秒表設計[J]. 電子設計工程,2015,23(13):115-116,120.
[7] 曹瓊. 秒表系統[J].山西青年,2013(4):79-80.
[8] 韓彩霞. 51單片機中并行I/O口的使用[J].電腦與電信,2013(4):71-73.
[9] 湯曉君,劉君華,梁鴻生. MCS系列單片機P1口鍵盤顯示功能的實現[J]. 儀表技術與傳感器,2002(11):27-29.
[10] 朱奇,高言. 單片機多功能秒表[J]. 微型電腦應用,1994(2):24-28.