溫州科技職業(yè)學(xué)院信息技術(shù)系 朱颯颯
時鐘是在人們?nèi)粘I钪杏靡哉莆找惶鞎r間的一種器具,關(guān)乎人們一天生產(chǎn)勞動的作息調(diào)整。每家每戶、每所學(xué)校、每個公司等等都能找到時鐘的蹤跡,時鐘無處不在,人們無時無刻不在了解時間。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活中,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此時鐘是人們必不可少的。
傳統(tǒng)的時鐘絕大多數(shù)都是發(fā)條驅(qū)動式、電機(jī)傳動式或電鐘式等機(jī)械時鐘,部分電子器械中也有使用時間繼電器的。相對于傳統(tǒng)的時鐘,電子時鐘的體積小、重量輕、造價低、精度高、壽命長、而且安全可靠、調(diào)整方便、適于頻繁使用。所以電子時鐘的發(fā)展必定大有前途。同時隨著現(xiàn)代電子技術(shù)的發(fā)展,電子時鐘也在不斷的進(jìn)步,朝著更多用途、更高精度、更小體積發(fā)展著。
本設(shè)計(jì)實(shí)現(xiàn)一款可正常顯示時鐘、帶有定時鬧鈴的多功能電子時鐘。本課題通過AT89S52單片機(jī)來設(shè)計(jì)電子時鐘,采用C語言進(jìn)行編程,可以實(shí)現(xiàn)以下一些功能:小時,分,秒和年,月,日的顯示、定時報警功能。本次設(shè)計(jì)的電子時鐘系統(tǒng)由時鐘電路,LCD顯示電路,定時報警電路,按鍵調(diào)整電路四部分組成。單片機(jī)通過軟件編程,在LCD12864液晶屏上實(shí)現(xiàn)小時,分,秒和年,月,日的顯示;利用時鐘芯片DS1302來實(shí)現(xiàn)計(jì)時,定時功能;通過三個按鍵聯(lián)合工作實(shí)現(xiàn)時間和鬧鐘的設(shè)置工作;到達(dá)設(shè)置的鬧鐘時間時,由蜂鳴器發(fā)聲,起報警作用。系統(tǒng)帶有液晶顯示器,配合按鍵向用戶提供友好的界面,操作簡單,具有一定的實(shí)用性和方便性;同時還具有體積小、功耗低等特點(diǎn)。與傳統(tǒng)機(jī)械表相比,它具有走時精確,顯示直觀等特點(diǎn)。
圖1 單片機(jī)系統(tǒng)框圖
圖2 電源電路模塊
圖3 單片機(jī)最小系統(tǒng)
圖4 DS1320芯片驅(qū)動電路
圖5 DS18B20芯片驅(qū)動電路
傳統(tǒng)的方案常采用數(shù)字控制電路,電路較簡單,成本較低,可實(shí)現(xiàn)電子時鐘的基本功能,但不能在原有基礎(chǔ)上再加個溫度顯示電路,而且會造成電路的不穩(wěn)定,系統(tǒng)性能差,電路容易損壞。本文采用單片機(jī)作為主控制器,硬件電路簡單,電路工作穩(wěn)定,系統(tǒng)性能好,通過編寫程序,經(jīng)單片機(jī)智能控制,更好地實(shí)現(xiàn)了LCD電子時鐘的功能。而且電源電路的設(shè)計(jì)比較完善。微控制器選用ATMAL公司生產(chǎn)的AT89S52,該芯片貨源充足,并且價格也比較便宜。其原理框圖如圖1所示。
采用單片機(jī)動態(tài)掃描將時鐘數(shù)據(jù)和溫度數(shù)據(jù)通過數(shù)碼管進(jìn)行實(shí)時顯示,但數(shù)碼管的顯示功能具有局限性,不能達(dá)到預(yù)期效果,此外,數(shù)碼管驅(qū)動電路繁瑣,不易控制。
而作為一種輸出方式,液晶顯示最大的特點(diǎn)就是能夠?qū)崿F(xiàn)友好的人機(jī)界面,它已經(jīng)廣泛應(yīng)用于現(xiàn)代工業(yè)控制和智能化儀器儀表等領(lǐng)域,它已經(jīng)成為單片機(jī)應(yīng)用開發(fā)領(lǐng)域典型模塊之一,能夠方便的顯示文字和數(shù)字。
本文使用LCD12864顯示器,12864是8位控制方式,內(nèi)置8192個16*16點(diǎn)陣字符,128個16*8個ASCII字符,可顯示8*4行16*16點(diǎn)漢字,4或8位并行控制,使其實(shí)時顯示時鐘與溫度數(shù)據(jù)。
利用52單片機(jī)的外部晶振,通過軟件的方式,編寫能夠準(zhǔn)確計(jì)時的程序。但由于要實(shí)現(xiàn)年、月、日、時、分、秒的計(jì)時,因此采用此種方式會加大程序的調(diào)試量。
本文考慮使用外部時鐘芯片,DS1302是一款具有涓細(xì)電流充電能力的低功耗實(shí)時時鐘芯片,可以對年、月、日、周、時、分、秒進(jìn)行計(jì)時,且具有閏年補(bǔ)償?shù)榷喾N功能。每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需用到三個口線:(1)RES(復(fù)位);(2)I/O(數(shù)據(jù)線);(3)SCLK(串行時鐘)。單片機(jī)通過三個口線控制DS1302讀寫數(shù)據(jù),從而實(shí)現(xiàn)準(zhǔn)確計(jì)時。
3.1.1 電源電路模塊的設(shè)計(jì)
電源電路模塊如圖2所示,電源電路模塊通過變壓器降壓得到一個較小的交流電壓,此交流電壓經(jīng)4007組成的橋式整流以及7805穩(wěn)壓濾波得到系統(tǒng)所需要的+5V電源。
3.1.2 單片機(jī)最小系統(tǒng)模塊
單片機(jī)最小系統(tǒng)如圖3所示。
3.1.3 時鐘頻率電路的設(shè)計(jì)
本系統(tǒng)采用的定時元器件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率選擇12MHz,C1、C2的電容值取30pF,電容的大小可起頻率微調(diào)的作用。
單片機(jī)在工作時,由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12μs。
3.1.4 復(fù)位電路的設(shè)計(jì)
單片機(jī)具有多種復(fù)位電路,本系統(tǒng)采用電平式開關(guān)復(fù)位與上電復(fù)位方式,具體電路如圖所示。當(dāng)上電時,C1相當(dāng)于短路,使單片機(jī)復(fù)位,在正常工作時,按下開關(guān)使單片機(jī)復(fù)位,當(dāng)系統(tǒng)時鐘頻率為12MHz時,C=22μF,R=10kΩ。其缺點(diǎn)是干擾易于串入復(fù)位端,在大多數(shù)條件下,不會造成單片機(jī)錯誤復(fù)位,但會引起內(nèi)部某些寄存器錯誤復(fù)位,這時可以在RESET端加一個去耦電容。
值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了單片機(jī)程序設(shè)定的初始值。
3.1.5 時鐘DS1320及溫度傳感器DS18B20電路設(shè)計(jì)
時鐘芯片DS1320電路采用了外加電源可以在系統(tǒng)斷電時仍保持時鐘芯片的正常工作。DS1320、DS18B20芯片操作都需一個簡單的驅(qū)動程序。圖5是DS18B20芯片驅(qū)動電路。
系統(tǒng)是由AT89S52單片機(jī)控制,系統(tǒng)分為主函數(shù)部分和各模塊子函數(shù)部分2個部分。系統(tǒng)主函數(shù)部分主要是調(diào)用各個模塊的子函數(shù)。本系統(tǒng)的時間是通過軟件進(jìn)行設(shè)置,使用定時器使電子鐘運(yùn)行,并將值送入主控芯片,通過液晶顯示器LCD12864來顯示,時間、日期的修改通過按鍵來控制的。所以要對定時器、液晶顯示器進(jìn)行初始化。而其他模塊的初始化在各模塊函數(shù)中初始化。
各模塊的子函數(shù)包括LCD12864顯示模塊、DS18B20測溫模塊、時鐘模塊、按鍵掃描模塊,鬧鐘設(shè)置模塊。
主程序通過調(diào)用其他函數(shù)來實(shí)現(xiàn)系統(tǒng)的總體功能,其工作流程如下:
(1)系統(tǒng)啟動后,進(jìn)行定時器和LCD顯示初始化。
(2)LCD12864顯示日期、時間、溫度。
(3)可以通過按鍵進(jìn)行顯示模式設(shè)置,調(diào)整日期、時間。
(4)采用語音AK040電路模塊。
本文設(shè)計(jì)的電子鐘結(jié)構(gòu)簡單,性能穩(wěn)定,有很好的實(shí)用價值,能完成時間的自動調(diào)整和掉電保護(hù),年、月、日以及星期、時、分、秒全部信息用液晶顯示。通過按鍵的組合可以實(shí)現(xiàn)時間日期的調(diào)整以及時間溫度的語音播報。
[1]劉守義.單片機(jī)應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2007.
[2]樓然苗,李飛光.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.
[3]余修武.單片機(jī)原理及應(yīng)用[M].成都:電子科技大學(xué)出版社,2011.
[4]馬忠梅,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2003.
[5]張毅剛.單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2008.
[6]譚浩強(qiáng).C語言設(shè)計(jì)(第二版)[M].清華大學(xué)出版社,1999.
[7]DS1302涓流充電時鐘保持芯片的原理與應(yīng)用[OL].海納電子資訊網(wǎng):www.fpga-arm.com.
[8]深圳亞斌顯示電子有限公司:12864ZA使用手冊[S].