鍍金池/ 教程/ 數(shù)據(jù)庫/ 15.5 DS1302 寄存器介紹
18. RS485 通信與 Modbus 協(xié)議
17.5 A/D 差分輸入信號
15.8 C 語言復(fù)合數(shù)據(jù)類型(結(jié)構(gòu)體,共用體,枚舉類型)
16.3 NEC 協(xié)議紅外遙控器
13.1 單片機通信時序解析
14.4 單片機 EEPROM 單字節(jié)讀寫操作時序
13.3 多個 .c 文件的初步認識
18.2 Modbus 通信協(xié)議介紹
15.1 BCD 碼介紹
18.3 單片機 Modbus 多機通信程序設(shè)計
18.1 單片機 RS485 通信接口、控制線、原理圖及程序?qū)嵗?/span>
15. 實時時鐘 DS1302
14.7 單片機 I2C 和 EEPROM 的綜合編程
17. 模數(shù)轉(zhuǎn)換與數(shù)模轉(zhuǎn)換
16.2 紅外遙控通信原理
13.2 1602 液晶整屏移動程序
17.6 D/A 輸出
17.7 單片機信號發(fā)生器程序
16.4 溫度傳感器 DS18B20
14.6 單片機EEPROM的頁寫入
13.4 單片機計算器程序設(shè)計[詳細]
17.2 A/D(模數(shù)轉(zhuǎn)換)的主要指標(biāo)
17.4 PCF8591 應(yīng)用程序
17.1 A/D 和 D/A 的基本概念
17.3 PCF8591硬件接口(電路圖引腳圖)
14.3 單片機 EEPROM 簡介
13.5 單片機串口通信原理和控制程序
15.5 DS1302 寄存器介紹
15.2 單片機 SPI 通信接口
15.6 DS1302 通信時序介紹
14.5 單片機 EEPROM 多字節(jié)讀寫操作時序
16. 紅外通信與 DS18B20 溫度傳感器
14.1 單片機 I2C 時序介紹
15.3 實時時鐘芯片 DS1302 介紹
15.9 單片機電子時鐘程序設(shè)計
16.1 紅外光的基本原理
15.4 DS1302 的硬件信息
15.7 DS1302 的 BURST 模式
14.2 單片機 I2C 尋址模式
14. 單片機 I2C 總線與 EEPROM
13. 單片機 1602 液晶與串口的應(yīng)用實例

15.5 DS1302 寄存器介紹

DS1302 的一條指令一個字節(jié)共8位,其中第7位(即最高位)固定為1,這一位如果是0的話,那寫進去也是無效的。第6位是選擇 RAM 還是 CLOCK 的,我前邊說過,我們這里主要講 CLOCK 時鐘的使用,它的 RAM 功能我們不用,所以如果選擇 CLOCK 功能,第6位是0,如果要用 RAM,那第6位就是1。從第5到第1位,決定了寄存器的5位地址,而第0位是讀寫位,如果要寫,這一位就是0,如果要讀,這一位就是1。指令字節(jié)直觀位分配如圖15-9所示。

http://wiki.jikexueyuan.com/project/mcu-tutorial-three/images/19.png" alt="" />

圖15-9 DS1302 命令字節(jié)

DS1302 時鐘的寄存器,其中8個和時鐘有關(guān)的,5位地址分別是 0b00000~0b00111,還有一個寄存器的地址是 01000,這是涓流充電所用的寄存器,我們這里不講。在 DS1302 的數(shù)據(jù)手冊里的地址,直接把第7位、第6位和第0位值給出來了,所以指令就成了 0x80、0x81 那些了,最低位是1,那么表示讀,最低位是0表示寫,如圖15-10所示。

http://wiki.jikexueyuan.com/project/mcu-tutorial-three/images/20.png" alt="" />

圖15-10 DS1302 的時鐘寄存器

寄存器0:最高位 CH 是一個時鐘停止標(biāo)志位。如果時鐘電路有備用電源,上電后,我們要先檢測一下這一位,如果這一位是0,那說明時鐘芯片在系統(tǒng)掉電后,由于備用電源的供給,時鐘是持續(xù)正常運行的;如果這一位是1,那么說明時鐘芯片在系統(tǒng)掉電后,時鐘部分不工作了。如果 Vcc1 懸空或者是電池沒電了,當(dāng)我們下次重新上電時,讀取這一位,那這一位就是1,我們可以通過這一位判斷時鐘在單片機系統(tǒng)掉電后是否還正常運行。剩下的7位高3位是秒的十位,低4位是秒的個位,這里再提請注意一次,DS1302 內(nèi)部是 BCD 碼,而秒的十位最大是5,所以3個二進制位就夠了。

寄存器1:最高位未使用,剩下的7位中高3位是分鐘的十位,低4位是分鐘的個位。

寄存器2:bit7 是1的話代表是12小時制,0代表是24小時制;bit6 固定是0,bit5 在12小時制下 0代表的是上午,1代表的是下午,在24小時制下和 bit4 一起代表了小時的十位,低4位代表的是小時的個位。

寄存器3:高2位固定是0,bit5 和 bit4 是日期的十位,低4位是日期的個位。

寄存器4:高3位固定是0,bit4 是月的十位,低4位是月的個位。

寄存器5:高5位固定是0,低3位代表了星期。

寄存器6:高4位代表了年的十位,低4位代表了年的個位。請?zhí)貏e注意,這里的00~99指的是2000年~2099年。

寄存器7:最高位一個寫保護位,如果這一位是1,那么是禁止給任何其它寄存器或者那31個字節(jié)的 RAM 寫數(shù)據(jù)的。因此在寫數(shù)據(jù)之前,這一位必須先寫成0。