时钟芯片DS1302汇编程序

发布者:chenxiaohong68最新更新时间:2017-12-05 来源: eefocus关键字:时钟芯片  DS1302  汇编程序 手机看文章 扫描二维码
随时随地手机看文章

    include  

     CBLOCK 20H 
     SEC      ;秒 
     MIN      ;分 

     HOU      ;小时 
     DATE     ;日期 
     MON      ;月 
    DAY      ;日 
     YERR     ;年 
     DDD      ;写使能位 
     TIME_TX ;1302发送寄存器 
     TIME_RX ;1302接收寄存器 
     COUNT1     ; 
     COUNT2     ; 
     DELAY1 
     DELAY2 
     ENDC 

;================================= 
;1302子程序说明 
; DS1302INI     ;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 

;====================================== 
    ORG      00H 
     NOP 
     GOTO     MAIN 
MAIN  
     CALL      CLR_RAM     ;清除RAN 
     CALL     PORT_INI      ;端口定义 
     CALL     DS1302_INI 
     CALL     SET_TIME     ; 一次写入7个时间数据 
     CALL     GET_TIME     ; 一次读回7个时间数据 
     GOTO     $ 


;写入秒,可以写任意的7个时间数据,单字节 
     MOVLW     B’10000000’ 
     MOVWF     TIME_TX 
     BSF      RST 
     CALL     CMD 
     MOVLW     B’00100101’ 
     MOVWF     TIME_TX 
     CALL     CMD 
     BCF      RST 

;读秒,可以读任意7个时间,单字节 
     MOVLW     B’10000001’ 
     MOVWF     TIME_TX 
     BSF      RST 
     CALL     CMD 
      CALL     TIME_READ_1 
     BCF      RST     
    GOTO     $ 

;************************************************** 
; DS1302_INI:子程序 
; 作用:初始化1302,先禁止RST,允许写使能 
;************************************************** 
DS1302_INI 
     BCF      SCLK 
     BCF      RST           ;先禁止 
     MOVLW     B’10001110’     ;写使能寄存器 
     MOVWF     TIME_TX 
     BSF      RST 
     CALL     CMD 
     MOVLW     B’0’          ;允许写使能 
     MOVWF     TIME_TX 
     CALL     CMD        ;发送一个字节的数据 
     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     CMD 
    ;TIME_WRITE_8       ;发送8个数据 
     MOVLW     TX_ADD  ;//发送数据的起始地址 
     MOVWF     FSR 
     MOVLW     D’8’ 
     MOVWF     COUNT2 
TW1 
     MOVF     INDF,W 
     MOVWF     TIME_TX 
     CALL     CMD 
     INCF     FSR,F 
     DECFSZ     COUNT2,F 
     GOTO     TW1 
     BCF      RST 
     RETURN  

;*********************************************** 
; GET_TIME   
; 作用:一次接受7个字节的时间数据,突发模式读取 
; INPUT:NONE 
; OUTPUT:把7个时间数据保存在TIME_RX_ADD开始的7个寄存器里面 
;*********************************************** 
GET_TIME     
        MOVLW     B’10111111’ 
     MOVWF     TIME_TX 
     BSF      RST 
     CALL     CMD 
    ;TIME_READ_7           ;接收7个数据 
     MOVLW     RX_ADD      ;保存数据的起始地址 
     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 
; 作用:一次发送一个字节的数据,用于发送1302的 
; 控制字或者发送一个数据 
; INPUT: TIME_TX 
;************************************************ 
CMD 
     MOVLW D’8’ 
     MOVWF 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一个字节的数据 
; INPUT: NONE 
; OUTPUT:接收数据保存在TIME_RX里面 
; 原理:在SCLK下降沿接收数据,低字节在前,根据I_O的 
;    的电平的高低,采取带进位和不带进位右移. 
;*********************************************** 
TIME_READ_1 
     BANK1 
     BSF      TRISC,7     ;I_O  IS INPUT 
     BANK0 
     MOVLW     D’8’ 
     MOVWF     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      TRISC,7     ;OUTPUT 
     BANK0 
     BCF      SCLK         ;恢复 
     RETURN 

;====================================== 
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个 
      RETURN 
;========================== 
     END 


关键字:时钟芯片  DS1302  汇编程序 引用地址:时钟芯片DS1302汇编程序

上一篇:pic16f627键盘显示+E2PROM存取+模拟I2C总线通信等模块
下一篇:pic16c711测温程序

推荐阅读最新更新时间:2024-03-16 15:48

