时钟显示教程.docVIP

  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文档。上传文档
查看更多
时钟显示教程

实验 时钟显示程序实例 一、实验目的 通过完成使用单片机完成时钟显示,让同学们掌握PCF8563芯片控制的方法 二、实验设备及软件 PC机一台、语音实验板一套(实验板、电源)、Keil开发软件、STC下载软件 三、实验内容 1、学会新建工程、编译代码、下载程序的方法 2、读懂PCF8563 IIC总线通讯时序图 3、学会使用PCF8563制作万年历 四、程序功能 完成PCF8563时钟数据的读取,并在数码管上输出显示 五、实验操作 操作流程如下: 1、新建Keil C工程,Keil的图标在电脑的桌面上。点击菜单的Project-New u Vision Project… 图1 2、保存工程到自建文件夹,工程名任取。 3、选择器件型号,该型号需与同学们桌面上的单片机板型号一致,本次实验的单片机型号为:STC89C52系列单片机,我们可以选择与之具有同样功能的Ateml-AT89S52型号单片机,如下图3、4所示: 图3 图4 4、选择好器件型号后将弹出如下对话框,选择“是”将启动代码添加到工程中,如下图5、6所示: 图5 图6 5、建立新的文件,点击图7蓝色方框所示按钮 图7 6、往文件中输入单片机代码并保存,如下图8、9所示: 图8 图9 7、将刚才输入的.c文件添加到工程中进行编译,如下图10、11、12所示: 右击Source Group 1 图10 选择main.c ,单机“Add” 图11 图12 8.工程配置,点击图13蓝色方框按钮,在弹出的对话框中点击上方“Output”按钮,勾选“Create HEX File”选项,否则无法生成单片机要烧录的Hex文件,点击确定返回。操作如下图13、14所示 图13 图14 9.工程编译,点击图15蓝色方框按钮,进行工程编译,结果如图16,hex文件输出在工程文件夹下。 图15 图16 10. 利用STC下载工具将serial.hex单片机程序烧写到单片机内部,双击桌面上的STC-ISP V35.exe图标,如下图17所示: 图17 11、在STC下载界面中选择对应的MCU型号、串口,并导入所需要下载的.hex文件,点击下载,此时重新给单片机上电即可将程序下载到单片机中。如下图18、19所示 图18 图19 13.实验效果,在语音实验板数码管上显示从PCF8563时钟芯片读出的时间值(分、秒)。 14.PCF8563时钟芯片操作简介 实验板PCF8563电路原理图 IIC通讯协议 一次完整的通讯包括起动、数据传输、停止三个部分 1.起动、停止时序 总线不忙是,数据线和时钟线保持高电平。数据线在下降沿而时钟线为高电平时为起动条件(S),数据线在下降沿而时钟线为高电平时为停止条件(P) 起动时序图 起动时序程序代码: void start_8563(void)//启动8563 { sda_8563 = 1; scl_8563 = 1; sda_8563 = 0; } 停止时序图 停止时序程序代码 void stop_8563(void) //停止8563 { sda_8563 = 0; scl_8563 = 1; sda_8563 = 1; } 2.数据通讯时序 数据通讯时序图 写数据时序 在每个时钟脉冲上升沿传送一个数据位,主机控制的SDA线上的数据在时钟上升沿之前保持稳定 读数据时序 在每个时钟脉冲上升沿传送一个数据位,从机输出的SDA线上的数据在时钟上升沿之后保持稳定 写一个字节数据程序 void write_8563(uchar data_8563)//写一位数据8563 { uchar i; for(i=0;i8;i++) { scl_8563 = 0; if(data_85630x80) { sda_8563 = 1; } else sda_8563 = 0; scl_8563 = 1; //Delay_x10us(1); data_8563=1; scl_8563 = 0;//最后拉低电平完成一个完整脉冲(error) } sda_8563 = 1; scl_8563 = 1;//应答脉冲 scl_8563 = 0; } 读一个字节数据程序 uchar read_8563(void) //读一位数据8563 { uchar i,temp; for(i=0;i8;i++) { scl_8563 = 0; temp=1; scl_8563 = 1; if(sda_8563==1) { temp |= 0x01; } } sda_8563 = 1; scl_8563 = 0;//应答脉冲 scl_8563 = 1; scl

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档