合肥工业大学微机原理课程设计数字闹钟

合肥工业大学微机原理课程设计数字闹钟

ID:39473437

大小:960.50 KB

页数:20页

时间:2019-07-04

合肥工业大学微机原理课程设计数字闹钟_第1页
合肥工业大学微机原理课程设计数字闹钟_第2页
合肥工业大学微机原理课程设计数字闹钟_第3页
合肥工业大学微机原理课程设计数字闹钟_第4页
合肥工业大学微机原理课程设计数字闹钟_第5页
资源描述:

《合肥工业大学微机原理课程设计数字闹钟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术13-1班学号:2013211601姓名:康安设计题目及要求:1.通过8253定时器产生1秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。2.在七段数码管上显示当前的时分秒(例如,12点10分40秒显示为121040)。3.按“C”键可设置时钟的时间当前值(对准时间)。4.按“D”键设置闹铃时间。5.按“E”键表示时钟开始运行。6.程序运行时,首先按“D”键设置闹铃时间,然后按“C”键设置时钟的

2、时间,再按“E”让时钟开始运行。当前时间运行到闹铃时间时,6个数码管全部闪烁显示“8”。一、设计思想:总体思想:1、功能概述:实验箱连线:本实验建立在Dais实验箱基础上完成的基本连线及程序如下:138译码器:A,B,C,D,分别连接A2,A3,A4,GS;y0连接8253的CS片选信号;y1连接8259的CS片选信号;8253连线:分频信号T2接8253的CLK0;8253的OUT0接8259的IR7;8253的gate信号接+5V;8259连线:8259的数据线接入数据总线;本程序包括显示模块,键盘扫

3、描模块,时间计数模块,设置模块等几个模块,(1)程序运行后,LED显示000000初始值,并且开始计数(2)按C键设置初始时间,LED清零,显示待输入状态“-------”,之后用户输入数字,更改LED显示内容。考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值;(3)按D键设置闹钟时间,清除LED显示内容,显示待输入状态“------”,之后用户输入数字,更改LED显示内容。数字的取值情况和按C键设置初始时间相同。(4)按E键运行时钟,LED

4、显示内容恢复为按C键设置的时间,并开始计时。(5)当LED显示的数字和预先设置好的闹钟相同时,更改LED显示状态,改为“888888”,闪烁显示10秒后恢复原来的时间,继续计数。2、主程序设计(他人完成)主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。当LED显示的

5、时间达到预先设置的时间,关闭中断,更改显示内容,在显示一段时间后恢复显示,打开中断,使电子表恢复运行。3、LED显示子程序设计(他人完成)本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。4、键盘扫描子程序设计(他人完成)本程序主要实现对键盘的按键

6、进行扫描,判断用户是否按下的键值,并将按下的键值作为参数返回。5、时钟功能设置(独立负责)本程序段负责实现判断用户按下的键值,根据按下的键值转入不同的程序段执行相应的功能设置。判断键值的方法为设置三个标志位,三个标志位分别对应3个按键,当按键被按下时,将对应的标志位置为1,在程序段中对三个标志位进行判断,从而实现不同的功能设置。首先调用键盘扫描子程序GetKey获取用户输入的键值,之后将键值分别与0ch,0dh,0eh比较:若键值为C,则跳入下一个程序段SETC,将对应的标志位ButtonC置为1,其余两

7、个标志ButtonD和ButtonE为0;若键值为D,则跳入下一个程序段SETD,将对应的标志位ButtonD置为1,其余两个标志ButtonC和ButtonE为0;若键值为E,则跳入下一个程序段SETE,将对应的标志位ButtonE置为1,同时由于要更改显示的时间状态,将使用到的一个临时缓冲区buff的取出标志位flag也置为1,表示E键被按下后,要将buff缓冲区内存的时间转移到LedBuff上来显示用户设置的时间。其余两个标志ButtonD和ButtonE为0;若键值为数字,则跳入下一个程序段NEX

8、T。NEXT程序段负责完成三个功能:设置时间、置闹钟以及时钟运行。此程序段通过判断三个标志是否为1,来实现不同的功能。若ButtonC为1,意味着当前是设置时钟模式,用户在按下C键之后输入的6位数字键为设置的时间;若ButtonD为1,意味着当前是设置闹钟模式,用户在按下C键之后输入的6位数字键为设置好的闹钟时间;若ButtonE为1,意味着时钟开始运行。详情见图6、闹钟显示功能(他人完成)本程序段负责实现时间达到闹钟设置时间

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。