PIC单片机读写时钟芯片DS1302汇编程序

上传人:宝路 文档编号:2752618 上传时间:2017-07-27 格式:DOC 页数:6 大小:41KB
返回 下载 相关 举报
PIC单片机读写时钟芯片DS1302汇编程序_第1页
第1页 / 共6页
PIC单片机读写时钟芯片DS1302汇编程序_第2页
第2页 / 共6页
PIC单片机读写时钟芯片DS1302汇编程序_第3页
第3页 / 共6页
PIC单片机读写时钟芯片DS1302汇编程序_第4页
第4页 / 共6页
PIC单片机读写时钟芯片DS1302汇编程序_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《PIC单片机读写时钟芯片DS1302汇编程序》由会员分享,可在线阅读,更多相关《PIC单片机读写时钟芯片DS1302汇编程序(6页珍藏版)》请在金锄头文库上搜索。

1、#INCLUDECBLOCK 20HSEC ;秒MIN ;分HOU ;小时DATE ;日期MON ;月DAY ;日YERR ;年DDD ;写使能位TIME_TX ;1302 发送寄存器TIME_RX ;1302接收寄存器COUNT1 ;COUNT2 ;DELAY1DELAY2ENDC*; ; 1302 子程序说明; ;*; DS1302INI ;1302初始化,先禁止 RST,设定充电方式; SET_TIME ;一次发送 7个数据设定时间,包含写使能寄存器,8 个数据; GET_TIME ;一次接收 7 个数据显示时间; TIME_WRITE_1;一次写 入 1302一个字节; TIME_RE

2、AD_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 MACROBSF STATUS,RP0ENDMBANK0 MACROBCF STATUS,RP0ENDM ORG 000HNOPGOTO MAINMAINCALL CLR_RAM 清除 RANCALL PORT_IN

3、I 端口定义CALL DS1302_INICALL SET_TIME 一次写 入 7 个时间数据CALL GET_TIME ; 一次读回 7 个时间数据GOTO $; 写入秒,可以写任意的 7 个时间数据,单字节MOVLW B10000000MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1MOVLW B00100101MOVWF TIME_TXCALL TIME_WRITE_1BCF RST读秒,可以读任意 7 个时间,单字节MOVLW B10000001MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1CALL TIME_READ_1BCF

4、RSTGOTO $:子程序*; DS1302_INI; 作用:初始化 1302,先禁止 RST,允许写使能;*DS1302_INIBCF SCLKBCF RST ;先禁止MOVLW B10001110 ;写使能寄存器MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1MOVLW B0 ;允许写使能MOVWF TIME_TXCALL TIME_WRITE_1;发送一个字节的数据BCF RST;设定充电方式没有设定RETURN;*; SET_TIME; 作用:一次输入 7 个数据来一次性的设定时间, 同时使能写寄存器; 突发模式写入,必须写入 8 个数据,不是 7个; INP

5、UT:要设定的 8个数据已经写入到 TIME_TX_ADD 开始的 8 个字节里面;*SET_TIMEMOVLW B10111110 ;标志位MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1;TIME_WRITE_8 ;发送8 个数据MOVLW TIME_TX_ADD ;发送数据的起始地址MOVWF FSRMOVLW D8MOVWF COUNT2TW1MOVF INDF,WMOVWF TIME_TXCALL TIME_WRITE_1INCF FSR,FDECFSZ COUNT2,FGOTO TW1BCF RSTRETURN;*; GET_TIME; 作用:一次接受 7

6、 个字节的时间数据,突发模式 读取; INPUT:NONE; OUTPUT:把 7 个时间数据保存在TIME_RX_ADD 开始的 7个寄存器里面;*GET_TIMEMOVLW B10111111MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1;TIME_READ_7 ;接收 7个数据MOVLW TIME_RX_ADD ;保存数据的起始地址MOVWF FSRMOVLW D7MOVWF COUNT2TR2CALL TIME_READ_1MOVF TIME_RX,WMOVWF INDFINCF FSR,FDECFSZ COUNT2,FGOTO TR2BCF RSTRETU

7、RN;*; TIME_WRITE_1; 作用:一次发送一个字节的数据,用于发送 1302的; 控制字或者发送一个数据; INPUT: TIME_TX;*TIME_WRITE_1MOVLW D8MOVWF COUNT1TLOPBCF I_O ;初始值是低电平BCF SCLKBTFSC TIME_TX,0BSF I_ORRF TIME_TX,FBSF SCLK ;高电平发送数据DECFSZ COUNT1,FGOTO TLOPBCF SCLK ;恢复RETURN;*; TIME_READ_1; 作用:读取 1302 一个字节的数据; INPUT: NONE; OUTPUT:接收数据保存在 TIME_

8、RX 里面; 原理:在 SCLK 下降沿接收数据,低字节在前,根据 I_O的; 的电平的高低,采取带进位和不带进位右移.;*TIME_READ_1BANK1BSF TRISC,7 ;I_O IS INPUTBANK0MOVLW D8MOVWF COUNT1 ;读取 8 个字节TR1BCF SCLK ;下降沿读取BCF STATUS,CBTFSC I_OBSF STATUS,CRRF TIME_RX,FBSF SCLK ;恢复高电平DECFSZ COUNT1,FGOTO TR1BANK1BCF TRISC,7 ;OUTPUTBANK0BCF SCLK ;恢复RETURNNOPPORT_INIBA

9、NK1MOVLW B00000000MOVWF TRISCMOVLW B0MOVWF TRISBMOVLW B00000111MOVWF ADCON1MOVLW B00000000MOVWF TRISABANK0MOVLW 18HMOVWF 20HMOVLW 19HMOVWF 21HMOVLW 05HMOVWF 22HMOVLW 13HMOVWF 23HMOVLW 14HMOVWF 24HMOVLW 15HMOVWF 25HMOVLW 16HMOVWF 26HRETURNCLR_RAMMOVLW 20HMOVWF FSRLOOPCLRF INDFINCF FSR,FBTFSS FSR,7GOTO LOOP ;清除 32个RETURNEND

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号