新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 高精度RTC SD2403AP在智能路灯控制器上的运用

高精度RTC SD2403AP在智能路灯控制器上的运用

作者:时间:2008-11-06来源:收藏

  时间报警允许寄存器的使能位是用于确定哪些时间报警寄存器(秒、分钟等)需要与寄存器之间作比较。当运行时,一旦被允许的报警寄存器均与对应的寄存器相匹配,就会触发一次报警中断,同时报警中断标志位INTAF位被置”1”

  当设置 INTS1=0、INTS0=1时,即允许报警中断从INT脚输出。该报警中断有两种模式,即单事件报警和周期性报警, 模式的选定由控制寄存器2中的报警中断模式位IM的值来定:
 
  IM=0 ,单事件报警,输出低电平直至INTAF位清零 

  IM=1 ,周期性报警,输出低电平有效、宽度为250MS的周期性脉冲直至INTAF位清零
为清除报警中断,可通过写操作将控制寄存器1的INTAF位置”0”。但当ARST位置为”1”,则在控制寄存器1被读取时,INTAF位会自动清零。

本文引用地址:http://www.eepw.com.cn/article/89282.htm

  ●智能路灯控制器设计 

  本文采用大家使用普遍ATMEL89C51单片机做主控芯片。通过对时间的调用配合光感信号达到对路灯的开关智能控制,该系统可广泛应用于道路灯、霓虹灯、航标灯、夜景灯、高速公路照明灯、庭院灯及所有室外照明灯具的控制,其系统框图如下 

   

   硬件设计

       图中,主要给出SD2403AP的具体接线电路,OUT为各位的控制信号。可接三极管后放大给继电器输出,从而控制路灯的开关。 

   在此设计中MCU通过P3.4,P3.5模拟IIC总线与SD2403AP进行通信,并通过INT读出中断信号,本设计设置的每天早上6:30(此时间可以由用户通过KEY键进行修改)定时关掉OUT1路的输出。OUT2,OUT3等由光线控制。现以OUT1的关断做例子分析

  软件设计 

  安排SD2403AP在06:30输出一个低电平的信号,MCU通过轮循的方式查到此电平并设置OUT1为0,从而关断继电器并关段路灯等。
这里将写入SD2403AP的寄存器列出来,如表:

地址

寄存器名称

D7

D6

D5

D4

D3

D2

D1

D0

数值范围

00H

0

S40

S20

S10

S8

S4

S2

S1

0-59

01H

分钟

0

MN40

MN20

MN10

MN8

MN4

MN2

MN1

0-59

02H

小时

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

秒报警

0

AS40

AS20

AS10

AS8

AS4

AS2

AS1

0-59

08H

分钟报警

0

AMN40

AMN20

AMN10

AMN8

AMN4

AMN2

AMN1

0-59

09H

小时报警

0

0

AH20 AP/A_

AH10

AH8

AH4

AH2

AH1

0-23

0AH

星期报警

0

AW6

AW5

AW4

AW3

AW2

AW1

AW0

N/A

0BH

日报警

0

0

AD20

AD10

AD8

AD4

AD2

AD1

1-31

0CH

月报警

0

0

0

AMO10

AMO8

AMO4

AMO2

AMO1

1-12

0DH

年报警

AY80

AY40

AY20

AY10

AY8

AY4

AY2

AY1

0-99

0EH

报警允许

0

EAY

EAMO

EAD

EAW

EAH

EAMN

EAS

N/A

0FH

CTR1

W3

0

INTFA

INTDF

0

W2

0

F

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

时间调整

0

F6

F5

F4

F3

F2

F1

F0

N/A

13H

倒计时定时器

TD7

TD6

TD5

TD4

TD3

TD2

TD1

TD0

0-255

14H~1FH

(12BYTE)

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

N/A

   读时间的时候用到的是00H——06H里面的数值,为BCD码。 

  控制寄存器和中断在07——13H。 

  本设计设置的中断涉及的寄存器有08H,09H,EH,FH,10H

  部分软件如下:

  1. 打开“软锁”,即设置WRTC1,WRTC2,WRTC3为1,才能写数据。写完数据关闭软锁

   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          ;设置时钟数据的内部起始地址为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            ;发送时钟SD2400的器件地址(写)
LCALL   SEND
MOV     R6,#0FH            ;设置时钟数据的内部起始地址为0FH
LCALL       SEND           
MOV     R6,#84H           ;置0FH的WRTC2。WRTC3为1
LCALL     SEND
LCALL     IICSTOP           ;同上,I2CSTOP      
SEND:      MOV      A, R6               ;发送一个字节
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               ;置输入状态
SETB        SCL
LCALL     DELAY
MOV        C,SDA
JC          ERROR
CLR              SCL
LCALL       DELAY
RET                        ;READ A BIT
ERROR:      LJMP  0000H

 

2,写2403的中断控制寄存器以实现6:30输出一个低电平
LCALL         TIMEWRITE_ON
LCALL     IICSTART
MOV             R6,#64H                ;发送时钟SD2400的器件地址(写)
LCALL          SEND
MOV             R6,#10H                ;设置时钟数据的内部起始地址为10H
LCALL          SEND    
MOV     R6,#92H                  ;ALARM
LCALL     SEND
LCALL     IICSTOP
LCALL     IICSTART
MOV             R6,#64H                ;发送时钟SD2400的器件地址(写)
LCALL          SEND
MOV             R6,#0EH                ;设置时钟数据的内部起始地址为0E
LCALL          SEND           
MOV     R6,#06H                   ;报警允许小时,分钟
LCALL         SEND
LCALL   IICSTOP              
LCALL   IICSTART
MOV             R6,#64H                 ;发送时钟SD2400的器件地址(写)
LCALL          SEND
MOV             R6,#08H                 ;设置分钟报警地址
LCALL          SEND           
MOV    R6,#30H                     ;MINUTE
LCALL        SEND
MOV     R6,#06H                   ;HOUR
LCALL        SEND   
LCALL   IICSTOP  
LCALL         TIMEWRITE_OFF

  ●结语 

  SD2403AP是一款实时时钟芯片,在此智能路灯控制器中发挥着重要的作用。其芯片可以广泛用于消费和工业领域的诸多平台,如电子式电力测量仪(数字式电力表)、数码相机、数码摄像机、游戏机、DVD录像机、便携电话等产品

 

     
[1]  沙占友,王彦朋,孟志永,单片机外围电路设计,电子工业出版社,2003.1
[2]  SD2403APIDATASHEET,深圳兴威帆电子技术有限公司,2008

晶振相关文章:晶振原理
上拉电阻相关文章:上拉电阻原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