找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1683|回复: 0
打印 上一主题 下一主题
收起左侧

基于51单片机的电子时钟设计

[复制链接]
跳转到指定楼层
楼主
ID:656668 发表于 2020-3-26 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机,是集 CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器。自
20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注。它体积
小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发
较为容易,广泛应用于智能生产和工业自动化上。
本系统为基于DS12C887 的 多功能电子钟 ,以STC89C51单片机 作为主控芯,采用实时
时钟芯片DS12C887,使用 1602 液晶作为显示输出。该系统走时精确,具有闹钟设置,
时间模式切换,秒表以及可同时显示时间、日期等多种功能。本文将详细介绍STC89C51
单片机和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
四、总结 ............................................................... 9
4.1 作品功能、特色.................................................. 9
4.2 综合设计的体会.................................................. 9
参考文献 .............................................................. 11
附录 .................................................................. 12-
- 1 --
前 言
随着科学技术的不断发展 , 人们对时间计量的要求越来越高 。在当今社会,电子
时钟已经得到相当广泛的应用,产品多样,发展更是多元化。本作品是以STC89C51单
片机 作为主控芯片,使用 12MHZ的晶振,使用专用时钟日历芯片DS12C887 产生时间
信息,时间精确。软件部分以C语言为主体,用 1602LCD液晶屏显示输出信息,输出
信息量多,更直观、人性化。该时钟可实现人机交互,可通过提供的键盘对其进行
调整。系统具有以下功能:年、月、日、时、分、秒显示;12 小时/24 小时模式切换,
在 12 小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且
闹钟可设置多组。本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时
钟芯片,调整按键,蜂鸣器,电源五大部分组成-
- 2 --
一、方案选型:
我们在设计电子时钟时遇到了芯片选型的问题,以下是三个设计方案:
方案一:DS1302+数码管
DS1302 的使用非常方便,而且价格便宜而数码管显示的也很清楚,特别是显示
时间很直观。但在制作过程中我们发现了这方案的一些问题。DS1302 是不自带电池,
虽然可以通过外接纽扣电池来达到断电走时继续的目的,但在实际调试中会发现这
是比较困难的。因为 DS1302 上电需要复位,而复位就会把正确的走时清零。如果不
复位,DS1302 会出现各种各样的问题,如不走时、读出乱码等。要解决这个问题需
要增加如 2402 等存储器,上电后先存储时间值,再复位。这么做无疑增加了电路设
计和软件设计的复杂度。而使用数码管显示,虽然价格也便宜,显示效果好,但多
位的数码管在动态扫描的时候会出现闪烁。如果少用几位,用切换的方法查看日期,
时间等信息又显得麻烦。
方案二:DS12C887+1602LCD 液晶屏
DS12C887 时钟芯片功能丰富价格适中,能够自动产生世纪、年、月、日、时、
分、秒以及时间模式转换等的时间信息,芯片内部增加了世纪存储器,从而利用硬
件电路解决了“千年”的问题。DS12C887 时钟芯片中还自带有锂电池,单片机掉电
后时钟芯片内部的时间信息可以保持十年之久。1602LCD 液晶屏可以输出 2 行,每行
显示 16 个字符。虽然 1602LCD 液晶屏较昂贵,但是该液晶屏显示清晰且不会闪烁,
由于液晶屏是数字式的,因此和单片机系统的接口简单,操作方便。1602LCD 液晶屏
的功耗主要消耗在其内部的电极和驱动 IC 上,因而耗电量比其它显示器要少得多,
功耗较低。以上两种元件的程序编写简单,适用于多方面的应用。
方案三:SD2068+1602LCD 液晶屏
SD2068 实时时钟芯片功能更加丰富,它除了具备有 DS12C887 时钟芯片的功能,
另外还内置时钟精度数字调整功能,可以在很宽的范围内校正时钟的偏差;内置上
电复位电路及指示位;内置电源稳压,内部计时电压可低至 1.5V。该芯片为工业级产
品,是在选用实时时钟 IC 时的理想选择。但是该芯片是一款新型的芯片,使用并不
广泛,操作不方便,可能会出现芯片不稳定等的因素。
因此由以上三种方案进行比较,我们选择方案二来设计电子时钟。以 STC89C51-
- 3 --
为主控芯片,DS12C887 为时钟芯片,1602LCD 液晶屏作为显示器。程序控制 DS12C887
时钟芯片实现小时,分,秒和年,月,日的计时,并在 1602LCD 液晶屏上显示出来。通
过按键对 12 小时/24 小时显示模式切换。当时间走到程序所设定的时间时,蜂鸣器
响起,起到闹铃功能。当要
显示秒表计时时,可以通过按键切换来实现。
二、系统硬件设计
2.1 51 单片机最小系统设计
单片机最小系统如下图 1-1 所示:
图 1-1
以 STC89C51 单片机为核心,选用 12MHZ 的晶振,由于晶振的频率越高,单片
机的运行速度就越快,但考虑到单片机的运行速度快会导致对存储器的要求就会变
高,因此 12MHZ 晶振为最佳选择。外接电容的值虽然没有严格的要求,但是外接电
容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选
用 30pF 的电容作为起振电容。复位电路为按键高电平复位,当按键按下,RES 端为
高电平,当高电平持续 4us 的时间就可以使单片机复位。
2.2 电源供电电路设计
电源供电电路如下图 1-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。因此设计串口通信电路就是让这两种电平统一。
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:模式选择脚。SQW:方波
输出脚,当供电电压 VCC 大于 4.25V 时,SQW 脚可进行方波输出。AD0~AD7:复用地
址数据总线,该总线采用分时复用技术,在总线周期的前半部分,出现在 AD0~AD7
上的是地址信息,可用以选通 DS12C887 内的 RAM,总线周期的后半部分出现在 AD0
~AD7 上的数据信息 AS:地址选通输入脚。DS/RD:数据选择或读输入脚,该引脚
有两种工作模式,当 MOT 接 VCC 时,选用 Motorola 工作模式,在这种工作模式中,
每个总线周期的后一部分的 DS 为高电平。在读操作中,DS 的上升沿使 DS12C887 将
内部数据送往总线 AD0~AD7 上,以供外部读取 在写操作中,DS 的下降沿将使总线
AD0~AD7 上的数据锁存在 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
1602LCD 液晶屏为 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 引脚上,当给该引脚一个低电平,三极管导通,蜂鸣器发出
声音作为闹铃。
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:调时功能流程图-
- 9 --
3.2 系统程序设计 (见附录)
四、总结
4.1 作品功能、特色
本系统实现了人机交互功能,有夏时令制以及万年历功能。可对年、月、日、时、
分、秒进行任意设定,多组闹钟设定任你行,具有整点报时功能,模式切换随你意,秒
表功能同时有。
特色:本系统采用 1602LCD 显示信息,相比其他电子时钟,其显示信息更丰富,
可同时显示时间,日期,星期等。秒表功能精确到毫秒级,比普通具有秒表功能的时钟
要高一个数量级。闹钟可设置多组,解决了普通电子钟只能设置一组给大家带来的烦恼。
系统具有断电保护功能,芯片可以保存掉电时候的信息并继续工作,其睡眠工作时间可
长达 12 小时
4.2 综合设计的体会
本次大赛很好的锻炼了我们的动手能力以及团队合作能力,让我们享受到电子设
计的快乐。让我们开阔了视野,同时也增长了见识,在课余时间发挥想象和积极思考,
锻炼了自己的思维能力。在元件的选择和电路的设计上我们大胆创新,敢于尝试,并
且积极搜查资料,认真分析,选择出最优的电路组合,使整个系统能够按照设计要求-
- 10 --
稳定运行。-
- 11 --
参考文献

