新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)控制時(shí)鐘芯片DS1302匯編程序

        PIC單片機(jī)控制時(shí)鐘芯片DS1302匯編程序

        作者: 時(shí)間:2011-05-28 來(lái)源:網(wǎng)絡(luò) 收藏

        TW1
        MOVF INDF,W
        MOVWF TIME_TX
        CALL TIME_WRITE_1
        INCF FSR,F
        DECFSZ COUNT2,F
        GOTO TW1
        BCF RST
        RETURN
        ;***********************************************
        ; GET_TIME
        ; 作用:一次接受7個(gè)字節(jié)的時(shí)間數(shù)據(jù),突發(fā)模式讀取
        ; INPUT:NONE
        ; OUTPUT:把7個(gè)時(shí)間數(shù)據(jù)保存在TIME_RX_ADD開(kāi)始的7個(gè)寄存器里面
        ;***********************************************
        GET_TIME
        MOVLW B'10111111'
        MOVWF TIME_TX
        BSF RST
        CALL TIME_WRITE_1
        ;TIME_READ_7 ;接收7個(gè)數(shù)據(jù)
        MOVLW TIME_RX_ADD ;保存數(shù)據(jù)的起始地址
        MOVWF FSR
        MOVLW D'7'
        MOVWF COUNT2
        TR2
        CALL TIME_READ_1
        MOVF TIME_RX,W
        MOVWF INDF
        INCF FSR,F
        DECFSZ COUNT2,F
        GOTO TR2
        BCF RST
        RETURN
        ;************************************************
        ; TIME_WRITE_1
        ; 作用:一次發(fā)送一個(gè)字節(jié)的數(shù)據(jù),用于發(fā)送1302的
        ; 字或者發(fā)送一個(gè)數(shù)據(jù)
        ; INPUT: TIME_TX
        ;************************************************
        TIME_WRITE_1
        MOVLW D'8'
        MOVWF COUNT1
        TLOP
        BCF I_O ;初始值是低電平
        BCF SCLK
        BTFSC TIME_TX,0
        BSF I_O
        RRF TIME_TX,F
        BSF SCLK ;高電平發(fā)送數(shù)據(jù)
        DECFSZ COUNT1,F
        GOTO TLOP
        BCF SCLK ;恢復(fù)
        RETURN
        ;************************************************
        ; TIME_READ_1
        ; 作用:讀取1302一個(gè)字節(jié)的數(shù)據(jù)
        ; INPUT: NONE
        ; OUTPUT:接收數(shù)據(jù)保存在TIME_RX里面
        ; 原理:在SCLK下降沿接收數(shù)據(jù),低字節(jié)在前,根據(jù)I_O的
        ; 的電平的高低,采取帶進(jìn)位和不帶進(jìn)位右移.
        ;***********************************************
        TIME_READ_1
        BANK1
        BSF TRISC,7 ;I_O IS INPUT
        BANK0
        MOVLW D'8'
        MOVWF COUNT1 ;讀取8個(gè)字節(jié)
        TR1
        BCF SCLK ;下降沿讀取
        BCF STATUS,C
        BTFSC I_O
        BSF STATUS,C
        RRF TIME_RX,F
        BSF SCLK ;恢復(fù)高電平
        DECFSZ COUNT1,F
        GOTO TR1
        BANK1
        BCF TRISC,7 ;OUTPUT
        BANK0
        BCF SCLK ;恢復(fù)
        RETURN
        NOP

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

         

        PORT_INI
        BANK1
        MOVLW B'00000000'
        MOVWF TRISC
        MOVLW B'0'
        MOVWF TRISB
        MOVLW B'00000111'
        MOVWF ADCON1
        MOVLW B'00000000'
        MOVWF TRISA
        BANK0
        MOVLW 18H
        MOVWF 20H
        MOVLW 19H
        MOVWF 21H
        MOVLW 05H
        MOVWF 22H
        MOVLW 13H
        MOVWF 23H
        MOVLW 14H
        MOVWF 24H
        MOVLW 15H
        MOVWF 25H
        MOVLW 16H
        MOVWF 26H
        RETURN
        CLR_RAM
        MOVLW 20H
        MOVWF FSR
        LOOP
        CLRF INDF
        INCF FSR,F
        BTFSS FSR,7
        GOTO LOOP ;清除32個(gè)
        RETURN
        END


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 象山县| 曲靖市| 房产| 万宁市| 太保市| 贵州省| 敦煌市| 柳河县| 明溪县| 内黄县| 东安县| 上林县| 咸丰县| 沙洋县| 固始县| 内黄县| 淮安市| 军事| 海南省| 兴山县| 黔东| 屏山县| 安仁县| 屯留县| 镇康县| 安化县| 油尖旺区| 彭山县| 朝阳区| 潜江市| 临洮县| 安吉县| 鹤峰县| 富平县| 永济市| 台前县| 重庆市| 柯坪县| 邯郸县| 辽阳市| 临朐县|