• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    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.czjhyjcfj.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 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 巍山| 根河市| 济南市| 湘乡市| 泰兴市| 泸水县| 九龙县| 定边县| 峡江县| 内江市| 南郑县| 林西县| 景宁| 大邑县| 贵州省| 廉江市| 根河市| 旬阳县| 元阳县| 塔河县| 隆子县| 民乐县| 柏乡县| 宁陵县| 中江县| 邹城市| 枝江市| 清镇市| 保靖县| 且末县| 秦皇岛市| 眉山市| 潞西市| 曲沃县| 渝中区| 邻水| 墨玉县| 长子县| 万源市| 汝州市| 枝江市|