|
由于單片機自身定時器精度不高,導致一些需較精準定時功能的設計要借助時鐘芯片來完成。現在使用較普遍的一種是DS1302芯片,并且相關教程已經非常豐富。DS1307這款芯片也不乏愛好者們使用:DS1307是I2C總線接口的日歷時鐘芯片,片內有8個特殊寄存器和56B的SRAM,是一種低功耗BCD碼的8引腳實時時鐘芯片。具體可以顯示年份,月份,星期,日期,時,分,秒,具有自動調節日期功能。 本人因之前要設計一款電子時鐘購得了一個DS1307的時鐘模塊,在網上尋找使用教程時發現大多教程都是將這個模塊的驅動程序夾雜在自己的完整程序里,對于一些程序閱讀能力不強的愛好者們很不友好。所以經過查詢資料及實踐,我將DS1307時鐘模塊的驅動程序整理成了一個.H文件,方便廣大電子愛好者們使用。
關于這個模塊的使用方法:①接線,以我的程序為例:SCL與SDA管腳分別接單片機(STC15)的P17和P16用于傳輸數據,SQ管腳接單片機的外部中斷0(P32),DS和BAT可不管。②程序:在project里導入DS1307.H文件,main函數中調用初始化函數init(),語句“ds1307_write_date(0xd0,0x07,0x10);”使SQ引腳輸出1Hz的方波;最后在主程序中寫外部中斷0的程序:“
Seconds=ds1307_read_date(0xd0,0);//返回函數r值秒
Minutes=ds1307_read_date(0xd0,1);
Hours=ds1307_read_date(0xd0,2);
Seconds=BCD_to_Decimal(Seconds);//BCD碼轉換成十進制
Minutes=BCD_to_Decimal(Minutes);
Hours=BCD_to_Decimal(Hours); ”,即每過1s就中斷,從模塊中讀取一次時間數據。如有其他問題,歡迎在評論區討論。
|
-
捕獲.PNG
(382.15 KB, 下載次數: 245)
下載附件
2019-3-7 21:05 上傳
-
-
DS1307.rar
2019-3-7 21:02 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.45 KB, 下載次數: 469, 下載積分: 黑幣 -5
評分
-
查看全部評分
|