樓主是一名業(yè)余的單片機(jī)愛好者,從開始玩單片機(jī)到現(xiàn)在,做過不少的時(shí)鐘。從最初的純軟件計(jì)時(shí),到DS1302時(shí)鐘芯片再到后來(lái)的GPS授時(shí)都做過。純軟件計(jì)時(shí)一斷電就全歸零了,完全沒有實(shí)用價(jià)值;DS1302的好一些,有斷電走時(shí),但也存在走時(shí)不準(zhǔn)的問題;GPS授時(shí)倒是準(zhǔn)了,可是在室內(nèi)使用信號(hào)不好,還要拖一根線到窗臺(tái)或室外,顯得不夠簡(jiǎn)潔。于是把目光轉(zhuǎn)向了美信的高精度時(shí)鐘芯片DS3231(±2ppm ,年誤差1分鐘左右)。最近正好有空,就用它做了個(gè)實(shí)用的時(shí)鐘。從器件手冊(cè)上摘抄的DS3231介紹:DS3231 是低成本、高精度 I2C實(shí)時(shí)時(shí)鐘 (RTC),具有集成的溫補(bǔ)晶體振蕩器 (TCXO) 和晶體。該器件包含電池輸入端,斷開主電源時(shí)仍可保持精確的計(jì)時(shí)。集成晶體振蕩器提高了器件的長(zhǎng)期精確度。 DS3231采用 16引腳、300mil的 SO封裝。RTC 保持秒、分、時(shí)、星期、日期、月和年信息。少于31 天的月份,將自動(dòng)調(diào)整月末日期,包括閏年補(bǔ)償。時(shí)鐘的工作格式可以是 24 小時(shí)或帶 AM/PM 指示的 12 小時(shí)格式。提供兩個(gè)可編程日歷鬧鐘和一路可編程方波輸出。地址與數(shù)據(jù)通過 I2C雙向總線串行傳輸。精密的、經(jīng)過溫度補(bǔ)償?shù)?a target="_blank">電壓基準(zhǔn)和比較器用來(lái)監(jiān)視 VCC狀態(tài),檢測(cè)電源故障、提供復(fù)位輸出,并在必要時(shí)自動(dòng)切換到備用電源。另外, RST監(jiān)視引腳可以作為手動(dòng)按鈕輸入以產(chǎn)生外部復(fù)位信號(hào)。特性
0°C 至 +40°C 范圍內(nèi)精度為 ±2ppm
-40°C 至 +85°C 范圍內(nèi)精度為 ±3.5ppm
為連續(xù)計(jì)時(shí)提供備用電池輸入
低功耗
實(shí)時(shí)時(shí)鐘提供秒、分、時(shí)、星期、日期、月、年信息,并提供有效期到 2100
年的閏年補(bǔ)償
兩個(gè)日歷鬧鐘
可編程方波輸出
快速 (400kHz) I2C 接口
3.3V工作電壓
數(shù)字溫度傳感器輸出:精度為 ±3°C
顯示部分使用TM1650驅(qū)動(dòng)4位0.56寸的共陰極數(shù)碼管。TM1650是天微生產(chǎn)的一款數(shù)碼管驅(qū)動(dòng),2線串行驅(qū)動(dòng),8級(jí)亮度調(diào)整,并且支持28個(gè)按鍵掃描。只要把要顯示的數(shù)據(jù)寫入其中就能正確的顯示了,不用再去寫動(dòng)態(tài)掃描的函數(shù),硬件連接也更簡(jiǎn)單。用起來(lái)很方便。
MCU的選用:先算了下I/O的占用,I2C 接口2個(gè),TM1650 2個(gè),DS3231的SQW1個(gè)(1HZ方波用于刷新顯示)。這樣僅僅用了5個(gè)I/O口,配合DS3231的3.3V供電,就選用了手頭現(xiàn)成的STC 15L104W單片機(jī)。
IC選好后,發(fā)現(xiàn)如果用貼片元件的話,和數(shù)碼管差不多大小的PCB就能放得下。
原理圖:
畫好的PCB:
熱轉(zhuǎn)印制板:
焊接完成:
完成后的樣子:
大小控制的不錯(cuò)吧
最終的成品
后記:程序很簡(jiǎn)單,互聯(lián)網(wǎng)上有現(xiàn)成的DS3231和TM1650的函數(shù),稍微改一下就能用了。DS3231的SQW口輸出1HZ方波,單片機(jī)在方波的每個(gè)下降沿產(chǎn)生中斷然后讀取DS3231的時(shí)間,再發(fā)送到TM1650的顯示寄存器去刷新數(shù)碼管的顯示就行了。放置了2個(gè)按鍵用來(lái)調(diào)節(jié)時(shí)間。所用的單片機(jī)沒有AD,不好實(shí)現(xiàn)自動(dòng)亮度,只好靠時(shí)間去判斷,白天亮度高晚上亮度低,用起來(lái)也很不錯(cuò)。
DS3231的后備電源原來(lái)打算用手機(jī)上拆的備份電池,但實(shí)際證明不好用,試過斷電時(shí)間超過2個(gè)小時(shí)就不能保存時(shí)間了。后來(lái)焊接了一片1.5V的紐扣電池,斷電后可以正常的走時(shí)了。由于是自己制板,受單面PCB的限制,布線頗費(fèi)了一番周折。不過每天看到自己的“作品”正常的工作,還是很有成就感的。
-
DS3231
+關(guān)注
關(guān)注
2文章
51瀏覽量
24112 -
多變量函數(shù)運(yùn)算
+關(guān)注
關(guān)注
0文章
2瀏覽量
2041
原文標(biāo)題:DS3231+TM1650做的4位0.56寸數(shù)碼管迷你時(shí)鐘(開源)
文章出處:【微信號(hào):wujianying_danpianji,微信公眾號(hào):?jiǎn)纹瑱C(jī)精講吳鑒鷹】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
TM1640驅(qū)動(dòng)1.2寸數(shù)碼管微亮
如何使用DS1302時(shí)鐘模塊搭配TM1637四位數(shù)碼管制作簡(jiǎn)易電子鐘?
TM1650芯片是如何驅(qū)動(dòng)4位數(shù)碼管的
基于數(shù)碼管和DS3231時(shí)鐘模塊的車載電子時(shí)鐘設(shè)計(jì)
8266+DS3231時(shí)鐘項(xiàng)目的顯示部分功能的詳解
TM1650數(shù)碼管的相關(guān)資料推薦
TM1650數(shù)碼管驅(qū)動(dòng)芯片和TM7711和ADC的數(shù)據(jù)手冊(cè)免費(fèi)下載

TM1650/AIP1650共陰四位數(shù)碼管驅(qū)動(dòng)芯片兼容GN1650
TM1650芯片驅(qū)動(dòng)四位數(shù)碼管

8266+DS3231時(shí)鐘之顯示TM1638的使用【四】上

STM8S103單片機(jī)萬(wàn)年歷模塊日歷時(shí)鐘電路板DS3231數(shù)碼管顯示溫度模塊

【Arduino】使用DS1302時(shí)鐘模塊搭配TM1637四位數(shù)碼管制作簡(jiǎn)易電子鐘

基于DS3231和ESP8266的1.2英寸數(shù)碼管時(shí)鐘
1.8英寸共陽(yáng)極數(shù)字電子管時(shí)鐘
GN1650共陰數(shù)碼管顯示驅(qū)動(dòng)芯片替換TM1650/AIP1650

評(píng)論