新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機控制時鐘芯片DS1302匯編程序

        PIC單片機控制時鐘芯片DS1302匯編程序

        作者: 時間:2011-05-28 來源:網絡 收藏

        #INCLUDE
        CBLOCK 20H
        SEC ;秒
        MIN ;分
        HOU ;小時
        DATE ;日期
        MON ;月
        DAY ;日
        YERR ;年
        DDD ;寫使能位
        TIME_TX ;1302發送寄存器
        TIME_RX ;1302接收寄存器
        COUNT1 ;
        COUNT2 ;
        DELAY1
        DELAY2
        ENDC
        *******************************
        ; ; 1302子說明
        ; ;******************************
        ; INI ;1302初始化,先禁止RST,設定充電方式
        ; SET_TIME ;一次發送7個數據設定時間,包含寫使能寄存器,8個數據
        ; GET_TIME ;一次接收7個數據顯示時間
        ; TIME_WRITE_1;一次寫入1302一個字節
        ; TIME_READ_1 ;一次接收一個字節數據
        ; ;******* 1302定義**************
        ; ;******************************
        #DEFINE I_O PORTC,7 ;1302I_O
        #DEFINE SCLK PORTC,6 ;1302
        #DEFINE RST PORTA,0 ;1302使能位
        #DEFINE RX_ADD 40H ;保存接受的7個數據
        #DEFINE TX_ADD 20H ;開始保存7個要寫入的時間數據
        BANK1 MACRO
        BSF STATUS,RP0
        ENDM
        BANK0 MACRO
        BCF STATUS,RP0
        ENDM

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

        ORG 000H
        NOP
        GOTO MAIN
        MAIN

        CALL CLR_RAM 清除RAN
        CALL PORT_INI 端口定義
        CALL _INI
        CALL SET_TIME 一次寫入7個時間數據
        CALL GET_TIME ; 一次讀回7個時間數據
        GOTO $


        ;; 寫入秒,可以寫任意的7個時間數據,單字節
        MOVLW B'10000000'
        MOVWF TIME_TX
        BSF RST
        CALL TIME_WRITE_1
        MOVLW B'00100101'
        MOVWF TIME_TX
        CALL TIME_WRITE_1
        BCF RST

        讀秒,可以讀任意7個時間,單字節


        MOVLW B'10000001'
        MOVWF TIME_TX
        BSF RST
        CALL TIME_WRITE_1
        CALL TIME_READ_1
        BCF RST

        GOTO $

        :子

        **************************************************
        ; _INI
        ; 作用:初始化1302,先禁止RST,允許寫使能
        ;**************************************************
        DS1302_INI
        BCF SCLK
        BCF RST ;先禁止
        MOVLW B'10001110' ;寫使能寄存器
        MOVWF TIME_TX
        BSF RST
        CALL TIME_WRITE_1
        MOVLW B'0' ;允許寫使能
        MOVWF TIME_TX
        CALL TIME_WRITE_1;發送一個字節的數據
        BCF RST

        ;設定充電方式

        沒有設定
        RETURN

        ;**************************************************
        ; SET_TIME
        ; 作用:一次輸入7個數據來一次性的設定時間,同時使能寫寄存器
        ; 突發模式寫入,必須寫入8個數據,不是7個
        ; INPUT:要設定的8個數據已經寫入到TIME_TX_ADD開始的8個字節里面
        ;**************************************************
        SET_TIME
        MOVLW B'10111110' ;標志位
        MOVWF TIME_TX
        BSF RST
        CALL TIME_WRITE_1
        ;TIME_WRITE_8 ;發送8個數據
        MOVLW TIME_TX_ADD ;發送數據的起始地址
        MOVWF FSR
        MOVLW D'8'
        MOVWF COUNT2


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜兴市| 阿荣旗| 高青县| 清镇市| 马山县| 满洲里市| 盈江县| 海盐县| 乐都县| 岢岚县| 韶关市| 青海省| 辉南县| 新绛县| 克山县| 杭州市| 山阴县| 玉树县| 绥德县| 湘阴县| 三明市| 呼和浩特市| 临猗县| 陕西省| 武城县| 太仆寺旗| 马公市| 张家界市| 衢州市| 阿坝县| 安吉县| 阿图什市| 吉首市| 海原县| 彝良县| 台东市| 肇州县| 嫩江县| 新民市| 扶沟县| 茶陵县|