lzm数字钟_8086微机原理与接口技术课程设计内容摘要:

3 0 1 0 0 1 1 1 1 4FH 4 0 1 1 0 0 1 1 0 66H 5 0 1 1 0 1 1 0 1 6DH 6 0 1 1 1 1 1 0 1 7DH 7 0 0 0 0 0 1 1 1 07H 8 0 1 1 1 1 1 1 1 7FH 9 0 1 1 0 1 1 1 1 6FH A 0 1 1 1 0 1 1 1 77H B 0 1 1 1 1 1 0 0 7CH C 0 0 1 1 1 0 0 1 69H D 0 1 0 1 1 1 1 0 5EH E 0 1 1 1 1 0 0 1 79H F 0 1 1 1 0 0 0 1 71H 表 25 LED 共阴极显示管段选码编码表 硬件设计思路及连线图 接口技术课程设计 8 硬件设计思路 8086 的 8 位数据线 D7~D0 与 8255 的 D7~D0 相连,地址线经 74LS373 锁存后其低位 A0、 A1 分别与 8255 的 A0、 A1 相连,其他地址线经 74LS138 译码后,其 CS0 接 8255 的片选 CS 引脚,其入口地址为 00F0H~00F3H。 8255 的 A 口 PA0~PA7 分别与逻辑开关的 K1~K8 相连,其中开关量 K7 用于判断是否修改时间, K5~K6 用于判断修改哪一位, K1~K4 为要修改的值; B 口作为段选; C 口作为位选段码信号。 硬件接线原理图 图 26 硬件连线原理图 图 27 硬件连接图 三、 软件设计思路及程序控制流程框图 接口技术课程设计 9 软件设计思路 初始化 8255A,设置其工作方式。 设置初值,定义对应十六进制数的七段代码表及其时间区表。 显示计时并循环判断,当 1 秒时间到是则秒位加 1 计时显示。 8255A 芯片个端口地址为:控制端口地址: 206H A 口地址: 200H B 口地址: 202H C 口地址: 204H 程序流程图的相关说明 首先对 8255A 进行初始化,然后开始读取开关量,判断是否要修改时间,若需修改,则判断需修改哪位,随后将该位对应的时间区数据修改为逻辑开关K1~K4 对应的值,若不需要修改则继续显示并循环判断,当 1 秒时间到达时,则秒位加 1 计时显示。 程序控 制流程框图 接口技术课程设计 10 图 31 程序流程图 开始 8255 初始化 送 1秒时间常 数数 读取开关量 修改时 间 修改秒低位 修改秒高位 修改分低位 修改分高位 修改时低位 修改时 高位 显示时间 1 秒时间 秒位加 1 秒 =60 秒为 00 分加 1 分 =60 分为 00 时加 1 时 =23 时为 00 重计时 N N N 修改日低位 修改日高位 接口技术课程设计 11 图 32 中断操作流程图 程序清单(见附录) 四、 实验环境 系统环境: Win7 系统 软件环境: Proteus 五、 上机调试过程 硬件调试 本次课程设计采用的是 Proteus 集成软件开发环境,把总体分为 3 大块,第一块就是 8086CPU 译码电路,如下图 51,第二块为 8255A 控制的时间显示电路,如下图 52,第三块为 8255A 不可屏蔽中断控制电路,如下图 53. 接口技术课程设计 12 在硬件接线连接时,应将 8255A 的 A 口与端控制端口相连,用于决定显示值, B 口也同段控制端口相连,决定显示值,而 C 口 8 位接两个位控制端口,用于决定哪个数码管显示。 中断电路与 8086CPU 译码电路均参照课本先有实验图连接,至此,硬件线路已经接好。 图 51 8086CPU 译码电路 图 52 数码管显示电路 接口技术课程设计 13 图 53 中断控制电路 软件调试 在软件部分,程序分为三个部分: 8255A 初始化部分,读入初值、循环操作部分,显示出数字量部分。 联立调试 软件和硬件分别调试完毕后,进行联机调试,出现了新的问题:显示在 LED数码管上的数字不停跳跃,变幻不定,数值显示不稳定,控制不好。 要解决这个问题,我问了几个同学,分别进行修改,刚开始采用 6 位,改了好久总是控制显示的不好,要么奇数位显示要么偶数位显示,修改了延时操作,又增加了清屏操作,但是数码管还是显示不好。 所以最后决定用两个 4 位数码管显示,增加毫秒位,这样在软件设计时没有出现显示问题,除此之外,每个数字显示后的延时是利用延时子程序的循环次数来控制的,为了使数字编码显示得清楚,应该通过调试,确定延时子程序的循 环次数。 在本设计中,循环次数设为16( 10h)次。 调试结果 调试后编码结果正确,显示清楚,稳定,且可通过按键进行清零,及校时操作。 接口技术课程设计 14 图 541 程序运行效果 图 542 清零操作 接口技术课程设计 15 图 543 校时操作 六、实验运行结果、分析 实验运行结果与分析 结果:当程序开始全速运行时, LED 显示器上显示“ 00 00 00 00”,一秒后变为“ 00 00 01”这样每隔一秒秒位加 1,显示“ 00 00 59”的后一秒显示为“ 00 01 00”,显示“ 23 59 59”的后一秒 显示为“ 00 00 00”。 三个按键分别用于实现复位清零、分钟加一、小时加一的系列校时操作,按下复位后,数码管显示初值,加一即在原来基础上进行。 分析:将 8255A 的 A 口 (PA0PA7)作为输出用, A 口 (PA0PA7)作为输出用(送段选码), B 口 (PB0PB7)作为输出用(送段选码), C 口作为输出用(送位选码)。 程序首先从 8255A 的 A 口读取初始值,并进行显示时间,若按键有中断则响应中断操作。 在 8255A 的 B 口送段选码, C 口送位选码后在 LED 显示器上显示时间;若中断操作为分钟加一或小时加一,则将 对应的值经段码表转换及程序转换后在 B 口 (PB0PB7)输出作为段选码,在 C 口输出位选码后在 LED 显示器上显示时间。 然后程序判断之前设置的一秒的时间常量有没有到,若一秒时间到,则。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。