文档详情

实验六 时、分、秒计时器的设计.doc

发布:2025-05-17约4.16千字共8页下载文档
文本预览下载声明

PAGE4

PAGE9

实验六时、分、秒计时器的设计

一、实验目的

掌握数码管动态显示的基本方法;

掌握键盘按键控制的实现方法;

根据已知电路和设计要求在实验板上实现时、分、秒计时器。

二、实验内容

1、在STC89C52实验平台上实现时、分、秒时钟,4位数码管上显示分、秒或者时、分。

2、应用键盘控制时间的显示。键盘按键控制“切换时分、分秒显示”、“启动停止”、“加秒显示内容”、“加分显示内容”、“加时显示内容”。

3、根据已知电路和设计要求在PROTEUS平台仿真实现时钟系统。

三、实验原理

流程图如下所示:

开始显示单元清零T0、T1设为16位计数模式

开始

显示单元清零

T0、T1设为16位计数模式

允许T0中断

调用显示子程序

进入功能程序

按下键否?

开始

现场保护,重置初值

启动下一个50ms

50ms计数器加1

秒单元加1,50ms计数器清0,秒写入秒个位和秒十位

50ms计数器=20?

分单元加1,秒单元清0,分写入分个位和分十位

秒单元=60?

时单元加1,分单元清0,时写入时个位和时十位

分单元=60?

时单元清0

时单元=24?

中断返回

1、主程序流程图2、定时器/计数器T0中断服务程序流程图

5仿真分析

在ProteusISIS的80C51中载入程序生成的HEX文件,按开始符号运行,在数码管上观察程序运行结果,系统仿真结果如图5.1所示。

设计功能如下:

(1)、初始状态:未按键之前,上电,数码显示00-00-00。程序运行后,从秒针开始自动运行。当秒数到59后,下一秒自动变为00,分针变为01,以此类推。

(2)、调整状态:仿真运行过程中,按p0键,系统暂停,此时,继续按p0无效。第三次按p0,又开始,如此循环。

、设置状态:按下p0暂停后,按p1,则时针加一,按下p2,则时针减一;按两下p0,在按下p1,则分针加一,按下p2,则分针减一。

时间显示格式为:时分秒;

误差分析:实际程序到实验板中的电子钟显示存在一定的误差,误差来源可能为三个方面:第一,在程序运行过程中,时钟周期的不精确导致机器周期与理论值存在一定的差别;第二在中断一秒显示过程中,一些指令需要消耗一定的机器周期,使得一秒延时比实际要长;第三在键抖动的反应程度在运行中比较慢。

5.1实例仿真

总结

通过这次的课程设计我认识到我对单片机的知识学的太少了,对于书本上很多知识还不能灵活运用,都需要去巩固加强,我会在以后的学习中弥补我的不足。我也了解了80C51集成环境和PROTEUS仿真软件的使用,用此软件练习电子时钟的设计,不仅使我熟悉了软件的使用方法,而且复习了单片机编程的相关知识。在使用中,我体验到了单片机的神奇之处,也激发了我不少的兴趣,引领着我不断的探索单片机的未知世界。本次的课程设计,我也学到了一些更重要的东西,那就是如何从理论到实践的转化,怎样将所学到的知识运用于实践。大学的课堂只是在学习专业知识,而我们应当把所学的知识用到我们现实的生活中去。此次的的电子时钟设计给我奠定了一个实践基础,我会在以后的学习生活中磨练自己,使自己变得更加优秀。

在本次的设计中,特别感谢张老师和王老师的指导,在老师的讲解和指导下,我成功的解决了设计中的许多问题,也使我知道了认真的重要性。也感谢同学给我的帮助,没有他们的帮助,我一个人是无法完成的,他们让我明白了学问的真正含义。

OUTBITEQU08002H;位控制口

OUTSEGEQU08004H;段控制口

INCEQU08001H;键盘读入口

LEDBUFEQU60H;显示缓冲

HOUREQU40H

MINUTEEQU41H

SECONDEQU42H

C100USEQU43H

TICKEQU10000

T100USEQU256-50

LJMPSTART

ORG000BH

T0INT:PUSHPSW

PUSHACC

MOVA,C100US+1

JNZGOON

DECC100US

GOON:DECC100US+1

MOVA,C100US

ORLA,C100US+1

JNZEXIT

MOVC100US,#HIGH(TICK)

MOVC100US+1,#lOW(TICK)

INC

显示全部
相似文档