时钟芯片DS1302及其在数据记录中的应用
    摘 要: 介绍了美国DALLAS公司推出的低功耗时钟芯片DS1302的结构和工作原理及其在测量系统中的应用。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。     关键词: 数据记录 时钟芯片DS1302 硬件电路 软件设计     在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常
[半导体设计/制造]
时钟芯片DS1302 8位数码管显示
;8位 数码管 显示 ;P0 为段码口、P2 为位码口 ;时钟芯片:DS1302 ;-------------------------------------- DS1302 端口位定义: IO_DATA → P1.1 ; 数据传送总线 SCLK → P1.0 ; 时钟控制总线 RST → P1.2 ; 复位总线 ;--------------------------------------- 24C04 端口位定义: SDA → P3.6 ;24C01的串行数据线 SCLK → P3.7 ;24C01的串行时钟线 ;--------------------------------------- K
[单片机]
时钟芯片在电压监测仪校验装置中的应用
  引言   电压监测统计仪是一种在线监测电网电压质量、统计每分钟瞬时电压、每分钟最大电压、每分钟最小电压以及平均电压、电压合格率、电压超上限率、电压超下限率等功能的仪表。从以上功能可得出,电压监测统计仪除了测量电压精度这一因素外,还有一重要因素就是时间的准确性。利用PCF8583串行时钟芯片成功的应用在电压监测仪校验装置中,既实现了电压的可程控信号输出,从而可测量电压监测统计仪的电压精度指标,又实现了一个标准时钟,从而可对电压监测统计仪的时间进行比对,实现校准。   1、PCF8583的基本功能特点   PCF8583是飞利浦公司推出的I2C总线接口实时时钟芯片,它可独立于CPU工作,不受CPU主晶振及共电容的影响,且计时
[测试测量]
<font color='red'>时钟芯片</font>在电压监测仪校验装置中的应用
时钟芯片DS1302+AT89C2051的红外遥控LED电子钟电路设计与制作
自制LED电子钟在很多电子报刊杂志上都可以见到,但大多数在断电后都要重新设置时间等参数,给使用带来很多不便。也有用后备电池作为备用电源的,但往往体积较大。本文介绍的LED电子钟克服了以往的弊端,而且采用了家电通用的红外遥控器进行控制,方便使用。有一路闹铃输出,可以通过遥控器设置闹铃时间及允许与否。 一.工作原理 DS1302为达拉斯公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768 Hz 晶振 。 AT89C2051作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1302中的时间并把小时和肥
[单片机]
<font color='red'>时钟芯片</font><font color='red'>DS1302</font>+AT89C2051的红外遥控LED电子钟电路设计与制作
DS12887时钟芯片及其在LED中的应用
    摘要: 文中介绍了DS12887时钟芯片的内部框图和引脚功能,结合实际电路分析了DS12887在LED显示屏中的应用、与80196KB显示芯片的联接方法和编程方法。     关键词: 时钟芯片 LED显示 DS12887是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日将从19递增到20。 采用DS12887芯片设计的时钟电路无需任何外围电路和器件,
[应用]
AVR单片机的DS1302操作程序
变成浪子 //mega16 7.3728MHz石英晶体 iccavr6.31a //相关定义: #define uint unsigned int #define uchar unsigned char #define DS1302_RST 0 //pc0 #define DS1302_SDA 1 //pc1 #define DS1302_SCLK 6 //pc6 //ds1302相关 //DS1302_RST=1 #define Set_DS1302_RST() PORTC|=1 //DS1302_RST=0 #define Clr_DS1302_RST() PORTC&=~(1 //DS1302_SDA=1 #define S
[单片机]
基于51单片机的多功能电子时钟设计
设计任务: 1、设计任务:利用单片机、时钟芯片 DS1302、温度传感器 DS18B20、1602 液晶 等实现日期、时间、温度的显示即一个简单的万年历。 2、设计要求 (1)通过 DS1302 能够准确的计时,时间可调并在液晶上显示出来。 (2)通过 DS18B20 能够实时、准确的检测当前环境温度。 (3)利用单片机自身功能实现闹钟 总体方案论证与设计 总体方案论证与设计 本系统以 AT89S52 单片机为控制核心,通过与 DS1302 和 DS18B20 通信获取实时时间和实时环境温度,并将得到的数据通过 1602 液晶 显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一 下模块:显示模块、实时时间计算模块、实
[单片机]
基于51单片机的多功能电子时钟设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved