- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PIC单片机控制时钟芯片DS1302汇编程序
PIC单片机控制时钟芯片DS1302汇编程序
#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_READ_1 ;一次接收一个字节数据; ;******* 1302定义**************; ;******************************#DEFINE I_O PORTC7 ;1302I_O#DEFINE SCLK PORTC6 ;1302时钟#DEFINE RST PORTA0 ;1302使能位#DEFINE RX_ADD 40H ;保存接受的7个数据#DEFINE TX_ADD 20H ;开始保存7个要写入的时间数据BANK1 MACROBSF STATUSRP0ENDMBANK0 MACROBCF STATUSRP0ENDM
ORG 000HNOPGOTO MAINMAIN
CALL CLR_RAM 清除RANCALL PORT_INI 端口定义CALL DS1302_INICALL SET_TIME 一次写入7个时间数据CALL GET_TIME ; 一次读回7个时间数据GOTO dollar
;; 写入秒,可以写任意的7个时间数据,单字节MOVLW BMOVWF TIME_TXBSF RSTCALL TIME_WRITE_1MOVLW BMOVWF TIME_TXCALL TIME_WRITE_1BCF RST
读秒,可以读任意7个时间,单字节
MOVLW BMOVWF TIME_TXBSF RSTCALL TIME_WRITE_1CALL TIME_READ_1BCF RST
GOTO dollar
:子程序
**************************************************; DS1302_INI; 作用:初始化1302,先禁止RST允许写使能;**************************************************DS1302_INIBCF SCLKBCF RST ;先禁止MOVLW B ;写使能寄存器MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1MOVLW B`0` ;允许写使能MOVWF TIME_TXCALL TIME_WRITE_1;发送一个字节的数据BCF RST
;设定充电方式
没有设定RETURN
;**************************************************; SET_TIME; 作用:一次输入7个数据来一次性的设定时间,同时使能写寄存器; 突发模式写入,必须写入8个数据,不是7个; INPUT:要设定的8个数据已经写入到TIME_TX_ADD开始的8个字节里面;**************************************************SET_TIMEMOVLW B ;标志位MOVWF TIME_TXBSF RSTCALL TIME_WRITE_1;TIME_WRITE_8 ;发送8个数据MOVLW TIME_TX_ADD ;发送数据的起始地址MOVWF FSRMOVLW D`8`MOVWF COUNT2
TW1MOVF INDFWMOVWF TIME_TXCALL TIME_WRITE_1INCF FSRFDECFSZ COUNT2FGOTO TW1BCF RSTRETURN;***********************************************; GET_TIME; 作用:一次接受7个字节的时间数据,突发模式读取; INPUT:NONE; OUTPUT:把7个时间
文档评论(0)