电子时钟实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用设计报告
题目电子时钟的设计
专业物理学
院部物理与电子工程学院
学号-----------
姓名-----------
指导教师-----------
答辩时间二0一二年五月
工作时间:2012年5月
基于单片机的电子时钟系统的设计
指导教师:---
学生:---
关键词:单片机;电子时钟;键盘控制器;
目录
第一章总体设计 (1)
第二章系统硬件设计 (2)
2.1 硬件电路 (2)
2.1.1 单片机最小系统 (3)
2.1.2 键盘电路 (5)
2.1.3 显示电路 (5)
第三章系统软件设计 (6)
3.1主程序流程图 (6)
3.2 主要子程序的流程图 (7)
第四章系统仿真 (8)
第五章综合调试与问题的解决 (9)
5.1 硬件调试 (9)
5.2 软件调试问题及解决 (9)
结论 (10)
参考文献 (10)
附录 (11)
第一章 总体设计
1.1 设计要求
电子时钟的计时范围00时00分00秒至23时59分59秒,由按键来调节时钟时间,时分秒都可以调整。
1.2 设计思路
根据设计的要求可确定如下的设计思路:利用AT89C52系统单片机,LCD 液晶显示器,键盘等一些辅助元件来生成时钟电路已达到设计要求,然后通过编写相应的程序来实现对时钟的调试和控制。
1.3 电路的设计方案
随着单片机技术的飞速发展,通过单片机对控制对象的控制日益成为今后自动控制领域的一个发展方向 。采用MCS--52单片机来对时间进行控制,不仅具有控时方便,组太简单和灵和性大等优点,而且可以大幅度的提高控制时间的技术指标。从而可以大大提高产品的质量和数量,因此单片机对时间的控制问题是一个工业生产上经常会遇到的问题。 经过设计和元器件的功能,设计要求和设计思路,确定相应的设计方案,该电路有多部分组成,如控制键盘的输入电路,单片机的时钟电路,LCD 液晶显示时间电路等。所以根据上述条件作出相应的实时时钟电路总的框图,然后开始设计内部驱动程序,是各种芯片按照相应的程序实现特定的功能,之后按照程序的设计,将相应的管脚连接调试,看是够能实现特定的功能。
硬件框图如下:
图1-1 硬件框图
主程序设计的流程图如下:
开始
参数初始化
实现各功能的子程序
显示子程序
图1-2 主程序设计流程图
第二章系统硬件设计
系统硬件是整个系统的基础,需要考虑多个方面,除了实现显示和闹钟的基本功能外,还要注意系统的稳定度、器件的通用性、软件编程的以实现性、系统其它功能及性能指标。
2.1 硬件电路
本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、键盘及时间显示、及调时模块等。其硬件图如下:
图2-1 数字电子时钟硬件设计图
液晶电路图:
图2--2
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
时钟的00时00分00秒显示设为程序的默认值,当时钟的时间走到10点时,蜂鸣器就打开并开始发出生音。
可以通过手动调节s1和s2以及s3调节时钟时间。
2.1.1 单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对52系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路。
其中时钟电路电路图如下:
图2-3时钟电路
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地[1-3]。
复位电路电路图如下:
图2-4复位电路图
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0-P3口均置1
引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用
6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响。
复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.一般教科书推荐C 取10u,R取8.2K.当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平[1-3]。
2.1.2 键盘电路
单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地(一般接地),这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。
独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。将常开按键的一端接地,另一端接一个I/O 口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。当有键按下时,此I/O 口与地短路迫使I/O 口为低电平。按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了[7]。
在用单片机对键盘处理的时候涉及到了一个重要的过程,那就是键盘的去抖动。这里说的抖动是机械的抖动,是当键盘在未按到按下的临界区产生的电平不稳定正常现象,并不是我们在按键时通过注意可以避免的。这种抖动一般10~200毫秒之间,这种不稳定电平的抖动时间对于人来说太快了,而对于时钟是微秒的单片机而言则是慢长的。为了提高系统的稳定,我们必须去除或避开它。目前的技术有硬件去抖动和软件去抖动,硬件去抖动就是用部分电路对抖动部分加之处理,但是实现的难度较大又会提高了成本。软件去抖动不是去掉抖动,而是避抖动部分的时间,等键盘稳定了再对其处理。所以这里选择了软件去抖动,实现法是先查寻按键当有低电平出现时立即延时10~200毫秒以避开抖动(经典值为20毫秒),延时结束后再读一次I/O 口的值,这一次的值如果为1 表示低电平的时间不到10~200 毫秒,视为干扰信号。当读出的值是0时则表示有按键按下,调用相应的处理程序。