//Logo Image
作者:蔡宗成(2004-04-09);推薦:徐業良(2004-04-10)

單晶片實習-DS1302即時時鐘晶片簡介與應用

本文介紹DS1302即時時鐘晶片(Real Time Clock),此晶片只要供應電源與外接石英震盪器即可自行動作,可利用單晶片進行時間設定,便可讀取秒、分、時、星期、日、月、年等時間資料。CCS已提供範例程式與DS1302晶片的驅動程式,適當引用可幫助使用者增加單晶片系統功能。

1. DS1302即時時鐘晶片簡介

DS1302即時時鐘晶片主要特性如下:

(1)    時間計數值為秒、分、時、星期、日、月、年,可達2100年。

(2)    具有31 byte RAM,可儲存系統參數與資料。

(3)    使用串列式資料傳送與接收介面,減少晶片接腳數目。

(4)    工作電壓範圍為2.0V~5.5V

(5)    工作電壓為2.0V時,耗電量小於300nA

(6)    8支腳DIP封裝。

1DS1302晶片接腳位置定義。

接腳

符號

定義

2, 3

X1, X2

連接32.768kHz石英震盪器

4

GND

接地

5

RST

系統重置

6

I/O

Data Input/Output

7

SCLK

Serial Clock

1, 8

Vcc1, Vcc2

電源

1. DS1302晶片接腳位置定義

2. DS1302即時時鐘晶片控制電路

本實習使用PIC16F877單晶片控制DS1302晶片,將日期與時間顯示在LCD顯示器上,LCD顯示器第一行顯示年、月、日、星期,第二行顯示時、分、秒,單晶片驅動LCD顯示器相關內容請參閱「單晶片實習-LCD顯示控制」。圖2為單晶片與DS1302連接電路圖,使用單晶片Pin_B1Pin_B2Pin_B3作為時間資料設定與傳輸接腳,單晶片接腳與DS1302晶片的對應關係是依照CCS開發軟體所提供的DS1302.c函數庫所定義,使用者可依照本身硬體需求,更改接腳定義。

2. DS1302晶片與單晶片連接電路圖

CCS開發軟體提供ex_rtc.cex_rtclk兩種範例程式,ex_rtc.c是針對另一顆即時時鐘晶片NJU6355所設計,此程式可透過RS232設定初始時間,並將時間數值透過RS232傳送至電腦;而ex_rtclk.c是針對DS1302晶片所設計,並加入矩陣鍵盤輸入功能與LCD顯示器功能,使用者可透過矩陣鍵盤輸入初始時間,並直接在LCD顯示器上直接顯示即時時間。此兩種範例程式架構類似,不同之處在於引用不同的即時時鐘晶片驅動程式與接腳定義,CCS開發軟體同樣提供nju6355.cds1302.c兩種驅動程式,使用上非常便利。

本實習修改ex_rtc.c範例程式,並引用ds1302.c驅動程式,程式功能為使用者透過RS232設定初始時間,並在LCD顯示器上顯示即時時間。圖3ex_rtc.c修改程式範例,程式一開始執行時,先初始化LCD驅動程式與DS1302驅動程式,並提供使用者修改(“S”)與顯示(“D”)時間兩種選項,選擇修改(“S”)選項,便會執行set_clock()副程式,便可依序輸入日期與時間參數,選擇顯示(“D”)選項,便會讀取DS1302晶片當時時間,DS1302內部初始時間為0。當使用者修改與顯示時間參數後,程式進入while迴圈內,使用rtc_get_data指令讀取日期參數,使用rtc_get_time指令讀取時間參數,接著,在LCD顯示器第一行依序顯示年、月、日、與星期,並使用分隔符號“/”區隔,在LCD顯示器第二行依序顯示時、分、秒,並使用分隔符號“:”區隔。

4CCS開發軟體所提供的DS1302晶片的驅動程式,並提供五項控制指令,用以初始化DS1302晶片、設定與讀取時間、設定與讀取資料等功能。

3. ex_rtc.c修改程式範例

4. CCS開發軟體提供ds1302.c驅動程式