单片机系统设计与应用实例 教学课件 作者 韩志军 主编 第十章.pptVIP

单片机系统设计与应用实例 教学课件 作者 韩志军 主编 第十章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. 器件地址格式与读写命令 表格 2.DS1307的两种工作模式 (1) DS1307写模式 串行数据和时钟数据可通过SDA和SCL接收。 (2) DS1307读模式 在从机传送模式下,数据传送方向将改变。 五、DS1307的编程 1. 起始信号START子程序 2.停止信号STOP子程序 3.发送应答位信号ACK子程序 4.发送非应答位信号NAK子程序 5.向DS1307发送一个字节数据子程序 6. 从DS1307读一个字节数据子程序 7.读当前时间子程序 8. 调整当前时间子程序 9.启动DS1307内部振荡器工作子程序 10.设置SQW 1. 起始信号START子程序 在起始信号定时中,对于一个新的起始信号要求起始前总线的空闲时间大于4.7μs,而对于一个重复开始的起始信号,要求信号建立时间也需大于4.7μs,产生起始信号到第一个时钟脉冲的时间间隔应大于4.0μs。 START:SETB SDA ;启动I2C总线 SETBSCL NOP NOP CLRSDA NOP NOP CLRSCL RET 2.停止信号STOP子程序 在停止信号定时中,要保证有大于4μs的信号建立时间,停止信号结束时,释放I2C总线。SDA、SCL应维持在高电平上,在大于4.7μs后才可以开始另一次启动。但在单主系统中,为了防止非正常传送,停止信号后SCL可设置在低电平上。 STOP:CLRSDA;停止I2C总线数据传送 SETBSCL NOP NOP SETBSDA NOP NOP CLRSCL RET 3.发送应答位信号ACK子程序 对于发送应答位、非应答位来说,与发送数据“0”、“1”的信号的时间要求完全相同,在SCL时钟高电平期间,SDA线上有确定的电平状态,即低电平或高电平状态。 ACK:CLRSDA;发送应答位 SETBSCL NOP NOP CLRSCL SETBSDA RET 4.发送非应答位信号NAK子程序 NAK:SETBSDA;发送非应答位 SETBSCL NOP NOP CLRSCL CLRSDA RET 5.向DS1307发送一个字节数据子程序 W—8BIT:MOV  B,#08H;B寄存器为循环计数器 W—BIT:RLCA ;要发送位移入进位位 MOVSDA,C ;发送位送到数据线SDA上 NOP NOP SETBSCL;将时钟置为高电平 NOP NOP NOP CLRSCL;将时钟置为低电平 6. 从DS1307读一个字节数据子程序 R—8BIT:SETBSDA NOP NOP MOVA,#0;A寄存器清零 MOVB,#8;B寄存器为循环计数器 R—BIT:NOP NOP SETBSCL;将时钟置为高电平 NOP NOP MOVC,SDA ;从SDA线上读入一位数据到C进位位 RLCA;读入一位数据移入A寄存器 CLRSCL;将时钟置为低电平 NOP 7.读当前时间子程序 READ:MOVR0,#28H;读入数据缓冲区的首地址28H送R0寄存器 MOVR1,22H MOVR6,23H LCALLSTART;调START子程序 JCR—ED1 MOVA,#0D0H LCALLW—8BIT;发送器件寻址与写命令 JCR—ED MOVA,#00;发送器件字节地址 LCALLW—8BIT JCR—ED LCALLSTART;调START子程序 8. 调整当前时间子程序 WRITE:SETBSCL SETBSDA LCALLSTART JCW—ED1 MOVA,#0D0H LCALLW—8BIT JCW—ED MOVA,#00H LCALLW—8BIT JCW—ED 9.启动DS1307内部振荡器工作子程序 OSC—Q:LCALLSTART;START MOVA,#DS1307W;发DS1307写命令 LCALLWRITE MOVA,#00H;发DS1307地址 LCALLWRITE LCALLSTOP;STOP LCALLSTART;START MOVA,#DS1307R;发DS1307读命令 LCALLWRITE LCALLREAD;读一个字节 CLRACC.7 ;bit7=0 JNBOSC,OSC—SET 10.设置SQW SQW—1HZ:LCALLSTART;START MOVA,#DS1307W;DS1307W LCALLWRITE MOVA,#07H;DS1307内部寄存器07H地址 LCALLWRITE MOVA,#90H;07H寄存器控制字=90 JNBSQW,SQW—SET MOVA,#80H SQW—SET: LCALLWRITE LCALLSTOP RET 一、 定时控制器程序设计的内存空间分配 二、程序清单 一、 定时控制器程序设计的内存空间分配 表10-2 内存地址空间的分配 二、程序

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档