1、摘要摘要 数字闹钟 1、通过 8253 定时器产生秒脉冲定时中断。在中断服务程序中实现秒、分、 小时的进位(24 小时制) 。 2、将当前时分秒在七段 LED 显示器上显示(如:091132) 。 3、可设置闹钟的时间当前值(对准时间),设置闹铃时间,闹铃功能的关闭和 开放. 关键词:数字闹钟,8253 定时器,LED 显示器,8255A 并行口 - 1 - 目目 录录 1.实验线路 1 2.设计思想 2 3.功能流程图 4 4.结果讨论 8 5.源程序以及注释 9 参考文献 26 1 1 1. .实验线路实验线路 2 实验线路如图 1 所示。 2 2. .设计思想设计思想 一、概述: 程序主
2、体设计:本程序共有分端口设置模块,计数模块,显示模块等几个模 块。 C-DISPLAY 12, 45, 37 -将闹钟设置为 12:45: 37; G-GO AHEAD-开中断,闹钟恢复走时 D-STOP TO DISPLAY-关中断,闹钟停止走时 E-EXIT TO DOS-返回 DOS M-SET THE CLOCK -设置闹铃时间 F-OPEN THE CLOCK-设置闹钟功能为开 B-CLOSE THE CLOCK-设置闹钟功能为关 P-POSITION THE BENINNING DATE-设置闹钟的时间 二、计时器软件的设计: 主程序中,要对各个用到的芯片进行初始化,目的是使其每
3、20 豪秒产生一 次方波。8253A 的定时器输出与 8259A 的 IR2 连接,计数器 0 工作在模式 3(方 波发生器),计数值采用二进制格式,输出作为计数器 1 的输入, 计数器 1 工作在模 式2(分频器),计数值采用二进制格式,输出到总线IRQ2,向CPU发送时钟中断信号, 根据两个计数器的设置,系统每隔 20 毫秒便由 8253A 产生一次中断请求,即每 隔 20 豪秒执行一次中断处理程序。这个方法将与时间相关的两个模块即显示模 块和计时模块放在中断处理程序中,这样,就保证了数字显示的稳定,中断处理 程序完成计时功能要依靠两个方面,因为中断处理程序是每 20 豪秒执行一次, 但计
4、时并不是以 20 豪秒为单位进行的,而是以秒为单位进行的,所以,计时功 能的实现一方面要利用 20 毫秒这个基准时间单位, 另一方面借助一个计数单位。 图 1 实验线路图 3 计数单位的初始值为 50,每进行一次中断,便使计数单元的内容减 1。每当计数 单元从 50 减为 0 时,说明已经过了 1 秒时间。并判断是否有进位,如有则进行 修改,实现进位。并在 LED 上显示。 显示部分: 本程序显示部分用了 6 个共阴极 LED 作为显示管,显示程序要做到每送一 次段码就送一次位码, 每送一次位码后, 将位码中的 0 右移 1 位作为下次的位码, 从而可以实现从左到右使 6 个 LED 依次显示出相应的数字。 虽然 CPU 每隔一定 时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以 在 6 个 LED 上同时见到数字显示。 程序中,用 8255A 的 PA 口作为输出,输出扫描信号,PB 口作为输入,读 进列值。 本程序用行扫描法来识别键盘的闭合键。 先使第 0 行接地, 其余行为