通过红外设置时间的数字时钟-11页.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通过红外设置时间的数字时钟-11页

通过红外设置时间的数字时钟 2015-8-27 摘要 随着电子设计自动化技术和可编程逻辑器件的出现和飞速发展,在设计周期得到大大的缩短的同时系统成本也有了大幅度的降低,显然标准逻辑器件的组装已远不能满足这方面的要求。而Verilog HDL能提供高阶电路描述语言的方式,让复杂的电路可以通过Verilog HDL编辑器的电路合成方式,轻易而且快速的达到设计的规格。由于Verilog HDL电路描述语言能涵盖的范围相当广,能适用于各种不同阶层的设计工程师的需要,所以Verilog HDL电路设计毫无疑问的成为硬件设计工程师的必备工具。 本系统是用Verilog编写的通过红外设置时间的数字时钟。该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言Verilog HDL在Altera公司的Quartus Ⅱ软件上实现仿真。通过红外遥控器在数码管上设置时间以及年月日,确定后开始计时。 关键词:Verilog ,红外信号,计时器 目 录 第1章 绪 论 4 1.1 项目的背景和意义 4 1.3 项目的主要内容 错误!未定义书签。 1.4 项目的结构安排 5 第2章 设计方案 错误!未定义书签。 2.1各模块详细说明 7 2.1.1红外接收模块 7 2.1.2按键驱动模块 8 2.1.3 数码管显示模块 7 2.1.4 8563模块 第3章 实验结果与数据处理 10 结 论 错误!未定义书签。错误!未定义书签。 设计方案 2.1 I2c协议 发送到SDA线上的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位首先传输的是数据的最高位(MSB) 如果从机要完成一些其他功能后 (例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平迫使主机进入等待状态。当从机准备好接收下一个数据字节并释放时钟线SCL后,数据传输继续。 数据传输必须带响应。相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间,发送器释放SDA(线高)。在响应的时钟脉冲期间,接收器必须将SDA线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。当然必须考虑建立和保持时间。 当从机不能响应从机地址时(例如它正在执行一些实时函数不能接收或发送),从机必须使数据线保持高电平。主机然后产生一个停止条件终止传输或者产生重复起始条件开始新的传输。 如果从机接收器响应了从机地址但是在传输了一段时间后不能接收更多数据字节,主机必须再一次终止传输。这个情况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平 ,主机产生一个停止或重复起始条件 。 如果传输中有主机接收器,它必须过在从机不产生时钟的最后一个字节不产生一个响应,向从机发送器通知数据结束。从机发送器必须释放数据线,允许主机产生一个停止或重复起始条件。 2.2各模块详细说明 2.2.1总体设计RTL图 2.2.2红外接收模块 当按下遥控器的按键时,遥控器将发出如图1的一串二进制代码,称它为一帧数据。根据各部分的功能,可将它们分为5部分,分别为引导码、用户码、用户反码、数据码、数据反码。遥控器发射代码时,均是低位在前,高位在后。红外接收头会将高低电平变反,所以实际从IR端出来的电平是上述格式图中的波形取反,即停止状态时 IR为高电平,然后接收到9ms左右的低电平后进 入准备状态。我们这里取32位中的第17-24进行数据的译码输出。 2.2.3按键驱动模块 输入:按键输入一个信号key_in; 输出:下降沿的判断使能输出; 我们在这里调用我们以前做过的按键驱动模块,按下之后数码管进行时分秒界面和年月日界面之间的相互切换。 2.2.4数码管显示模块 输入:由8563模块输出的时钟,按键的下降沿的使能输入,全局时钟,全局复位信号; 输出:数码管的段选和位选输出; 程序分为5个always语句块,always语句块之间并行执行。 我们这里在为选的always语句块中定义两个状态,一个是时分秒的状态,一个是年月日状态。我们通过按键的方式来实现时分秒和年月日之间的切换 2.2.5时间设置模块 输入:红外接收模块中的译码输出,红外模块的标志位输出,全局时钟,全局复位信号; 输出:设定的想要的时间; 我们这里由于标志位比数据输入块一拍,我们先把标志位延时1拍产生新的标志位,在时间设定的always语句块中以该标志位进行使能判断,然后判断设置时间的信号是否产生,最后设置时间从秒的地位设置到年的高位,每设置完一个数按键跳到下一个数。设置完之后按下确定按钮,时钟设置完毕。 2.2.6 8563模块 输入:时间设置模块的设定时间输出,全局时钟输入,全局复位信号输入,I2C总线的数据输入,红外的时间开始确定信号的输入。 输出:时间的输

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档