基于單片機旋轉時(shí)鐘的設計
摘要:目前,社會(huì )、家庭普遍使用的是機械表盤(pán)時(shí)鐘,而一款打破傳統的電子旋轉時(shí)鐘如果推出就能夠以其新穎的創(chuàng )意來(lái)吸引人們,于是文章就研究并設計了一個(gè)基于單片機的電子旋轉時(shí)鐘。該設計主要依據人眼視覺(jué)暫留(Persistence of Vision)原理,使用電機帶動(dòng)一定數量的發(fā)光二極管旋轉,讓單片機控制發(fā)光二極管在相應的位置點(diǎn)亮,只要點(diǎn)亮時(shí)間間隔小于人眼視覺(jué)暫留時(shí)間,就算不是同時(shí)點(diǎn)亮的,也能完整的呈現出一個(gè)模擬時(shí)鐘。
本文引用地址:http://dyxdggzs.com/article/201610/307232.htm關(guān)鍵詞:旋轉時(shí)鐘;STC12C5A60S2芯片;無(wú)線(xiàn)供電;DS1302芯片;紅外遙控
1 前言
目前,時(shí)鐘的種類(lèi)是越來(lái)越多樣,功能是越來(lái)越豐富了,但大多時(shí)鐘還是傳統上的時(shí)鐘,即固定的表盤(pán)與指針,其形式與功能都比較單一,故難以吸引人。而一款旋轉時(shí)鐘不僅在創(chuàng )意上擺脫了傳統時(shí)鐘的設計而且也能迎合人們獵奇的心理,并且功能也可以多樣化,不僅可以顯示時(shí)間、日期,甚至連文字都能夠顯示。文章基于單片機設計了一款跟傳統機械時(shí)鐘一樣具有秒針、分針、時(shí)針和表盤(pán)刻度的旋轉時(shí)鐘,并且具有準確顯示即時(shí)時(shí)間和校準時(shí)間功能,且均可由紅外遙控器方便完成。
2 總體設計思想及方案
文章擬采用16個(gè)發(fā)光二極管的亮滅來(lái)模擬時(shí)鐘表盤(pán),其旋轉用一個(gè)直流電機轉動(dòng)來(lái)實(shí)現;時(shí)鐘的1s源信號用DS1302時(shí)鐘芯片產(chǎn)生;為了保證時(shí)鐘盤(pán)面顯示的穩定采用紅外對管來(lái)實(shí)現;為了對旋轉起來(lái)的電路板供電方便,采用無(wú)線(xiàn)供電;為了能夠方便地調節旋轉時(shí)鐘的時(shí)間,擬采用紅外遙控。故該系統的硬件模塊主要由以下幾部分組成:顯示模塊、無(wú)線(xiàn)供電模塊、單片機最小系統模塊、紅外遙控模塊、時(shí)鐘模塊、校準模塊、電機驅動(dòng)模塊。其系統原理框圖如圖2.1所示。其中無(wú)線(xiàn)供電模塊利用線(xiàn)圈耦合將能量傳輸給單片機系統,單片機系統就能正常工作了。電機帶動(dòng)單片機系統快速旋轉;然后單片機再快速讀取時(shí)鐘模塊的時(shí)間,并將這些時(shí)間信息送給顯示模塊;顯示模塊就能根據這些時(shí)間信息控制相應的發(fā)光二極管亮滅,再配合電機的旋轉就能實(shí)現時(shí)鐘的顯示了。由于整個(gè)時(shí)鐘是高速旋轉的,所以對時(shí)間、位置等參數的設置采用紅外遙控模塊來(lái)實(shí)現比較方便。時(shí)鐘模塊就是為整個(gè)系統提供準確的時(shí)間,而校準模塊是用來(lái)對時(shí)鐘顯示的起點(diǎn)進(jìn)行檢測。
3 單元模塊電路分析與設計
3.1 單片機最小系統模塊分析與設計
單片機最小系統模塊是由單片機芯片(STC12C5A60S2)、時(shí)鐘晶振電路和復位電路組成。其中復位電路能夠實(shí)現按鍵復位和上電即復位的兩個(gè)功能。時(shí)鐘晶振電路使用12MHz的晶振,給單片機提供時(shí)鐘信號。STC12C5A60S2芯片的31腳(/EA端)接高電平,使其從內部的程序存儲器讀取指令,為了防止31腳意外輸出低電平而將單片機燒壞,需要在31腳外接一個(gè)10K的電阻。
3.2 無(wú)線(xiàn)供電模塊分析與設計
無(wú)線(xiàn)供電模塊由發(fā)送模塊和接收模塊組成。其中無(wú)線(xiàn)發(fā)送模塊主要由三極管B772和9013以及初級線(xiàn)圈等組成。其中B772工作時(shí)發(fā)熱會(huì )很厲害,所以要外加散熱片。電路主要工作原理是根據法拉第電磁感應定律,先將直流電變成交流電,然后通過(guò)初級線(xiàn)圈將能量發(fā)送出去,次級線(xiàn)圈最終感應得電,在經(jīng)過(guò)相應的電路從而完成對單片機供電。其中,直流電轉交流電部分采用的是一個(gè)自激震蕩電路。
無(wú)線(xiàn)接收模塊原理主要如下:首先次級線(xiàn)圈用來(lái)接收發(fā)送模塊的初級線(xiàn)圈發(fā)送出來(lái)的能量,因為發(fā)送模塊采用的是直流變交流將能量傳送出去,所以次級線(xiàn)圈最總感應到的是交流電,而單片機的供電要求是直流電,所以必須經(jīng)過(guò)整流才能變成直流電,最后再經(jīng)7805穩壓芯片,用來(lái)輸出穩定的5V電源,用來(lái)給單片機供電。
3.3 電機驅動(dòng)模塊分析與設計
電機驅動(dòng)模塊使用的電機是RF370電機,當其工作電壓選在5V時(shí)它的轉速在2500~3100轉/分,電流也只需20mA,非常省電,并且轉速能滿(mǎn)足設計要求,旋轉時(shí)噪音也小,所以很適合用來(lái)完成設計。電機是通過(guò)一個(gè)2腳插針連接到無(wú)線(xiàn)供電發(fā)送模塊中的,此時(shí)5V電源給電機供電。由于電機工作的時(shí)候會(huì )儲存能量,當停止工作的時(shí)候就會(huì )釋放掉,為了避免電機釋放的電流可能會(huì )燒壞其它電路,故需在電機兩端并聯(lián)一個(gè)限流二極管1N4148起保護電路作用。
3.4 時(shí)鐘模塊分析與設計
時(shí)鐘模塊就由時(shí)鐘芯片DS1302與其外圍硬件電路組成。DS1302芯片在2腳和3腳之間接一個(gè)32.768KHz的晶振,DS1302芯片內部經(jīng)過(guò)分頻就能得到1Hz的標準信號,為時(shí)鐘提供精準的時(shí)間信號。8腳的Vcc1外接3V紐扣電池,當模塊斷電后,它能讓DS1302繼續工作來(lái)保存時(shí)間數據;1 腳的VCC2也是要外接電源5V,當雙電源時(shí)VCC2作為主電源給模塊供電;5腳(/RST)是復位/片選端,用來(lái)控制DS1302與外通信,接單片機 P3.5引腳;7腳(SCLK)是串行時(shí)鐘輸入端,為數據傳輸提供時(shí)鐘,該腳與單片機的P3.7腳連接;6腳(I/ O)是串行數據輸入/輸出端(雙向),為通信時(shí)數據傳輸引腳,與單片機的P3.6腳連接。
3.5 校準模塊分析與設計
由于旋轉時(shí)鐘要讓LED旋轉起來(lái)要有圓形的效果,那么就要借助傳感器或紅外對管來(lái)幫助判斷出起點(diǎn)位置,也能讓時(shí)鐘的盤(pán)面顯示固定。本設計采用的是紅外對管,其中紅外發(fā)射管是焊接在無(wú)線(xiàn)供電發(fā)送模塊中的,紅外接收管與單片機的P3.3引腳相連,當接收管收到發(fā)射管信號時(shí),電阻值會(huì )變得很小,此時(shí)P3.3處輸出低電平;當沒(méi)接收到信號時(shí),接收管的阻值就變的很大,此時(shí)P3.3處就輸出高電平,即產(chǎn)生了一個(gè)下降沿。P3.3腳是單片機外部中斷1的輸入引腳,如果將該中斷設置為下降沿觸發(fā),則來(lái)了下降沿就立馬觸發(fā)中斷,讓單片機轉去執行起點(diǎn)檢測程序,以實(shí)現時(shí)鐘能夠正常準確顯示。
3.6 顯示模塊分析與設計
顯示模塊就利用一排LED燈來(lái)實(shí)現顯示時(shí)鐘效果。在該設計中,借助16個(gè)LED燈與單片機的P1、P0引腳相連來(lái)完成,其中D1~D4是綠色LED 燈,D5~D16是紅色LED燈。D1用來(lái)顯示時(shí)鐘圓盤(pán)邊框,D2~D4用來(lái)顯示表盤(pán)刻度,如果時(shí)間是12點(diǎn)、3點(diǎn)、6點(diǎn)、9點(diǎn)時(shí)就亮3個(gè)燈,如果是其他時(shí)刻時(shí)就亮兩個(gè)燈。D5~D16是用來(lái)實(shí)現表盤(pán)指針的顯示,讓顯示效果跟實(shí)際的時(shí)鐘指針一樣。由于時(shí)鐘中,秒針最長(cháng),所以顯示秒針時(shí)D5~D16要全部點(diǎn)亮;分針的長(cháng)度居中,所以顯示時(shí)就D8~D16要全部點(diǎn)亮;時(shí)針的長(cháng)度最短,所以顯示時(shí)就只點(diǎn)亮D11~D16。
3.7 紅外遙控模塊分析與設計
紅外遙控模塊由遙控器和接收模塊組成,使用的遙控器采用的是NEC協(xié)議,許多家電的紅外遙控就是采用這種協(xié)議。接收模塊用到了紅外一體化接收頭 VS1838B,其中它的3引腳接電源5V,2腳接地,1腳把接收頭解調后的信號傳送到單片機的外部中斷0引腳(即P3.2),利用中斷未讓單片機實(shí)現紅外解碼。
4 軟件程序分析與設計
程序設計的主要思想是:先用一個(gè)定時(shí)器產(chǎn)生固定的時(shí)間中斷,中斷執行的主要任務(wù)是讓一個(gè)變量(就取名為Count)自加1。這個(gè)變量Count很重要的,因為就是根據它的值來(lái)決定顯示的。比如電機每旋轉一圈,Count就從0加到180,一個(gè)表盤(pán)有60個(gè)刻度(即因秒和分都是60),那Count每加 15,單片機就要驅動(dòng)LED顯示相應的時(shí)刻點(diǎn),一直加到180,那12個(gè)時(shí)刻度點(diǎn)就顯示出來(lái)了。所以Count的最大值最好與60成倍數關(guān)系。
解決時(shí)鐘指針的顯示就只要讀取DS1302的時(shí)間然后分別判斷Count是否到達秒、分、時(shí)相應的Count值,如果到達了就分別顯示出秒針、分針、時(shí)針。比如讀取DS1302的秒值等于20,由于旋轉一圈Count最大180,而一圈共60秒,因180/60=3,那么當Count從0加到180的過(guò)程中,當加到20*3=60時(shí),此時(shí)單片機就要將秒針對應的LED點(diǎn)亮。分針顯示原理與此類(lèi)似,因為一個(gè)表盤(pán)上分也是有60個(gè)刻度。而時(shí)針的算法就有區別了,因為一個(gè)表盤(pán)上,時(shí)才有12個(gè)刻度。時(shí)的算法是這樣的,(Hour*15)+(Minu/4)。因為表盤(pán)一圈,Count加到180,而表盤(pán)上時(shí)只有 12個(gè)點(diǎn),所以180/12=15,再加上分的移動(dòng)會(huì )影響時(shí)針的走動(dòng),之間的換算關(guān)系是:(Minu*3)/12,Minu*3是此時(shí)分對應的Count 值,而分走360度時(shí)只走30度,所以360/30=12。綜合顯示時(shí)所對應的Count值就是(Hour*15)+(Minu/4)。這樣做的要求就是定時(shí)器的中斷時(shí)間要密切配合電機旋轉周期,并且電機的轉速要穩定。
5 系統功能測試分析
實(shí)物焊接電路如圖5.1和5.2所示。圖5.1是電路板正面,這上面能看到的模塊分別有單片機最小系統模塊、顯示模塊、時(shí)鐘模塊、紅外遙控接收模塊和無(wú)線(xiàn)供電接收模塊。圖5.2是電路板反面,這上面有紅外對管接收模塊,無(wú)線(xiàn)供電接收線(xiàn)圈。2個(gè)螺絲是用來(lái)配重的。

