1、- - I - 设计题目: 基于51单片机的电子时钟设计 摘 要 单片机,是集CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器。自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。 本系统为基于DS12C887的多功能电子钟,以STC89C51单片机作为主控芯,采用实时时钟芯片DS12C887,使用1602液晶作为显示输出。该系统走时精确,具有闹钟设置,时间模式切换,秒表以及可同时显示时间、日期等多种功能。本文将详细介绍STC89
2、C51单片机和DS12C887时钟芯片的基本原理,从软件和硬件电路的实现两大方面进行分析 【关键词】 STC89C51 单片机 液晶屏 时钟芯片 蜂鸣器 目 录 - - II - 前 言 . 1 一、方案选型: . 2 二、系统硬件设计 . 3 2.1 51单片机最小系统设计 . 3 2.2 电源供电电路设计 . 3 2.3 串口通信电路设计 . 4 2.4 时钟芯片电路设计 . 4 2.5 LCD显示电路设计 . 6 2.6 报警电路设计 . 6 2.7 键控电路设计 . 6 三、系统软件设计 . 7 3.1 系统程序流程图设计 . 7 3.2 系统程序设计 (见附录) . 9 四、总结 .
3、 9 4.1 作品功能、特色 . 9 4.2 综合设计的体会 . 9 参考文献 . 11 附录 . 12 - - 1 - 前 言 随着科学技术的不断发展 , 人们对时间计量的要求越来越高 。在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。本作品是以STC89C5 1单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。软件部分以C语言为主体,用1602LCD液晶屏显示输出信息,输出信息量多,更直观、人性化。该时钟可实现人机交互,可通过提供的键盘对其进行调整。系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式
4、切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。 - - 2 - 一、方案选型: 我们在设计电子时钟时遇到了芯片选型的问题,以下是三个设计方案: 方案一:DS1302+数码管 DS1302的使用非常方便,而且价格便宜而数码管显示的也很清楚,特别是显示时间很直观。但在制作过程中我们发现了这方案的一些问题。DS1302是不自带电池,虽然可以通过外接纽扣电池来达到断电走时继续的目的,但在实际调试中会发现这是比较困难的。因为DS1302上电需要
5、复位,而复位就会把正确的走时清零。如果不复位,DS1302会出现各种各样的问题,如不走时、读出乱码等。要解决这个问题需要增加如2402等存储器,上电后先存储时间值,再复位。这么做无疑增加了电路设计和软件设计的复杂度。而使用数码管显示,虽然价格也便宜,显示效果好,但多位的数码管在动态扫描的时候会出现闪烁。如果少用几位,用切换的方法查看日期,时间等信息又显得麻烦。 方案二:DS12C887+1602LCD液晶屏 DS12C887时钟芯片功能丰富价格适中,能够自动产生世纪、年、月、日、时、分、秒以及时间模式转换等的时间信息,芯片内部增加了世纪存储器,从而利用硬件电路解决了“千年”的问题。DS12C8
6、87时钟芯片中还自带有锂电池,单片机掉电后时钟芯片内部的时间信息可以保持十年之久。1602LCD液晶屏可以输出2行,每行显示16个字符。虽然1602LCD液晶屏较昂贵,但是该液晶屏显示清晰且不会闪烁,由于液晶屏是数字式的,因此和单片机系统的接口简单,操作方便。1602LCD液晶屏的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多,功耗较低。以上两种元件的程序编写简单,适用于多方面的应用。 方案三:SD2068+1602LCD液晶屏 SD2068实时时钟芯片功能更加丰富,它除了具备有DS12C887时钟芯片的功能,另外还内置时钟精度数字调整功能,可以在很宽的范围内校正时钟的
7、偏差;内置上电复位电路及指示位;内置电源稳压,内部计时电压可低至1.5V。该芯片为工业级产品,是在选用实时时钟IC时的理想选择。但是该芯片是一款新型的芯片,使用并不广泛,操作不方便,可能会出现芯片不稳定等的因素。 因此由以上三种方案进行比较,我们选择方案二来设计电子时钟。以STC89C51- - 3 - 为主控芯片,DS12C887为时钟芯片,1602LCD液晶屏作为显示器。程序控制DS12C887时钟芯片实现小时,分,秒和年,月,日的计时,并在1602LCD液晶屏上显示出来。通过按键对12小时/24小时显示模式切换。当时间走到程序所设定的时间时,蜂鸣器响起,起到闹铃功能。当要 显示秒表计时时
8、,可以通过按键切换来实现。 二、系统硬件设计 2.1 51单片机最小系统设计 单片机最小系统如下图1-1所示: 图1-1 以STC89C51单片机为核心,选用12MHZ的晶振,由于晶振的频率越高,单片机的运行速度就越快,但考虑到单片机的运行速度快会导致对存储器的要求就会变高,因此12MHZ晶振为最佳选择。外接电容的值虽然没有严格的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用30pF的电容作为起振电容。复位电路为按键高电平复位,当按键按下,RES端为高电平,当高电平持续4us的时间就可以使单片机复位。 2.2 电源供电电路设计 电源供电电路如下图1-
9、2所示: - - 4 - 图1-2 我们采用外接USB端口的方式为单片机供电,LPOW1为电源显示灯,当按键S5按下,显示灯亮,表示给单片机供+5V电压。 2.3 串口通信电路设计 串口通信电路如下图1-3所示: 图1-3 串口通信电路图 图中通过MAX232进行TTL电平和232电平转换,从而单片机和上位机之间通信提供通道。通信电路的目的就是让通信双发的电平匹配,单片机用的是TTL电平,上位机的串口用的是232电平。TTL电平的逻辑1的电压范围是+3.3V到+5V,逻辑0的电压范围是0到+3.3V;232电平的逻辑1的电压范围是- 15V到- 5V,逻辑0的电压范围是+5V到+15V。因此设
10、计串口通信电路就是让这两种电平统一。 2.4 时钟芯片电路设计 时钟芯片电路如下图1-4所示: - - 5 - 图1-4 我们采用DS12C887时钟芯片定时及计时功能,DS12C887时钟芯片共需要13条信号线。GND、 VCC:直流电源,其中VCC接+5V输入,GND接地,当VCC输入为+5V时,用户可以访问DS12C887内RAM中的数据,并可对其进行读、写操作;当VCC的输入小于+4.25V时,禁止用户对内部RAM进行读、写操作,此时用户不能正确获取芯片内的时间信息;当VCC的输入小于+3V时, DS12C887会自动将电源发换到内部自带的锂电池上,以保证内部的电路能够正常工作 MOT
11、:模式选择脚。SQW:方波输出脚,当供电电压VCC大于4.25V时,SQW脚可进行方波输出。AD0AD7:复用地址数据总线,该总线采用分时复用技术,在总线周期的前半部分,出现在AD0AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0AD7上的数据信息 AS:地址选通输入脚。DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT接VCC时,选用Motorola工作模式,在这种工作模式中,每个总线周期的后一部分的DS为高电平。在读操作中,DS的上升沿使DS12C887将内部数据送往总线AD0AD7上,以供外部读取在写操作中,DS的下降沿将使总线 AD
12、0AD7上的数据锁存在DS12C887中。当MOT接GND时,选用Intel工作模式,在该模式中,该引脚是读允许输入脚 R/W:读/写输入端,该管脚也有2种工作模式,当MOT接VCC时,R/W工作在Motorola模式 CS:片选输入,低电平有效 IRQ:中断请求输入,低电平有效,该脚有效对DS12C887内的时钟、日历和RAM中的内容没有任何影响,仅内部的控制寄存器有影响,在典型的应用中,RESET可以直接接VCC,这样可以保证DS1 2C887在掉电时,其内部控制寄存器不受影响 - - 6 - 2.5 LCD显示电路设计 1602LCD液晶屏显示电路如下图1-5所示: 图1-5 1602L
13、CD液晶屏为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字。液晶1,2端为电源;15,16为背光电源;为防止直接加5V而烧坏背光灯,在15脚串联一个1k电阻用于限流。液晶3端为液晶对比度调节端,通过一个10k的变位器来调节液晶显示对比度。液晶4端为向液晶控制器写数据/写命令选择端,接单片机的P3.5口。液晶5端为读/写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。液晶6端为使能信号,是操作时必须的信号,接单片机的P3.4口。 2.6 报警电路设计 蜂鸣器闹铃电路如下图1-6所示 图1-6 蜂鸣器电路接在单片机的P2.3引脚
14、上,当给该引脚一个低电平,三极管导通,蜂鸣器发出声音作为闹铃。 2.7 键控电路设计 按键调整电路如下图1-7所示: - - 7 - 图1-7 四个独立键盘均采用查询方式,我们将按键的一端接地,另一端各接一根输入线直接与STC89C51的I/O口相连,当按键闭合时,相当于该I/O口通过按键与地相连,变成低电平,单片机通过检测I/O口的电平状态,即可以识别出按下的键。通过四个按键实现各方式的切换,S2用于12小时/24小时的模式切换,S3用于秒表功能与时钟功能间的切换,S4用于实现参数设置和调节功能。 三、系统软件设计 3.1 系统程序流程图设计 流程图1:实验主程序流程图 - - 8 - 流程图2:定时中断程序流程图 流程图3:调时功能流程图