您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机pic 时钟芯片DS1302 正文
pic 时钟芯片DS1302

pic 时钟芯片DS1302

点击数:7629 次   录入时间:03-04 11:47:25   整理:http://www.55dianzi.com   PIC单片机
; DS1302_INI
; 作用:初始化1302,写使能寄存器
;********************************************************
;入口参数:无
;出口参数:TIME_TX
DS1302_INI
 BCF SCLK
 BCF RST                            ;先禁止
  MOV LW B’10001110’                  ;写使能寄存器
  MOV WF TIME_TX
 BSF RST                            ;允许1302工作
 CALL TIME_WRITE_1                  ;调用写一个数据程序
  MOV LW 0H                           ;允许写使能
  MOV WF TIME_TX
 CALL TIME_WRITE_1                  ;发送一个字节的数据
 BCF RST
 RETURN

;***********************写时间程序*************************
; SET_TIME
; 作用:一次输入7个数据来一次性的设定时间,同时使能写寄存器
; 突发模式写入,必须写入8个数据,不是7个
; INPUT:要设定的8个数据已经写入到TIME_TX_ADD开始的8个字节里面
;********************************************************
;入口参数:20H--27H的8个RAM单元
SET_TIME
  MOV LW B’10111110’                 ;多字节写方式
  MOV WF TIME_TX
 BSF RST
 CALL TIME_WRITE_1                 
  MOV LW TIME_TX_ADD                 ;发送数据的起始地址
  MOV WF FSR
  MOV LW D’8’                        ;一起发送8个数据
  MOV WF COUNT2
TW1
  MOV F INDF,W
  MOV WF TIME_TX
 CALL TIME_WRITE_1
 INCF FSR,F
 DECFSZ COUNT2,F
 GOTO TW1
 BCF RST
 RETURN

;**********************读时间程序*************************
; GET_TIME
; 作用:一次接受7个字节的时间数据,突发模式读取
; INPUT:NONE
; OUTPUT:把7个时间数据保存在TIME_RX_ADD开始的7个寄存器里面
;*********************************************************
;入口参数:无
;出口参数:20H--26H的7个RAM单元
GET_TIME
  MOV LW B’10111111’                ;多字接读取方式
  MOV WF TIME_TX
 BSF RST
 CALL TIME_WRITE_1
  MOV LW TIME_RX_ADD                ;保存数据的起始地址
  MOV WF FSR
  MOV LW D’7’                       ;连续读取7个数据
  MOV WF COUNT2
TR2
 CALL TIME_READ_1
  MOV F TIME_RX,W
  MOV WF INDF
 INCF FSR,F
 DECFSZ COUNT2,F
 GOTO TR2
 BCF RST
 RETURN

;**********************写一个字节程序*****************
; TIME_WRITE_1
; 作用:一次发送一个字节的数据,用于发送1302的
; 控制字或者发送一个数据
;************************************************
;入口参数:TIME_TX
;出口参数:无
TIME_WRITE_1
  MOV LW D’8’                      ;8位
  MOV WF COUNT1
TLOP
 BCF I_O                         ;初始值是低电平
 BCF SCLK
 BTFSC TIME_TX,0
 BSF I_O
 RRF TIME_TX,F
 BSF SCLK                        ;上升沿发送数据
 DECFSZ COUNT1,F
 GOTO TLOP
 BCF SCLK                        ;恢复
 RETURN

;******************读取一字节程序*********************
; TIME_READ_1
; 作用:读取1302一个字节的数据
; 原理:在SCLK下降沿接收数据,低字节在前,根据I_O的
; 的电平的高低,采取带进位和不带进位右移.
;***********************************************
;入口参数:无
;出口参数:TIME_RX
TIME_READ_1
 BANK1
 BSF TRISB,4 ;                    I_O 设置为输入
 BANK0
  MOV LW D’8’
  MOV WF COUNT1                     ;读取8位
TR1
 BCF SCLK                         ;下降沿读取
 BCF STATUS,C
 BTFSC I_O
 BSF STATUS,C
 RRF TIME_RX,F
 BSF SCLK                         ;恢复高电平
 DECFSZ COUNT1,F
 GOTO TR1
 BANK1
 BCF TRISB,4                       ;I_O恢复为输出
 BANK0
 BCF SCLK 
 RETURN
 NOP

;******************端口/寄存器设置********************
PORT_INI
 BANK1
  MOV LW B’00000000’
  MOV WF TRISA                       ;A口输出
  MOV WF TRISD                       ;D口输出
  MOV LW 06H
  MOV WF ADCON1                      ;A口配置为普通数字I/O
  MOV LW B’00000010’ 
  MOV WF TRISB                       ;RB1口为输入,其他口为输出
 CLRF  OPTION_REG                  ;开启B口的弱上拉

上一页  [1] [2] [3]  下一页


本文关键字:暂无联系方式PIC单片机单片机-工控设备 - PIC单片机