功能測試效果如圖5.3、5.4、5.5和5.6所示。其中圖5.3是系統上電后顯示的即時(shí)時(shí)間10:43:12;圖5.4表示時(shí)鐘正常走動(dòng)9秒后的時(shí)間 10:43:21;圖5.5是調整時(shí)針效果圖,由剛才的10點(diǎn)調整到了1點(diǎn);圖5.6是調整分針效果圖,由剛才的39分調整到50分。由測試結果可以看出,電子旋轉時(shí)鐘運行正常,時(shí)間顯示準確、表盤(pán)顯示穩定、調整時(shí)間功能亦能實(shí)現,所以設計功能達到了預期要求。
6 結束語(yǔ)
測試結果表明,文中設計的旋轉時(shí)鐘相比于市場(chǎng)上其他的方案,具有以下優(yōu)點(diǎn):①表盤(pán)(包括刻度和指針)顯示穩定,不會(huì )出現顫動(dòng)現象;②時(shí)間走動(dòng)能夠一直準確正常,不會(huì )出現運行一段時(shí)間后跑時(shí)錯誤,指針亂指等現象;③顯示的亮度一致,不會(huì )出現顯示亮度不勻稱(chēng)現象。當然,該設計也存在功能需要進(jìn)一步提升的地方,比如可以加入顯示日期和文字等,使表盤(pán)顯示的內容增多,并且通過(guò)按鍵來(lái)切換顯示模式等。
評論