没有合适的资源?快使用搜索试试~ 我知道了~
微机原理课程设计报告-电子钟的设计文档.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2024-05-08
23:44:00
上传
评论
收藏 286KB DOC 举报
温馨提示
试读
27页
1、通过8253定时器产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2、将当前时分秒在七段LED显示器上显示(如:091132)。 3、可设置闹钟的时间当前值(对准时间),设置闹铃时间,闹铃功能的关闭和开放.
资源推荐
资源详情
资源评论
目 录
1.实验线路....................................................................................................................1
2.设计思想....................................................................................................................2
3.功能流程图................................................................................................................4
4.结果讨论....................................................................................................................8
5.源程序以及注释........................................................................................................9
参考文献......................................................................................................................26
1
1.实验线路
实验线路如图 1 所示。
图 1 实验线路图
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------设置闹钟的时间
二、计时器软件的设计:
主程序中,要对各个用到的芯片进行初始化,目的是使其每 20 豪秒产生一
次方波。8253A 的定时器输出与 8259A 的 IR2 连接,计数器 0 工作在模式 3(方
波发生器),计数值采用二进制格式,输出作为计数器 1 的输入, 计数器 1 工作在模
式 2(分频器),计数值采用二进制格式,输出到总线 IRQ2,向 CPU 发送时钟中断信
号,根据两个计数器的设置,系统每隔 20 毫秒便由 8253A 产生一次中断请求,即
每隔 20 豪秒执行一次中断处理程序。这个方法将与时间相关的两个模块即显示
模块和计时模块放在中断处理程序中,这样,就保证了数字显示的稳定,中断处
理程序完成计时功能要依靠两个方面,因为中断处理程序是每 20 豪秒执行一次,
但计时并不是以 20 豪秒为单位进行的,而是以秒为单位进行的,所以,计时功
能的实现一方面要利用 20 毫秒这个基准时间单位,另一方面借助一个计数单位。
计数单位的初始值为 50,每进行一次中断,便使计数单元的内容减 1。每当计数
单元从 50 减为 0 时,说明已经过了 1 秒时间。并判断是否有进位,如有则进行
修改,实现进位。并在 LED 上显示。
3
显示部分:
本程序显示部分用了 6 个共阴极 LED 作为显示管,显示程序要做到每送一
次段码就送一次位码,每送一次位码后,将位码中的 0 右移 1 位作为下次的位码,
从而可以实现从左到右使 6 个 LED 依次显示出相应的数字。虽然 CPU 每隔一定
时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以
在 6 个 LED 上同时见到数字显示。
程序中,用 8255A 的 PA 口作为输出,输出扫描信号,PB 口作为输入,读
进列值。
本程序用行扫描法来识别键盘的闭合键。先使第 0 行接地,其余行为高电平,
然后看第 0 行是否有键闭合,这是通过检查列线电位来实现的,即在第 0 行接地
时看是否有哪条列线变成低电平。如果有某条列线变为低电平,则表示第 0 行和
此列线位置上的键被按下如果没有,则说明第 0 行上没有键被按下。此后,再将
第 1 行接地,然后检测列线中是否有变为低电平的线。如此往下逐行扫描,直到
最后一行。为消除键的抖动,所以调用延迟程序,然后再判断具体按下的到底是
哪个键,如果得到的是 FFH,则程序在循环中等待。
计数部分:见流程图
时间设定模块
对于输入的检测,若超出范围,则对其置 F------,
4
3.功能流程图
一、程序主流程控制图(如图 2 所示)
D 键?
P 键?
M 键?
F 键?
B 键?
E 键?
N
N
N
N
N
N
Y
Y
Y
Y
Y
Y
G 键?
N
Y
C 键?
Y
显示初始化时间
开始计时
停止计时
开启闹铃
设置闹铃
设置时间
关闭闹铃
退出回到 DOS
N
图 2 程序主流程控制图
剩余26页未读,继续阅读
资源评论
等天晴i
- 粉丝: 5090
- 资源: 10万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功