DS1302使用手冊縮減版,自己整理的,帶例程。
實時時鐘(RTC)計秒、分、時、日期、月、星期和年,并且帶閏年,有效補償到2100年 寬范圍工作電壓 2.0V到5.5V,可選工業級溫度范圍:-40℃到+85℃
二、典型工作電路及外部引腳分布圖 
 三、引腳描述 - VCC2接5V主電源
- X1,X2是振蕩源,外接32.768kHz晶振,與6pf電容一起工作。
- GND電源地
- RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。
- I/O為串行數據輸入輸出端(雙向)
- SCLK為時鐘輸入端。
- VCC1為后備電源。外接3V紐扣電池,在主電源關閉的情況下,也能保持時鐘的連續運行。
注:RST、I/O、SCLK視情況需要上拉電阻 
小時寄存器(85h、84h)的位7用于定義 DS1302是運行于12小時模式還是24小時模式。當為高時,選擇12小時模式。在12小時模式時,位5是AM/PM,當為1時,表示 PM。(24小時寫入11:00--0x84,0x11; 12小時寫入11:00--0x84,0x91; 12小時寫入23:00--0x84,0xb1;) 秒寄存器(81h、80h)的位7定義為時鐘暫停標志(CH)當該位置為1時,時鐘振蕩器停止,DS1302處于低功耗狀態;當該位置為 0時,時鐘開始運行。 控制寄存器(8Fh、8Eh)的位7是寫保護位(WP),其它7位均置為0。在任何的對時鐘和 RAM 的寫操作之前,WP 位必須為0。當 WP 位為1時,寫保護位防止對任一寄存器的寫操作。 (write_1302(0x8e,0x00)-----禁止寫保護,就是關閉寫保護功能 write_1302(0x8e,0x00-----打開寫保護功能 )

位7:必須是1,如果它為0,則不能把數據寫入到 DS1302 中; 位5至位1(A4~A0):指示操作單元的地址; 位6:如果為0,則表示存取日歷時鐘數據,為1表示存取 RAM 數據; 位0:為0表示要進行寫操作,為1表示進行讀操作。 
注:讀一個字節,SCLK=1,SCLK=0 寫一個字節,SCLK=0,SCLK=1 表中CE為文中的RST; 寫入時需要將十進制轉換成BCD碼 #程序參考#
- void write_byte(uchar dat)//寫一個字節
- {
- ACC=dat;
- RST=1;
- for(a=8;a>0;a--)
- {
- IO=ACC0;
- SCLK=0;
- SCLK=1;
- ACC=ACC>>1;
- }
- }
- uchar read_byte()//讀一個字節
- {
- RST=1;
- for(a=8;a>0;a--)
- {
- ACC7=IO;
- SCLK=1;
- SCLK=0;
- ACC=ACC>>1;
-
- }
- return (ACC);
- }
- //-----------------------------------------------------------------------------------------------------------------------
- void write_1302(uchar add,uchar dat)//向1302芯片寫數據函數,寫入指定地址、數據
- {
- RST=0;
- SCLK=0;
- RST=1;
- write_byte(add); //寫入地址
- write_byte(dat); //寫入數據
- SCLK=1; //視情況決定寫不寫
- RST=0;
- }
- uchar read_1302(uchar add)//向1302芯片讀數據函數
-
- {
- uchar temp;
- RST=0;
- SCLK=0;
- RST=1;
- write_byte(add); //讀地址
- temp=read_byte(); //讀數據
- SCLK=1; //視情況決定寫不寫
-
- RST=0;
- return(temp);
- }
復制代碼
完整的Word格式文檔51黑下載地址:
DS1302使用手冊縮減版.docx
(328.51 KB, 下載次數: 11)
2019-3-8 20:46 上傳
點擊文件名下載附件
|