本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。
第一章 设计简介及方案论述
1.1作息时间控制钟系统概述:
本设计是一个具有报时功能的作息时间控制钟。它利用89C51单片机的2Hz时基计时,进行年历计算,并用的蜂鸣器驱动模块将它报出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。
1.2本设计任务和主要内容:
(1)设计任务
用可编程器件为主体,设计并制作一台自动打铃系统。要求完成的作品必须固化软件,测试检查时上电即可工作,不允再用计算机下载。实现能够显示当前的时间,同时能够在规定的时间点控制打铃装置打出预期的铃声。另外增设四个按钮,通过分配以实现对时间的调整,包括对时钟、分钟的增加和减少,秒钟的清零;以及强制打铃和关闭打铃。
(2)主要内容
1、基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。
2、能设置当前时间(含上、下午,时,分)
3、能实现基本打铃功能,规定:
上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。
下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。
铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。
第二章 系统主要硬件电路设计
2.1单片机总体设计思路
(1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏;
(2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒;
(3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能;
(4)设计打铃执行机构,完成自动打铃功能。
2.2各功能模块程序实现原理分析
模块组成框图如图2-1所示,该模块由蜂鸣器驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成。且三部分都通过AT89C51来实现。
2.21七段式数码管驱动模块
采用动态扫描方式,通过一组单片机端口驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
2.22蜂鸣器驱动模块
采用压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
2.23按钮控制模块
四个按钮的一端分别接地,另一端接单片机一个端口的四个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。
其余详见下载
2.3系统主要硬件电路
系统主要硬件电路作为驱动整个打铃系统的电路又分为七段数码显示电路和蜂鸣器驱动电路。由显示七段数码显示电路和蜂鸣器驱动电路组成的系统硬件主要电路如下:
该系统通过按钮控制(系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮;调整选择键SET_KEY:P1.0通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:P1.1按一次使选中位加1;减少键DEC_KEY:P1.2按一次使选中位减1;如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁)AT89C51的计时和定时,在七段数码管上显示出来(实现24小时制电子钟,8位数码管显示,显示时分秒),再通过蜂鸣器 (BEEP:P3.7)来实现打铃。
其余详见下载
第三章 系统软件设计
软件是该LED显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。
3.1系统软件设计的主要内容
系统软件设计由三个模块编程组成:蜂鸣器打铃编程,七段显示管显示编程,按键编程。
3.2主程序流程设计
主程序初始化,并打开中断,然后执行中断服务程序。实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示) 到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮 调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1,如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。
主程序流程设计图:
如图所示主程序开始初始化后,就跳转到中断服务程序,如正常走时,则往下进行打铃时间的比较,继续向下执行对打铃的判断程序;如不正常走时,则直接转到显示程序。这以后,继续执行按键的检测,若有键按下,则取值打铃;反之,则返回到中断服务程序的开始继续执行。
主程序清单见附录。
第四章 系统调试与测试结果分析
4.1系统调试
根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED驱动模块的调试,数据存储模块的调试,PC机通信模块的调试等,最后将各模块组合后进行整体测试。
4.11硬件调试
对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。
4.12软件调试
软件调试采用单片机仿真器WAVE6000L及微机,将编好的程序进行调试,主要是检查语法错误。
4.13硬件软件联调
将调试好的硬件和软件进行联调,主要调试系统的实现功能。
4.2仿真结果
此系统的仿真效果很好,能实现设计要求和目的所规定的内容。下面是两幅仿真结果图:
(源码源程序详见下载)