溫州科技職業學院信息技術系 朱颯颯
時鐘是在人們日常生活中用以掌握一天時間的一種器具,關乎人們一天生產勞動的作息調整。每家每戶、每所學校、每個公司等等都能找到時鐘的蹤跡,時鐘無處不在,人們無時無刻不在了解時間。在這快速發展的年代,時間對人們來說是越來越寶貴,在快節奏的生活中,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此時鐘是人們必不可少的。
傳統的時鐘絕大多數都是發條驅動式、電機傳動式或電鐘式等機械時鐘,部分電子器械中也有使用時間繼電器的。相對于傳統的時鐘,電子時鐘的體積小、重量輕、造價低、精度高、壽命長、而且安全可靠、調整方便、適于頻繁使用。所以電子時鐘的發展必定大有前途。同時隨著現代電子技術的發展,電子時鐘也在不斷的進步,朝著更多用途、更高精度、更小體積發展著。
本設計實現一款可正常顯示時鐘、帶有定時鬧鈴的多功能電子時鐘。本課題通過AT89S52單片機來設計電子時鐘,采用C語言進行編程,可以實現以下一些功能:小時,分,秒和年,月,日的顯示、定時報警功能。本次設計的電子時鐘系統由時鐘電路,LCD顯示電路,定時報警電路,按鍵調整電路四部分組成。單片機通過軟件編程,在LCD12864液晶屏上實現小時,分,秒和年,月,日的顯示;利用時鐘芯片DS1302來實現計時,定時功能;通過三個按鍵聯合工作實現時間和鬧鐘的設置工作;到達設置的鬧鐘時間時,由蜂鳴器發聲,起報警作用。系統帶有液晶顯示器,配合按鍵向用戶提供友好的界面,操作簡單,具有一定的實用性和方便性;同時還具有體積小、功耗低等特點。與傳統機械表相比,它具有走時精確,顯示直觀等特點。

圖1 單片機系統框圖

圖2 電源電路模塊

圖3 單片機最小系統

圖4 DS1320芯片驅動電路

圖5 DS18B20芯片驅動電路
傳統的方案常采用數字控制電路,電路較簡單,成本較低,可實現電子時鐘的基本功能,但不能在原有基礎上再加個溫度顯示電路,而且會造成電路的不穩定,系統性能差,電路容易損壞。本文采用單片機作為主控制器,硬件電路簡單,電路工作穩定,系統性能好,通過編寫程序,經單片機智能控制,更好地實現了LCD電子時鐘的功能。而且電源電路的設計比較完善。微控制器選用ATMAL公司生產的AT89S52,該芯片貨源充足,并且價格也比較便宜。其原理框圖如圖1所示。
采用單片機動態掃描將時鐘數據和溫度數據通過數碼管進行實時顯示,但數碼管的顯示功能具有局限性,不能達到預期效果,此外,數碼管驅動電路繁瑣,不易控制。
而作為一種輸出方式,液晶顯示最大的特點就是能夠實現友好的人機界面,它已經廣泛應用于現代工業控制和智能化儀器儀表等領域,它已經成為單片機應用開發領域典型模塊之一,能夠方便的顯示文字和數字。
本文使用LCD12864顯示器,12864是8位控制方式,內置8192個16*16點陣字符,128個16*8個ASCII字符,可顯示8*4行16*16點漢字,4或8位并行控制,使其實時顯示時鐘與溫度數據。
利用52單片機的外部晶振,通過軟件的方式,編寫能夠準確計時的程序。但由于要實現年、月、日、時、分、秒的計時,因此采用此種方式會加大程序的調試量。
本文考慮使用外部時鐘芯片,DS1302是一款具有涓細電流充電能力的低功耗實時時鐘芯片,可以對年、月、日、周、時、分、秒進行計時,且具有閏年補償等多種功能。每月的天數和閏年的天數可自動調整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線:(1)RES(復位);(2)I/O(數據線);(3)SCLK(串行時鐘)。單片機通過三個口線控制DS1302讀寫數據,從而實現準確計時。
3.1.1 電源電路模塊的設計
電源電路模塊如圖2所示,電源電路模塊通過變壓器降壓得到一個較小的交流電壓,此交流電壓經4007組成的橋式整流以及7805穩壓濾波得到系統所需要的+5V電源。
3.1.2 單片機最小系統模塊
單片機最小系統如圖3所示。
3.1.3 時鐘頻率電路的設計
本系統采用的定時元器件為石英晶體和電容組成的并聯諧振回路。晶振頻率選擇12MHz,C1、C2的電容值取30pF,電容的大小可起頻率微調的作用。
單片機在工作時,由內部振蕩器產生或由外直接輸入的送至內部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數,常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。
3.1.4 復位電路的設計
單片機具有多種復位電路,本系統采用電平式開關復位與上電復位方式,具體電路如圖所示。當上電時,C1相當于短路,使單片機復位,在正常工作時,按下開關使單片機復位,當系統時鐘頻率為12MHz時,C=22μF,R=10kΩ。其缺點是干擾易于串入復位端,在大多數條件下,不會造成單片機錯誤復位,但會引起內部某些寄存器錯誤復位,這時可以在RESET端加一個去耦電容。
值得注意的是,在設計當中使用到了硬件復位和軟件復位兩種功能,由上面的硬件復位后的各狀態可知寄存器及存儲器的值都恢復到了單片機程序設定的初始值。
3.1.5 時鐘DS1320及溫度傳感器DS18B20電路設計
時鐘芯片DS1320電路采用了外加電源可以在系統斷電時仍保持時鐘芯片的正常工作。DS1320、DS18B20芯片操作都需一個簡單的驅動程序。圖5是DS18B20芯片驅動電路。
系統是由AT89S52單片機控制,系統分為主函數部分和各模塊子函數部分2個部分。系統主函數部分主要是調用各個模塊的子函數。本系統的時間是通過軟件進行設置,使用定時器使電子鐘運行,并將值送入主控芯片,通過液晶顯示器LCD12864來顯示,時間、日期的修改通過按鍵來控制的。所以要對定時器、液晶顯示器進行初始化。而其他模塊的初始化在各模塊函數中初始化。
各模塊的子函數包括LCD12864顯示模塊、DS18B20測溫模塊、時鐘模塊、按鍵掃描模塊,鬧鐘設置模塊。
主程序通過調用其他函數來實現系統的總體功能,其工作流程如下:
(1)系統啟動后,進行定時器和LCD顯示初始化。
(2)LCD12864顯示日期、時間、溫度。
(3)可以通過按鍵進行顯示模式設置,調整日期、時間。
(4)采用語音AK040電路模塊。
本文設計的電子鐘結構簡單,性能穩定,有很好的實用價值,能完成時間的自動調整和掉電保護,年、月、日以及星期、時、分、秒全部信息用液晶顯示。通過按鍵的組合可以實現時間日期的調整以及時間溫度的語音播報。
[1]劉守義.單片機應用技術[M].西安:西安電子科技大學出版社,2007.
[2]樓然苗,李飛光.單片機課程設計指導[M].北京:北京航空航天大學出版社,2007.
[3]余修武.單片機原理及應用[M].成都:電子科技大學出版社,2011.
[4]馬忠梅,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003.
[5]張毅剛.單片機應用設計[M].哈爾濱工業大學出版社,2008.
[6]譚浩強.C語言設計(第二版)[M].清華大學出版社,1999.
[7]DS1302涓流充電時鐘保持芯片的原理與應用[OL].海納電子資訊網:www.fpga-arm.com.
[8]深圳亞斌顯示電子有限公司:12864ZA使用手冊[S].