数字电子钟设计方案.docx
- 文档编号:30495795
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:16
- 大小:212.82KB
数字电子钟设计方案.docx
《数字电子钟设计方案.docx》由会员分享,可在线阅读,更多相关《数字电子钟设计方案.docx(16页珍藏版)》请在冰豆网上搜索。
数字电子钟设计方案
目录
一、绪论-2-
1、引言-2-
2、方案论证-3-
二、主要电路模块的设计-4-
2.1系统方框图-4-
2.2系统说明-5-
2.3总电路图-5-
2.4单片机电路-5-
2.4.1时钟电路-5-
2.4.2复位电路-6-
2.5按键电路-7-
2.6显示电路-8-
2.6.1方案论证-8-
2.6.2LED的结构与原理-9-
2.7电源电路-10-
三、软件设计流程图-11-
3.1时钟主程序流程图-11-
3.2按键扫描程序流程图-11-
3.3时钟程序流程-12-
四、软硬件系统的调试-13-
参考文献-16-
附录-17-
一、绪论
1、引言
时钟,自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。
然而随着时间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。
钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。
在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
因此,研究数字时钟及扩大其应用,有着非常现实的意义。
怎样让时钟更好的为我们服务?
怎样让时钟更符合实际应用的需求?
这就要求人们不断设计出新型时钟,不断设计出适合实际应用的多功能时钟。
本毕业设计方案正是根据以上所述并结合日常生活中对时钟功能需求的分析,运用单片机技术,设计出一个适合日常生活需要的多功能数字时钟。
此多功能数字时钟除了传统的显示时间功能之外还具日历功能以及定时闹钟功能。
2、方案论证
方案一
采用TTL、CMOS集成电路实现的。
数字钟主要由以下几个部分组成:
信号源、分频器、十进制计数器、六进制计数器、二进制计数器、BCD—七段显示译码/驱动器、LED(Light-emitting-diode)七段显示数码管、时间校准电路和闹时电路。
[1]
这是一种纯硬件电路系统,用时序逻辑电路实现时钟功能,用555定时器实现闹钟报时的设定。
该电路具有抗干扰强、计算精确,使用元器件种类少等优点,但是这种实现方法可靠性差、控制精度低,灵活性小、线路复杂、安装调试不方便,且不具备对测温信号进行数据处理的功能。
要实现测温功能必须再添加处理芯片,系统集成度低。
方案二
利用可编程逻辑器件PLD(ProgrammableLogicDevices)实现。
可编程逻辑器件PLD具有集成度高、速度快、功耗小、可靠性高等优点。
且EDA(ElectronicDesignAutomation)软件的功能和时序仿真功能使得电路的调试变得十分方便。
这种方案与前一种相比,可靠性增加,同时可以很好的完成时钟的功能。
但是对于温度测量,其不具备对测温数据的处理功能,无法很好的完成扩展功能的要求。
同时这种方案只能选用数码管显示,显示的效果不够理想。
因此,系统的灵活性不够。
[2]
方案三
利用单片机内部具有的计数器实现时钟功能。
以12MHz晶振为例,通过计算可知,使定时器每50ms产生一次中断,当产生20次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。
虽然这种方法存在由于系统晶振误差、温漂、中断响应时间的不确定性及定时器重新装载时间常数所带来的误差等不足。
而且用这种方法实现的时钟在断电的情况下将停止走时,通电后必须再初始化,需要重新调表。
但是利用这种方法实现的系统具有一定的可扩展性。
由于时钟的实现大部分是由软件的编程来实现的,因此没有前几种方案中来自硬件的束缚。
只要对数字时钟的程序和硬件电路加以一定的修改,就可应用到一些实时控制的系统中去。
系统的实用意义更大。
通过以上三种方案的比较,决定采用方案三。
二、主要电路模块的设计
2.1系统方框图
系统方框图如图2.1所示。
系统要实现数字时钟的基本功能,单片机最小系统能启动正常,单片机最小系统能复位正常,单片机通过控制相关时钟控制芯片,在数码管上实现实时时钟显示,并且能手动调整时间。
通过毕业设计进一步了解8051单片机特性,掌握单片机硬件系统结构以及软件对硬件的控制功能。
熟练掌握8051单片机指令系统的应用及程序设计、开发环境。
图2.1系统方框图
2.2系统说明
系统由51系列单片机AT89C51、按键、数码管显示、电源等部分构成。
单片机部分包括时钟电路、复位电路;按键部分能够实现对时间的调整、设定。
三个按键的功能分别为:
小时的调整,分钟的调整,复位。
电源部分(试验室配备电源)可输出1个电压:
5V。
5V电压给小系统硬件提供电源。
2.3总电路图
电子钟总电路图见附录所示。
2.4单片机电路
2.4.1时钟电路
时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。
时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频。
CPU的时钟振荡信号有两个来源:
一是采用内部振荡器,此时需要在XTAL1和XTAL2脚连接一只频率范围为0—33MHZ的晶体振荡或陶瓷振荡器及两只30pf电容。
二是采用外部振荡,此时应将外部振荡器的输出信号接至XTAL1脚,将XTAL2脚浮空。
[3]
利用单片机内部的定时功能来实现时钟的走时,通过编程实现每50毫秒产生一次中断,中断20次后,秒单元加1,秒单元加到60时,跳回到零再继续加,同时分单元加1;当分单元加到60时,跳到零再继续加,同时时单元的个位加1,以次类推,从而实现秒、分、小时的走时。
本次设计中采用的是内部振荡器,频率为12MHZ的晶体振荡器及30pf的瓷片电容。
如图2.2所示。
图2.2时钟电路
2.4.2复位电路
复位是指在规定的条件下,单片机自动将CPU以及与程序运行相关的主要功能部件、I/O口等设置为确定初始状态的过程。
如果电路参数不符合规定的条件或干扰导致单片机不能正确的复位,系统将无法进行正常的工作,因此,复位电路除了要符合厂家规定的参数外,还要滤除可能的干扰。
[4]
AT89S52单片机内部有一个由施密特触发器等组成的复位电路。
复位信号是从其9脚,即RST脚输入的。
[1]AT89S52单片机规定,当其处于正常工作基于51单片机的数字时钟的设计状态,且振荡器工作稳定后,在RST端有从高电平到低电平,且高电平时间大于两个机器周期的复位信号时,CPU将完成对系统的复位。
有两点需要注意:
一、复位信号是高电平有效,二、高电平的保持时间必须大于两个机器周期,可见高电平保持时间与振荡频率有关。
[5]
本次设计中采用上电复位电路,上电复位是指在系统上电时,RST端自动产生复位所需要的信号将单片机复位,本次设计中的上电复位电路如图所示。
上电时,RST端高电平的维持时间取决于R(1k)和C(22uF)的值。
要使单片机可靠的复位,设计中使其维持的时间足够长。
如图2.3所示。
图2.3
2.5按键电路
方案一:
采用阵列式键盘此类键盘是采用行列扫描方式,当按键较多时可以减少占用单片机的I/O口数目。
方案二:
采用独立式按键电路每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
但是当按键较多时占用单片机的I/O数目较多。
本系统只需三个按键,因此选择方案二。
如果按键采用中断的话,可以使单片机工作更加灵活、效率更高。
由于该系统要用到3个按键,考虑到单片机的中断资源不够,所以就只用P1.0及P1.2和P1.3口。
电路如图2.4所示。
[6]
图2.4按键电路
2.6显示电路
2.6.1方案论证
方案一:
采用动态显示这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通。
当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮,外接7407组成显示电路。
这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件线路。
各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作用,所以适当选取循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪烁现象。
方案二:
采用静态显示数码管工作在静态显示方式下,共阴极或共阳极点连接在一起接地或高电平。
每位的段选线与一个8位并行口相连。
只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。
该工作方式常采用串行口设定方式0输出,外接74LS164移位寄存器构成显示电路。
综合考虑,采用动态显示,采用一片7407芯片作为缓冲,分时选中三片数码管,从编程和提供的硬件等方面综合考虑后,决定采用动态显示的方法,如图2.5所示。
采用1片7407缓冲的方法来带动3片数码管显示。
由软件控制分不同时间选中时分秒不同的三片六个数码管。
电路如图2.5所示。
有电路图可知P2的值和选通的数码管对应关系为:
0x1F对应秒个位、0x2F对应秒十位、0x37对应分个位、0x3B对应分十位、0x3D对应时个位、0x3E对应时十位。
图2.5显示电路LED显示器的结构与原理
2.6.2LED的结构与原理
下面以最简单的七段数码显示器为例进行说明。
通常用的七段数码显示器的内部有8个发光二极管,其中7个发光二极管组成了数字“8”,剩下一个发光二极管就是这位数字所带的小数点。
数码管结构图如图2.6所示。
一般数码管内部有共阴和共阳两种连接方式。
共阴就是将各个发光二极管的阴极接地,共阴极数码管如图
(1)所示。
图中一个发光二极管就相当于一个数码段。
若给某段加上高电平,那么相对的段就会亮。
根据要想显示的数值给各段数码管加上相应的高电平就可以显示不同的数值了。
共阳就是将各个发光二极管的阴极一起接在高电平上。
共阳数码管如图(3)所示,从图(3)中可以看出共阳的显示器与共阴的显示器有一点区别,就是它将阳极连接在一起接到高电平上。
这样在想显示某个数的时候,各个发光二极管赋低电平而不是在共阴时的高电平了,这就是共阴共阳的区别。
图2.6是8段LED数码的结构示意图,其内部实质上是8只发光二极管。
[7]
显示字符
数显代码
显示字符
数显代码
0
0x3f
5
0x6d
1
0x06
6
0x7d
2
0x5b
7
0x07
3
0x4f
8
0x7f
4
0x66
9
0x6f
图2.6
(1)LED的引脚图
图2.6
(2)共阴数码图2.6(3)共阳数码
由于它内部构造不同,在显示时代码也有所不同,共阴七段LED段选码表如表2.1所示。
表2.1共阴七段LED段选码
2.7电源电路
该部分有1个输出电压5V。
220V交流市电通过电源变压器变换成交流12V低压,再经过桥式整流电路D1~D4和滤波电容2200uf的整流和滤波,在固定式三端稳压器LM7809的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。
此直流电压经过LM7809的稳压和100uf电容的滤波后,便在稳压电源的输出产生了精度高、稳定度好的直流输出9V电压。
9V电压给可调分流基准芯片TL431提供电源。
TL431的主要作用是给A/D转换芯片TLC1549提供比较精确的参考电压。
9V电源再经过LM7805稳压后,给各个芯片提供电源。
电路见图2.7。
[8]
图2.7电源电路
三端稳压器是标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。
三端稳压器的工作原理(以78系列为例)如下:
它与一般分立元件组成的串联式稳压电路基本相似。
不同的是增加了启动电路、保护电路和恒流源。
启动电路是为恒流源建立工作点而设置的。
恒流源随着在基准电压形成和误差放大器电路中,是为了使稳压器能够在比较大的电压变化范围内正常可靠工作。
在芯片内设置了两种较完善的保护电路:
一是过流保护,一是过热保护。
[9]
三、软件设计流程图
3.1时钟主程序流程图
时钟主程序流程图如图3.1所示。
进入系统后首先实现程序的初始化,然后进入主程序,定时器开始计时,当定时器发生中断时刷新数码管同时显示,之后实现中断与显示的循环。
3.2按键扫描程序流程图
按键扫描程序流程图如图3.2所示。
主程序进入键盘扫描程序后判断是否按下了P1,0。
若是按下了P1.0为了去除抖动再进行确认是否按下P1.0,当确认按下了P1.0后判断按下P1.0的次数,若按了一次则进行秒调整,若按了两次则进行分调整,若按了三次则进行时调整。
然后进入显示程序段进行显示刷新。
图3.1时钟主程序流程
图3.2按键扫描程序流程
3.3时钟程序流程
时钟程序流程如图3.3所示。
设计中,采用51单片机的定时器的方式一定时,所以如图所示,当程序产生定时溢出中断时要重新赋初值。
[10]然后进行是否到一秒的判断,若到一秒则秒加一,若未到则直接退出中断。
一秒到了加一以后进行是否秒到六十的判断,若秒到六十则秒清零,同时分加一,若秒未到六十则退出中断。
分加一以后进行分是否到六十的判断,若未到六十则退出中断,若分到六十则分清零,同时小时加一。
小时加一后进行小时是否到二十四的判断,若未到二十四则退出中断,若到二十四则清零,然后退出中断。
图3.3时钟程序流程
四、软硬件系统的调试
硬件调试的主要任务是排除硬件故障,其中包括线的连接,按键是否接了上拉电阻等。
由于最小系统出了点错误,导致写好的芯片无法显示。
经万用表检查,手工慢慢焊接好后接入电源。
再用万用表检查各个芯片管脚的电压是否达到正常的工作电压,然后判断是否有存在短路现象等,经一步步修改后把硬件调试好。
[11]
程序的调试是采用一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能等;最后逐步将各子程序联接起来总调。
联调需要注意的是,各程序模块间能否正确传递参数。
[12]
在程序调试过程当中,出现了以下几个问题:
1)LED闪烁问题:
虽然本次设计的最终方案是采用LCD显示屏实现显示功能,但是在进行方案比较时曾采用过LED显示方法,最初数码管显示不正常,出现闪烁现象。
通过调试发现这是由于延时时间选择不当造成的。
由于数码管是采用动态显示方式,为了使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间延时。
由于一开始所选用的延时时间太短,因此出现闪烁现象,在增加显示延时之后,数码管显示正常。
2)闹铃蜂鸣器异常启动问题:
闹铃蜂鸣器的启动/关闭是通过单片机输出的控制信号来实现的,当当前时间与整点时间比较吻合时,单片机将对闹铃控制口P3.4执行取反命令,从而启动蜂鸣器发声。
一开始编写程序时,没有对P3.4口的最初状态作正确设置,由于系统开机复位后,P3.4口处于高电平状态,因此出现一开机蜂鸣器就处于启动状态的情况。
通过在主程序最开始加入对P3.4口取零命令后,蜂鸣器启动/关闭控制恢复正常。
[13]
3)按键消抖问题:
在最初编写程序时,键盘控制部分按照常例加入了按键消抖程序。
在实际调试中,发现按键出现反应不灵敏现象。
这是因为在键盘控制程序中,除了消抖程序外,还加入了按键提示音程序(每次按压键盘时,蜂鸣器发出“哔”的一声提示音)。
由于在调用提示音子程序时,实际上已实现了一次时间的延时,因此再加入按键消抖程序的延时后,致使延时时间过长而出现按键反应不灵敏问题。
通过调试发现提示音子程序本身所产生的延时已能够满足按键消抖时间延迟的要求,因此在键盘控制程序中无需再加入专门的按键消抖程序。
在去除按键消抖程序后,按键控制灵敏度恢复正常。
[14]
4)计时显示异常问题:
计时程序里面秒值显示每次达到60后直接跳变到下一分钟的01秒,最终会出现24:
60:
60的时间显示。
正确的显示应该是秒值达到59后变成00,时间值在显示到23:
59:
59之后的下一秒显示为00:
00:
00。
出现这种异常显示的主要问题在于每次计时相应的时钟计时器在向高一位进位的时候没有将显存单元清零。
因此在计时程序里面出现进位情况时,增加相应显存清零的语句后,计时显示恢复正常。
经过不断的调试以后,总体功能达到了预期效果。
时间误差很小,运行一天以后时通过按键可以修改当前时间。
当定时时间到24小时,数码管自动的显示0,然后又从0开始计时。
参考文献
[1]李建民.模拟电子技术基础[M].清华大学出版社,2006.
[2]杨志忠.数字电子技术[M].北京:
高等教育出版社,2003,12.
[3]胡汉才.单片机原理及其接口技术[M].清华大学出版社,1996.
[4]康华光主编.电子技术基础[M](数字部分、模拟部分),高等教育出版社,1998.
[5]李勋,刘源.单片机实用教程.北京航空航天大学出版社,2006.
[6]王建校,杨建国.51系列单片机及C51程序设计[M].科学出版社,2002.
[7]谢嘉奎.电子线路(线性部)[M].第四版.北京:
高等教育出版社,1999.
[8]谢自美.电子电路设计.实验.测试[M].武昌:
华中理工大学出版社,1994.
[9]胡宴如.模拟电子技术[M].北京:
高等教育出版社,2004,2.
[10]何立民.MCS51系列单片机应用系统设计[M].北京航空航天大学出版社,1990.
[11]廖芳.电子产品生产工艺与管理[M].电子工业出版社,2003.
[12]严天峰单片机应用系统设计与仿真调试.北京航空航天大学出版社,2005.
[13]童诗白.模拟电子技术基础[M].第二版.北京:
人民邮电出版社,1999.
[14]苏家健,曹柏荣,汪志峰.单片机原理与应用技术.高等教育出版社,2002.
附录
系统硬件电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子钟 设计方案
![提示](https://static.bdocx.com/images/bang_tan.gif)