课程设计论文-基于vhdl数字电子钟的设计与实现内容摘要:

VHDL 的主要特点: ( 1) 作为硬件描述语言的第一个国际标准, VHDL 具有很强的可移植性。 ( 2) 具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将 设计中逻辑上的错误消灭在组装之前,在大系统的设计早期就能查验设计系统功能的可行性。 ( 3) 设计层次较高,用于较复杂的计算时,能尽早发现存在的问题,从而缩短设计周期。 ( 4) VHDL 的设计不依赖于特定的器件,方便了工艺的转换。 ( 5) 支持大规模设计的分解和已有设计的再利用。 ( 6) 对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进行逻辑综合 《 基于 VHDL数字电子钟的设计与实现 》 第 6 页 共 25 页 和优化,并自动地把 VHDL 描述设计转变成门级网表。 ( 7) VHDL 用源代码描述来进行复杂控制逻辑的设计,灵活又方便,同时也便于设计结果的交流、保存和重用。 VHDL 的 开发流程: ( 1) 文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。 通常 VHDL 文件保存为 .vhd 文件。 ( 2) 功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。 ( 3) 逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。 逻辑综合软件会生成 .edf( edif)的 EDA 工业标准文件。 ( 4) 布局布线:将 .edf 文件调入 PLD 厂家提供的 软件中进行布线,即把设计好的逻辑安放到 PLD/FPGA 内。 ( 5) 编程下载:确认仿真无误后,将文件下载到芯片中。 《 基于 VHDL数字电子钟的设计与实现 》 第 7 页 共 25 页 3 数字电子钟的设计方案 系统总体设计 系统的工作原理:振荡器产生稳定的分频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。 秒计数器满 60 分向分计数器进位,分计数器满 60 后向小时计数器进位,小时计数器按照“ 24 翻 1”规律计数。 计数器的输出分别由译码器送显示器显示。 计时出现误差时,可以用校时电路校时、校分。 数字电子钟的电路组成方框图片如 图 : 图 硬件电路的设计 如图 所示 ,以 74LS161 作为控制部件。 47LS161 被接成十进制计数器,其置数输入端 A、 B、 C、 D( 3脚 4脚 5 脚 6 脚)接低电平, LD、 EP、 ET( 9脚 10脚 7 脚)接高电平,秒脉冲由 CP( 2脚)端输入。 计数器的输出端 QA、 QB、 QC、QD( 14 脚 13脚 12 脚 11 脚)接译码电路 CD4511 的输入端 D、 C、 B、 A。 用 74LS290 做一个七进制的加法计数器,将时的十位的进位脉冲接到显示星期的 74LS290 的输入脉冲就可以了。 硬件电路图如下 : 《 基于 VHDL数字电子钟的设计与实现 》 第 8 页 共 25 页 图 硬件电路图 软件电路的设计 考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁。 在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时等。 在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。 时、分、秒的显示则是用了软件译码 (查表 )的方式,再用了一段固定的程序段进行进制转化。 初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等 则将闹铃标志位置数。 为了避免响铃影响显示定时,选时或调时程序段。 对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。 程序流程图如图 所示。 74LS48 时钟基 准 74LS290 晶体振荡器 LED 数码管 74LS161 《 基于 VHDL数字电子钟的设计与实现 》 第 9 页 共 25 页 图 程序流程图 各模块原理及程序 ( 1) 秒脉冲发生器 秒脉冲发生器是数字钟的重要部分,它的精度稳定度决定了数字钟的质量,通常用晶体振荡器发生的脉冲经过整形、分频获得 1Hz 的秒脉冲。 如晶振为32768Hz,通过 15 次二分频后可获得 1Hz 的脉冲输出。 (本 设计 中实验箱上已经有 1hz 脉冲)。 按键由琴键或拨码开关发出脉冲或电平信号,控制整个系统工作。 原理图如 图 所示 : 响铃 结束 显示 初始化 T F 读键 有无闹钟。 是否为调时、定时。 开始 T T 定时 F F 调时 T F 调时。 是否修改。 《 基于 VHDL数字电子钟的设计与实现 》 第 10 页 共 25 页 图 其程序代码如下 : ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0300H MAIN: mov 20h,00h MOV 21H,00H MOV 22H,00H MOV 23H,00H MOV IP,02H。 IP,IE 初始化 MOV IE,82H MOV TMOD,01H。 设定定时器工作方式 ? MOV TL0,0B0H MOV TH0,3CH SETB TR0。 启动定时 ? 《 基于 VHDL数字电子钟的设计与实现 》 第 11 页 共 25 页 MOV SP,40H。 重设堆栈指针 NEXT: LCALL DISP。 调用显示子程序 ? LCALL KEY。 调用按键检测子程序 JZ NEXT。 LCALL ANKEY。 调用按键处理子程序 SJMP NEXT。 重新循环 NOP NOP NOP ( 2)可调时钟模块 有了时间标准“秒”信号后,就可以根据 60秒为 1 分、 60分为 1 小时、 24小时为 1 天的计数周期,分别组成两个六十进制 (秒、分 )、一个二十四进制 (时 )的计数器。 将这些计数器适当连接,就可以构成秒、分、时的计数,实现计时功能。 其程序流程图如 图 所示。 ( 3) 74LS161 构成秒、分的六十进制计数器 数字钟的“秒”、“分”信号产生电路都是由六十进制计数器构成,“时”信号产生电路为二十四进制计数器。 它们都可以用两个“可予制四位 二进制异步清除”计数器来实现。 利用 74LS161 芯片的预置数功能,也可以构成不同进制的计数器。 因为一片 74LS16。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。