新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 高精度RTC SD2403AP在智能路燈控制器上的運(yùn)用

        高精度RTC SD2403AP在智能路燈控制器上的運(yùn)用

        作者: 時間:2008-11-06 來源: 收藏

          時間報警允許寄存器的使能位是用于確定哪些時間報警寄存器(秒、分鐘等)需要與寄存器之間作比較。當(dāng)運(yùn)行時,一旦被允許的報警寄存器均與對應(yīng)的寄存器相匹配,就會觸發(fā)一次報警中斷,同時報警中斷標(biāo)志位INTAF位被置”1”

          當(dāng)設(shè)置 INTS1=0、INTS0=1時,即允許報警中斷從INT腳輸出。該報警中斷有兩種模式,即單事件報警和周期性報警, 模式的選定由控制寄存器2中的報警中斷模式位IM的值來定:
         
          IM=0 ,單事件報警,輸出低電平直至INTAF位清零 

          IM=1 ,周期性報警,輸出低電平有效、寬度為250MS的周期性脈沖直至INTAF位清零
        為清除報警中斷,可通過寫操作將控制寄存器1的INTAF位置”0”。但當(dāng)ARST位置為”1”,則在控制寄存器1被讀取時,INTAF位會自動清零。

        本文引用地址:http://www.104case.com/article/89282.htm

          ●智能路燈控制器設(shè)計(jì) 

          本文采用大家使用普遍ATMEL89C51單片機(jī)做主控芯片。通過對時間的調(diào)用配合光感信號達(dá)到對路燈的開關(guān)智能控制,該系統(tǒng)可廣泛應(yīng)用于道路燈、霓虹燈、航標(biāo)燈、夜景燈、高速公路照明燈、庭院燈及所有室外照明燈具的控制,其系統(tǒng)框圖如下 

           

           硬件設(shè)計(jì)

               圖中,主要給出SD2403AP的具體接線電路,OUT為各位的控制信號。可接三極管后放大給繼電器輸出,從而控制路燈的開關(guān)。 

           在此設(shè)計(jì)中MCU通過P3.4,P3.5模擬IIC總線與SD2403AP進(jìn)行通信,并通過INT讀出中斷信號,本設(shè)計(jì)設(shè)置的每天早上6:30(此時間可以由用戶通過KEY鍵進(jìn)行修改)定時關(guān)掉OUT1路的輸出。OUT2,OUT3等由光線控制?,F(xiàn)以O(shè)UT1的關(guān)斷做例子分析

          軟件設(shè)計(jì) 

          安排SD2403AP在06:30輸出一個低電平的信號,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

        小時

        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

        時間調(diào)整

        0

        F6

        F5

        F4

        F3

        F2

        F1

        F0

        N/A

        13H

        倒計(jì)時定時器

        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里面的數(shù)值,為BCD碼。 

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

          本設(shè)計(jì)設(shè)置的中斷涉及的寄存器有08H,09H,EH,F(xiàn)H,10H

          部分軟件如下:

        1. 打開“軟鎖”,即設(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ù)據(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ā)送時鐘SD2400的器件地址(寫)
        LCALL   SEND
        MOV     R6,#0FH            ;設(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ā)送一個字節(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輸出一個低電平
        LCALL         TIMEWRITE_ON
        LCALL     IICSTART
        MOV             R6,#64H                ;發(fā)送時鐘SD2400的器件地址(寫)
        LCALL          SEND
        MOV             R6,#10H                ;設(shè)置時鐘數(shù)據(jù)的內(nèi)部起始地址為10H
        LCALL          SEND    
        MOV     R6,#92H                  ;ALARM
        LCALL     SEND
        LCALL     IICSTOP
        LCALL     IICSTART
        MOV             R6,#64H                ;發(fā)送時鐘SD2400的器件地址(寫)
        LCALL          SEND
        MOV             R6,#0EH                ;設(shè)置時鐘數(shù)據(jù)的內(nèi)部起始地址為0E
        LCALL          SEND           
        MOV     R6,#06H                   ;報警允許小時,分鐘
        LCALL         SEND
        LCALL   IICSTOP              
        LCALL   IICSTART
        MOV             R6,#64H                 ;發(fā)送時鐘SD2400的器件地址(寫)
        LCALL          SEND
        MOV             R6,#08H                 ;設(shè)置分鐘報警地址
        LCALL          SEND           
        MOV    R6,#30H                     ;MINUTE
        LCALL        SEND
        MOV     R6,#06H                   ;HOUR
        LCALL        SEND   
        LCALL   IICSTOP  
        LCALL         TIMEWRITE_OFF

          ●結(jié)語 

          SD2403AP是一款實(shí)時時鐘芯片,在此智能路燈控制器中發(fā)揮著重要的作用。其芯片可以廣泛用于消費(fèi)和工業(yè)領(lǐng)域的諸多平臺,如電子式電力測量儀(數(shù)字式電力表)、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、游戲機(jī)、DVD錄像機(jī)、便攜電話等產(chǎn)品

         

              獻(xiàn)
        [1]  沙占友,王彥朋,孟志永,單片機(jī)外圍電路設(shè)計(jì),電子工業(yè)出版社,2003.1
        [2]  SD2403APIDATASHEET,深圳興威帆電子技術(shù)有限公司,2008

        晶振相關(guān)文章:晶振原理
        上拉電阻相關(guān)文章:上拉電阻原理

        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 秦安县| 襄汾县| 武安市| 泰安市| 勃利县| 汝城县| 太仓市| 雅江县| 哈密市| 荆门市| 双峰县| 昭觉县| 江川县| 镇坪县| 同仁县| 青铜峡市| 岗巴县| 鹤庆县| 黄石市| 吉水县| 长治县| 太仆寺旗| 当涂县| 囊谦县| 靖边县| 咸丰县| 大宁县| 富宁县| 富阳市| 秀山| 合肥市| 柯坪县| 浮山县| 临桂县| 宝鸡市| 阿拉善右旗| 红河县| 西宁市| 离岛区| 西藏| 九龙城区|