步驟1:設計
總之,在我滿意之前,我制作了三個不同版本的時鐘。這些版本的設計如下:
使用標準的20 MHz晶振作為PIC。采用這種設計,在運行一天后,時鐘不同步1秒。這太過分了。接下來,由于設計中沒有備用電池,因此關閉時鐘時會丟失時間。
使用DS1302時鐘模塊。這個模塊的好處是它有一個備用電池,所以當你關掉時鐘時,時間不會丟失。當我用這個模塊測試時鐘時,時鐘不同步7秒!一天后。我認為這是由錯誤的晶體或糟糕的PCB設計引起的。
使用DS3231時鐘模塊。該模塊還配有備用電池,比DS1302更精確。這個模塊的時鐘工作正常,所以我用它來進行最終設計。因此,PIC不再需要晶體。
完整的設計在三個原理圖中繪制:
時鐘控制器使用PIC
60雙色LED
步驟2:必需組件
您需要為此項目提供以下組件:
一塊面包板
PIC單片機16F1823
3移位寄存器74HC595
IC插座:1 * 14引腳,3 * 16引腳,1 * 18引腳
時鐘模塊DS3231
2個按鈕開關
電阻:2 * 33k,8 * 100歐姆,8 * 47歐姆
1個電解電容100 uF/16V
4個電容器100 nF
LED:60 2 mm雙色(紅色/綠色),1 5 mm黃色
插頭插頭3 mm
5伏適配器,例如用于為智能手機充電的適配器。確保它是真正的5伏電源。
可選:用于將外部部件連接到面包板的接頭
Kynar wire&剝線鉗
時鐘的外殼。
請參閱如何連接組件的示意圖。它需要相當多的焊接,尤其是連接60個LED。原理圖包含在zip文件中。
步驟3:構建時鐘
查看我如何構建的圖片時鐘。我開始拆除原始時鐘的內部構件,之后我在前板上為雙色LED鉆了60個2毫米的孔。然后我把前面板涂成了黑色并添加了一塊塑料來覆蓋那個時鐘的原始指針定位的孔。現在黃色LED位于該位置。
然后我安裝了所有60個LED,使用一些熱膠將它們保持在它們的位置,并將它們與Kynar線相互連接。最后但并非最不重要的是我用所有組件組裝了面包板。
在后蓋上安裝了兩個按鈕和電源插孔。忘記我粘在背面的額外板子,如圖所示。我補充說,因為在我的第一個設計中,按鈕位于那里,但我需要移動它們,因為我必須添加DS3231模塊,我只能在我第一次設計時找到這些按鈕的位置。
步驟4:軟件
如前所述,該軟件是使用JAL編程語言為PIC16F1823編寫的。 PIC運行在32 MHz的內部時鐘上。如前所述,時鐘時序由DS3231時鐘模塊完成。
該軟件執行以下主要任務:
使用I2C接口初始化DS3231模塊。模塊將產生1秒信號,該信號連接到PIC的中斷引腳。 PIC使用此1秒中斷來讀取DS3231模塊的時間。
通過移位寄存器驅動60個雙色LED。在示意圖中可以看出LED以16×8矩陣連接。這減少了連接所有LED所需的導線數量。這種矩陣設計要求PIC需要多路復用LED,以便能夠單獨點亮它們。多路復用LED是在中斷的基礎上完成的,其中刷新頻率為70Hz,因此人眼看不見。
處理按鈕。這些用于設置時間,一個用于設置小時,一個用于設置分鐘。需要按下兩個按鈕才能激活時間設置模式。選擇時間設置模式時,黃色LED將持續亮起。在不使用按鈕5秒后,時鐘返回到正常時間操作,黃色LED將開始閃爍。
-
時鐘
+關注
關注
11文章
1746瀏覽量
131682
發布評論請先 登錄
相關推薦
評論