[1] 李广弟等编 单片机基础北京航空航天大学出版社 2001
[2] 吴金戌等编 8051 单片机实践与应用清华大学出版社 2001
[3] 王洪庆编 微型计算机控制技术机械工业出版社 2006
[4] 付家才编 单片机控制工程实践技术化学工业出版社 2004
[5] 鲍宏亚等编 MCS-51 系列单片机应用系统设计及实用技术中国宇航出版社
2005
[6] 杨文龙.单片机原理及应用[M].西安电子科技大学出版社, 2000
[7] 赵文博,刘文涛.单片机语言 C51 程序设计[M].人民邮电出版社, 2006-
- 12 --
附录
/*******************************************************************************
***************************************
1602 管脚分配:1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 16
VSS VDD VL RS R/W E D0
D1 D2 D3 D4 D5
D6 D7 BLA BLK
| | | | |
|
|
| | |
|
| | |
|
|
| | | | |
|
|
| | |
|
| | |
|
|
P2.5 GND P2.6
P1.0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~P1.7 GND
(R/W 接 GND 实现只写不读)
/*******************************************************************************
**************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit lcd_en=P2^6;

//LCD1602 使能信号 E 位定义
sbit lcd_rs=P2^5;

//LCD1602 读/写(H/L)控制信号 RS 位定义
uchar ii,ll;
//在 1602 上写字符串所用的变量
sbit beep=P2^3;
//蜂鸣器实现闹钟报警
sbit dscs=P2^7;
sbit dsas=P2^4;
sbit dsrw=P3^6;
sbit dsds=P3^7;
sbit dsirq=P3^2; //闹钟申请
//按键部分
sbit s1=P2^0;
sbit s2=P2^1;-
- 13 --
sbit s3=P2^2;
sbit s4=P3^0;
uchar code table4[] =" 20 - - Mon";
uchar code table5[]=" : : ";
uchar count,s3_num,s4_num,flag,flag1;
uchar miao,shi,fen,nian,yue,ri,xinqi,n_miao,n_shi,n_fen;
//显示字符串
uchar code table1[] =" 2009-07-13 Mon";
uchar code table2[]=" 00:00:00";
uchar code table3[] =" Alarm Clock ";//闹钟字符串
//void display()

基于51单片机的电子时钟设计.rar

441.56 KB, 下载次数: 22, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表