高精度RTC SD2403AP在智能路燈控制器上的運(yùn)用
時(shí)間報(bào)警允許寄存器的使能位是用于確定哪些時(shí)間報(bào)警寄存器(秒、分鐘等)需要與實(shí)時(shí)時(shí)鐘寄存器之間作比較。當(dāng)實(shí)時(shí)時(shí)鐘運(yùn)行時(shí),一旦被允許的報(bào)警寄存器均與對(duì)應(yīng)的實(shí)時(shí)時(shí)鐘寄存器相匹配,就會(huì)觸發(fā)一次報(bào)警中斷,同時(shí)報(bào)警中斷標(biāo)志位INTAF位被置”1”
當(dāng)設(shè)置 INTS1=0、INTS0=1時(shí),即允許報(bào)警中斷從INT腳輸出。該報(bào)警中斷有兩種模式,即單事件報(bào)警和周期性報(bào)警, 模式的選定由控制寄存器2中的報(bào)警中斷模式位IM的值來定:
IM=0 ,單事件報(bào)警,輸出低電平直至INTAF位清零
IM=1 ,周期性報(bào)警,輸出低電平有效、寬度為250MS的周期性脈沖直至INTAF位清零
為清除報(bào)警中斷,可通過寫操作將控制寄存器1的INTAF位置”0”。但當(dāng)ARST位置為”1”,則在控制寄存器1被讀取時(shí),INTAF位會(huì)自動(dòng)清零。
●智能路燈控制器設(shè)計(jì)
本文采用大家使用普遍ATMEL89C51單片機(jī)做主控芯片。通過對(duì)時(shí)間的調(diào)用配合光感信號(hào)達(dá)到對(duì)路燈的開關(guān)智能控制,該系統(tǒng)可廣泛應(yīng)用于道路燈、霓虹燈、航標(biāo)燈、夜景燈、高速公路照明燈、庭院燈及所有室外照明燈具的控制,其系統(tǒng)框圖如下
硬件設(shè)計(jì)
圖中,主要給出SD2403AP的具體接線電路,OUT為各位的控制信號(hào)??山尤龢O管后放大給繼電器輸出,從而控制路燈的開關(guān)。
在此設(shè)計(jì)中MCU通過P3.4,P3.5模擬IIC總線與SD2403AP進(jìn)行通信,并通過INT讀出中斷信號(hào),本設(shè)計(jì)設(shè)置的每天早上6:30(此時(shí)間可以由用戶通過KEY鍵進(jìn)行修改)定時(shí)關(guān)掉OUT1路的輸出。OUT2,OUT3等由光線控制?,F(xiàn)以O(shè)UT1的關(guān)斷做例子分析
軟件設(shè)計(jì)
安排SD2403AP在06:30輸出一個(gè)低電平的信號(hào),MCU通過輪循的方式查到此電平并設(shè)置OUT1為0,從而關(guān)斷繼電器并關(guān)段路燈等。
這里將寫入SD2403AP的寄存器列出來,如表:
寄存器名稱 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
數(shù)值范圍 |
|
00H |
秒 |
0 |
S40 |
S20 |
S10 |
S8 |
S4 |
S2 |
S1 |
0-59 |
01H |
分鐘 |
0 |
MN40 |
MN20 |
MN10 |
MN8 |
MN4 |
MN2 |
MN1 |
0-59 |
02H |
小時(shí) |
12_/24 |
0 |
H20 P/A_ |
H10 |
H8 |
H4 |
H2 |
H1 |
0-23 |
03H |
星期 |
0 |
0 |
0 |
0 |
0 |
W4 |
W2 |
W1 |
0-6 |
04H |
日 |
0 |
0 |
D20 |
D10 |
D8 |
D4 |
D2 |
D1 |
1-31 |
05H |
月 |
0 |
0 |
0 |
MO10 |
MO8 |
MO4 |
MO2 |
MO1 |
1-12 |
06H |
年 |
Y80 |
Y40 |
Y20 |
Y10 |
Y8 |
Y4 |
Y2 |
Y1 |
0-99 |
07H |
秒報(bào)警 |
0 |
AS40 |
AS20 |
AS10 |
AS8 |
AS4 |
AS2 |
AS1 |
0-59 |
08H |
分鐘報(bào)警 |
0 |
AMN40 |
AMN20 |
AMN10 |
AMN8 |
AMN4 |
AMN2 |
AMN1 |
0-59 |
09H |
小時(shí)報(bào)警 |
0 |
0 |
AH20 AP/A_ |
AH10 |
AH8 |
AH4 |
AH2 |
AH1 |
0-23 |
0AH |
星期報(bào)警 |
0 |
AW6 |
AW5 |
AW4 |
AW3 |
AW2 |
AW1 |
AW0 |
N/A |
0BH |
日?qǐng)?bào)警 |
0 |
0 |
AD20 |
AD10 |
AD8 |
AD4 |
AD2 |
AD1 |
1-31 |
0CH |
月報(bào)警 |
0 |
0 |
0 |
AMO10 |
AMO8 |
AMO4 |
AMO2 |
AMO1 |
1-12 |
0DH |
年報(bào)警 |
AY80 |
AY40 |
AY20 |
AY10 |
AY8 |
AY4 |
AY2 |
AY1 |
0-99 |
0EH |
報(bào)警允許 |
0 |
EAY |
EAMO |
EAD |
EAW |
EAH |
EAMN |
EAS |
N/A |
0FH |
CTR1 |
WRTC3 |
0 |
INTFA |
INTDF |
0 |
WRTC2 |
0 |
RTCF |
N/A |
10H |
CTR2 |
WRTC1 |
IM |
INTS1 |
INTS0 |
FOBAT |
INTDE |
INTAE |
INTFE |
N/A |
11H |
CTR3 |
ARST |
0 |
TDS1 |
TDS0 |
FS3 |
FS2 |
FS1 |
FS0 |
N/A |
12H |
時(shí)間調(diào)整 |
0 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
N/A |
13H |
倒計(jì)時(shí)定時(shí)器 |
TD7 |
TD6 |
TD5 |
TD4 |
TD3 |
TD2 |
TD1 |
TD0 |
0-255 |
14H~1FH |
(12BYTE) |
BIT7 |
BIT6 |
BIT5 |
BIT4 |
BIT3 |
BIT2 |
BIT1 |
BIT0 |
N/A |
讀時(shí)間的時(shí)候用到的是00H——06H里面的數(shù)值,為BCD碼。
控制寄存器和中斷在07——13H。
本設(shè)計(jì)設(shè)置的中斷涉及的寄存器有08H,09H,EH,F(xiàn)H,10H
部分軟件如下:
- 打開“軟鎖”,即設(shè)置WRTC1,WRTC2,WRTC3為1,才能寫數(shù)據(jù)。寫完數(shù)據(jù)關(guān)閉軟鎖
TIMEWRITE_ON:
SETB SDA
SETB SCL
LCALL DELAY
CLR SDA
LCALL DELAY
CLR SCL
LCALL DELAY ;I2C START
MOV R6,#64H
LCALL SEND
MOV R6,#10H ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為10H
LCALL SEND
MOV R6,#80H ;置10H的WRTC1為1
LCALL SEND
CLR SDA
SETB SCL
LCALL DELAY
SETB SDA
LCALL DELAY ;I2C STOP
LCALL IICSTART ;具體程序同上I2C START,此處略
MOV R6,#64H ;發(fā)送時(shí)鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#0FH ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為0FH
LCALL SEND
MOV R6,#84H ;置0FH的WRTC2。WRTC3為1
LCALL SEND
LCALL IICSTOP ;同上,I2CSTOP
SEND: MOV A, R6 ;發(fā)送一個(gè)字節(jié)
MOV R2,#08H
SEND1: MOV C,ACC。7
MOV SDA,C
LCALL DELAY
SETB SCL
LCALL DELAY
CLR SCL
LCALL DELAY ;SEND A BIT
RL A
DJNZ R2,SEND1
SETB SDA ;置輸入狀態(tài)
SETB SCL
LCALL DELAY
MOV C,SDA
JC ERROR
CLR SCL
LCALL DELAY
RET ;READ A BIT
ERROR: LJMP 0000H
2,寫2403的中斷控制寄存器以實(shí)現(xiàn)6:30輸出一個(gè)低電平
LCALL TIMEWRITE_ON
LCALL IICSTART
MOV R6,#64H ;發(fā)送時(shí)鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#10H ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為10H
LCALL SEND
MOV R6,#92H ;ALARM
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;發(fā)送時(shí)鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#0EH ;設(shè)置時(shí)鐘數(shù)據(jù)的內(nèi)部起始地址為0E
LCALL SEND
MOV R6,#06H ;報(bào)警允許小時(shí),分鐘
LCALL SEND
LCALL IICSTOP
LCALL IICSTART
MOV R6,#64H ;發(fā)送時(shí)鐘SD2400的器件地址(寫)
LCALL SEND
MOV R6,#08H ;設(shè)置分鐘報(bào)警地址
LCALL SEND
MOV R6,#30H ;MINUTE
LCALL SEND
MOV R6,#06H ;HOUR
LCALL SEND
LCALL IICSTOP
LCALL TIMEWRITE_OFF
●結(jié)語
SD2403AP是一款高精度實(shí)時(shí)時(shí)鐘芯片,在此智能路燈控制器中發(fā)揮著重要的作用。其芯片可以廣泛用于消費(fèi)和工業(yè)領(lǐng)域的諸多平臺(tái),如電子式電力測(cè)量?jī)x(數(shù)字式電力表)、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、游戲機(jī)、DVD錄像機(jī)、便攜電話等產(chǎn)品
參 考 文 獻(xiàn)
[1] 沙占友,王彥朋,孟志永,單片機(jī)外圍電路設(shè)計(jì),電子工業(yè)出版社,2003.1
[2] SD2403APIDATASHEET,深圳興威帆電子技術(shù)有限公司,2008
評(píng)論