多功能数字钟的设计与实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多功能数字钟的设计与实现

一、实验目的

1.掌握数字钟的设计原理。

2.用微机实验平台实现数字钟。

3.分析比较微机实现的数字钟和其他方法实现的数字钟。

二、实验内容与要求

使用微机实验平台实现数字钟。

1.基本要求如下:

1)24小时制时间显示。

2)可以随时进行时间校对。

3)整点报时。

4)闹钟功能,要求设置起闹时间时,不影响时钟的正常走时。

2.提高要求

1)校时时相应位闪烁。

2)能够设置多个起闹点。

三、实验报告要求

1.设计目的和内容

2.总体设计

3.硬件设计:原理图(接线图)及简要说明

4.软件设计框图及程序清单

5.设计结果和体会(包括遇到的问题及解决的方法)

四、系统总体设计

根据设计要求,初步思路如下:

1)计时单元由定时/计数器8253的通道0来实现。定时采用硬件计数和软件技术相结合的方式,即通过8253产生一定的定时时间,然后再利用软件进行计数,从而实现24小时制定时。8253定时时间到了之后产生中断信号,8253在中断服务程序中实现时、分、秒的累加。

2)时间显示采用实验平台上的6个LED数码管分别显示时、分、秒,采用动态扫描方式实现。

3)校时和闹铃定时通过键盘电路和单脉冲产生单元来输入。按键包括校时键、闹钟定时键、加1键和减1键等。

4) 报警声响用蜂鸣器产生,将蜂鸣器接到8255的一个端口,通过输出电平的高低来控制蜂鸣器的发声。

系统硬件设计主要利用微机实验平台上的电路模块。硬件电路主要由键盘电路、单脉冲产生单元、8253定时计数器、8255并行接口单元、8259中断控制器、LED 显示电路和蜂鸣器电路等等。系统的硬件电路设计框图如图1所示。

图1 硬件电路框图

五、硬件设计

根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图2所示。硬件电路由定时模块、按键模块、数码管显示模块和蜂鸣器模块组成。

微机系统

8253

8255 8259

数码管显示

键盘电路

蜂鸣器电路

单脉冲发生

单脉冲发生单元

键盘电路

PA0 8255

PB0

P

Q6

OUT0 8253 GATE0

地址

CS1

译码 CS2

数码管显示模块

IRQ2

8259 I

PC BUS 蜂鸣器

各个模块的详细说明:

1.定时模块

定时模块主要是实现硬件定时1s,由8253的计数器0来实现。Clk0接实验平台分频电路输出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0输出来控制计数器的起停。OUT0接8259的IRQ2,定时完成请求中断,进入中断服务程序。软件在中断服务程序中实现时分秒的累加。

2.LED数码管模块

实验平台上提供一组六个LED数码管。插孔CS1用于数码管段选的输出选通,插孔CS2用于数码管位选信号的输出选通。本设计用6个数码管来动态显示时分秒,动态显示的定时时间由软件延时。

3.按键模块

按键模块包括有2个单脉冲发生单元的按键,3个键盘模块的按键。2个单脉冲发生单元的按键K1,K2分别为校时键和闹钟定时键,采用中断方式。3个键盘按键A键,B键和C 键分别为加1键,减1键和切换键。具体的功能定义如下表。键盘电路和8255的连接见图3所示。

键名功能说明

K1校时键进入校时状态

K2闹钟定时键进入闹钟定时状态

A键加1键校分或校时的时候使其加1递增

B键减1键校分或校时的时候使其减1递减

C键切换键校分后切换到校时

校时后切换到时钟状态

闹钟设定分值后切换到设定时值

闹钟设定时值后切换到时钟状态

图3 键盘电路和8255的连接图

4.蜂鸣器模块

蜂鸣器模块由蜂鸣器驱动电路和8255组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图4所示。当8255的PB0口输出为高电平时,蜂鸣器产生蜂鸣音,8255输出为低电平时,蜂鸣器不发声。

图4 蜂鸣器电路

六、软件设计

1. 软件设计思路

根据系统的功能,可以将程序分为5个功能模块,包括LED数码管扫描模块、时间计时模块、校时模块、闹钟定时模块和键盘扫描模块。

1)LED数码管扫描模块

在采用动态扫描方式时,要使得LED显示得比较均匀,又有足够的亮度,需要设置适当的扫描频率。当扫描频率在70Hz左右时,能够产生足够的图形和比较好的效果。在每一位LED显示后调用一个延时程序。

采用实验平台时,插孔CS1用于数码管段选的输出选通,插孔CS2用于数码管位选信号的输出选通。在编程时,只需要先输出数据选通相应的位,再输出显示数据。显示数据输出前要将数据转换为显示代码。

2)时间计时模块

计时是采用硬件计时和软件计时相结合的方法。硬件定时100ms,产生中断。8253定时的时间是100ms,clk0的输入时钟f=46875hz,所以计数初值为124FH。分别用Hour、Min、Sec来存储时分秒值。在中断服务程序中,计数到1秒的时间时,Sec加1。当Sec加到60的时候进一,Min值加1。当Min等于60时,Hour值加1,Hour值等于24时清零开始下一次循环。

3)校时模块

当校时键按下时,进入校时中断程序。停止计数器,开始键盘扫描。当键盘是A键时,校正的相应值为加1,若为B键时,校正的相应值为减1。C键负责在相应的位之间切换。具体流程见校时中断程序的流程图。

相关文档
最新文档