新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一線式時鐘芯片DS2417的原理與應用

        一線式時鐘芯片DS2417的原理與應用

        作者: 時間:2012-03-12 來源:網絡 收藏

        DAT EQU P1.0
        ........
        INIT:CLR EA
        INI10:SETB DAT
        MOV R2,#200
        INT11:CLR DAT
        DJNZ R2, INI11
        ;主機發復位脈沖持續3μs×200=600μs
        SETB DAT ;主機釋放總線,口線改為輸入
        MOV R2,#30
        INI12:DJNZ R2,INI12
        ;等待2μs×30=60μs
        CLR C
        ORL C,DAT
        ;;數據線變低(有存在脈沖)嗎?
        JC INI10 ;未準備好,重新初始化
        MOV R6,#80
        INT13:ORL C,DAT
        JC INI14;DS2417;數據線變高,初始化成功
        DJNZ R6, INI13
        ;數據線低電平可持續3μs×80=240μs
        SJMP INI10 ;初始化失敗,重來
        INI14:MOV R2,#240
        INI15:DJNZ R2,INI15
        ;DS2417;應答最少2μs×240=480μs
        RET
        ;---------------
        WRITE:CLR EA ;寫入的命令/數據字節在A中
        MOV R3,#8 ;循環8次,寫一個字節
        WR11:SETB DAT
        MOV R4,#8
        RRC A ;寫入位從A中移到CY
        CLR DAT
        WR12:DJNZ R4,WR12 ;等待16μs
        MOV DAT,C;命令字按位依次送給DS2417
        MOV R4, #20
        WR13:DJNZ R4, WR13 ;保證寫過程持續60μs
        DJNZ R3, WR11 ;未送完一個字節繼續
        SETB DAT
        RET
        ;----------------
        READ:CLR EA
        MOV R6,#8 ;循環8次,讀一個字節
        RD11:CLR DAT
        MOV R4,#4
        NOP ;低電平持續2μs
        SETB DAT ;口線設為輸入
        RD12:DJNZ R4,RD12 ;等待8μs
        MOV C,DAT ;主機按位依次讀入DS2417的數據
        RRC A ;讀取的數據移入A
        MOV R5,#30
        RD13:DJNZ R5,RD13 ;保證讀過程持續60μs
        DJNZ R6,RD11 ;讀完一個字節的數據,存入A中
        SETB DAT
        RET
        ;----------------

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 叶城县| 宁晋县| 尤溪县| 静乐县| 偏关县| 屏山县| 大名县| 芦溪县| 普兰县| 巴彦淖尔市| 夏河县| 固阳县| 鄱阳县| 海伦市| 河南省| 云霄县| 秭归县| 余干县| 饶河县| 榆树市| 宝坻区| 客服| 大城县| 元朗区| 湖南省| 怀宁县| 库尔勒市| 常宁市| 左权县| 施秉县| 乾安县| 南雄市| 阳高县| 石城县| 潮安县| 乌海市| 长岭县| 南城县| 阳信县| 民县| 宣恩县|