一、實時時鐘ds1302簡介
1. ds1302是美國dallas公司推出的一種高效能、低功耗、帶ram的實時時鐘電路。
2. 特點
a> ds1302可以對年月日周時分秒計數。時間最多計時到2023年。
b> 工作電壓:2.0 ~ 5.5 v。
c> 內部有31 x 8 ram存放臨時資料。
d> 工作溫度:-40 ~ 85℃。
e> 通過三根線通訊。
f> 雙電源供電(vcc2為主電源,vcc1為後備電源)。
g> 晶振為32.768khz。
3. 電源供電
當vcc2大於vcc1+0.2v時,vcc2給ds1302供電,否則vcc1給ds1302供電。
二、ds1302的驅動程式(僅供參考)
要改變時分秒的值,首先要知道它的位址。在上圖中可以找到對應資料的位址,然後根據位址改變它的值。
#define ds1302_sec_add0x80
#define ds1302_min_add0x82
#define ds1302_hr_add0x84
#define ds1302_date_add0x86
#define ds1302_month_add0x88
#define ds1302_day_add0x8a
#define ds1302_year_add 0x8c
#define ds1302_control_add0x8e
#define ds1302_charger_add0x90
#define ds1302_clkburst_add0xbe
1.write byte
時序圖如下所示,
程式僅供參考:
void ds1302_write_byte(unsigned char addr, unsigned char byte)
for(i = 0; i < 8; i++)
sck = 0;
rst = 0;
}
2.read byte時序圖如下所示,
程式僅供參考:
unsigned char ds1302_read_byte(unsigned char addr)
for(i = 0; i < 8; i++)
}rst = 0;
return temp;
}
3.write data
時序圖如下所示,
程式僅供參考:
(例-寫入時分秒)
void ds1302_write_time()
ds1302_write_byte(ds1302_control_add,0x00);
ds1302_write_byte(ds1302_hr_add,writebuf[0]);
ds1302_write_byte(ds1302_min_add,writebuf[1]);
ds1302_write_byte(ds1302_sec_add,writebuf[2]);
ds1302_write_byte(ds1302_control_add,0x80);
}
4.read data時序圖如下所示,
程式僅供參考:
(例-讀出時分秒)
void ds1302_read_time()
}
我們可以使用ds1302來計時並讀取時間,這樣可以減少微控制器的負擔。使用ds1302計時也十分精確,並且還可以在斷電的時候使用備用電池儲存時間資料。對於時間的處理也是十分的好,比如閏年的計算等。這是我自己對ds1302晶元的看法。 RTC實時時鐘
rtc的英文全稱是real time clock,翻譯過來是實時時鐘晶元.rtc是pc主機板上的晶振及相關電路組成的時鐘電路的生成脈衝,rtc經過8254電路的變頻產生乙個頻率較低一點的os 系統 時鐘tsc,系統時鐘每乙個cpu週期加一,每次系統時鐘在系統初起時通過rtc初始化。8254本身工作也...
RTC實時時鐘
系統在斷電後 需要rtc電池計時間並在系統啟動後 將這個時間給到系統時間。以此維護系統斷電後與現實時間同步 一般rtc電池需要3v的電壓 若經過擴充套件板連線 需要測量此電壓是否給到主控晶元 然後date命令可以檢視系統時間 date s 2008 08 08 12 00 00 可以通過這個命令修改...
實時時鐘RTC
1.簡述 外圍裝置控制器晶元 ich 內部,整合了實時時鐘電路 rtc 以及兩個cmos組成的靜態儲存器 cmos ram 通常為128b rtc負責計時,由1個32.768khz的石英晶體振盪器驅動,經分頻後用於cmos ram進行每秒一次的時間重新整理 cmos ram中時間資訊如下表所示,前1...