微型计算机原理小闹钟,微机原理课程设计_电子钟的设计.doc

微机原理课程设计_电子钟的设计

摘要

数字闹钟

1、通过8253定时器产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。

2、将当前时分秒在七段LED显示器上显示(如:091132)。

3、可设置闹钟的时间当前值(对准时间),设置闹铃时间,闹铃功能的关闭和开放.

关键词:数字闹钟,8253定时器,LED显示器,8255A并行口

目 录

1.实验线路1

2.设计思想2

3.功能流程图4

4.结果讨论8

5.源程序以及注释9

参考文献26

1.实验线路

实验线路如图1所示。

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上显示。

显示部分:

本程序显示部分用了6个共阴极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。

程序中,用8255A的PA口作为输出,输出扫描信号,PB口作为输入,读进列值。

本程序用行扫描法来识别键盘的闭合键。先使第0行接地,其余行为高电平,然后看第0行是否有键闭合,这是通过检查列线电位来实现的,即在第0行接地时看是否有哪条列线变成低电平。如果有某条列线变为低电平,则表示第0行和此列线位置上的键被按下如果没有,则说明第0行上没有键被按下。此后,再将第1行接地,然后检测列线中是否有变为低电平的线。如此往下逐行扫描,直到最后一行。为消除键的抖动,所以调用延迟程序,然后再判断具体按下的到底是哪个键,如果得到的是FFH,则程序在循环中等待。

计数部分:见流程图

时间设定模块

对于输入的检测,若超出范围,则对其置F------,

3.功能流程图

一、程序主流程控制图(如图2所示)

二、中断服务子程序流程图(如图3所示)

三、进位处理部分流程图(如图4所示)

4.结果讨论

本程序共有分端口设置模块,计数模块,显示模块等几个模块。经过调试,本程序可以实现题目的要求。时、分、秒都分两位。个位满十后就向前进一位。分秒的十位满六十后也向前进一位。显示小时两位在满二十四后重新计数。在置数时,使用者可置任意值,但如果有某位超过计数值,则在LED显示器上输出出错信息。程序中设置压C键为LED显示器清0,压E键为退出,压D键为计数暂停,压P键为设置LED显示器初始值。应该注意的是,程序中设定的键值为实验台上的小键盘的键值,并非计算机键盘。经测试,程序中设置的功能全都可以良好运行。

本程序参照实验室电脑中16BIT文件中的kl.asm编制

定时器/计数器8253计数初值的设定。

下面对几个重点部分的调试过程和遇到的问题作一定的讨论:

修改后的中断服务子程序(改变进位的条件)

(1)其中进位的条件判断以及后面的闹铃的程序段位置的设置都与程序结果有很大的关系.进位判断特别要注意仔细,编程实现前应该画个流程图,直接再源文件上改不但不

一、课程设计目的和意义<br>掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。<br>二、开发环境及设备<br>1、设计环境<br>PC机一台、windows 98系统、实验箱、导线若干。<br>2、设计所用设备<br>8253定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。<br>8255并口:用做接口芯片,和小键盘相连。<br>8259中断控制器:用于产生中断。<br>LED:六个LED用于显示时:分:秒值。<br>小键盘:用于控制设置。<br>三、设计思想与原理<br>1、设计思想<br>本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。<br> 日赚200网赚网http://wsbl52006.lingd.net/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值