历史上的今天
返回首页

历史上的今天

今天是:2025年03月04日(星期二)

正在发生

2020年03月04日 | 基于51单片机的日历时钟

2020-03-04 来源:51hei

1 引言

随着微电子技术与大规模集成电路的发展,单片机的串行通信应用正在不断的走向深入,由于它具有功能强、体积小、功耗低、价格便宜、工作可靠、使用方便等特点,广泛使用与我们生活的各个领域。单片机往往是作为一个核心部件来使用,再根据具体硬件结构,以及针对各种具体的要求使用相应的外部扩展,来实现具体的实际要求。


本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。系统由主控制器AT89C52、时钟电路DS1302、显示电路、按键电路、和复合电路等部分构成,能实现时钟日历的显示的功能,能进行时、分、秒的显示。


2 硬件设计

2.1电路设计框图

2.2 电路原理图

2.3.1时钟电路

(1)DS1302引脚功能                     

DS1302引脚图

VCC1.VCC2:电源引脚。                        

其中VCC2接主电源,VCC1接备用电源。

GND:接地。输出数据。

X1、X2:32.768kHz。晶振引脚。


若采用外部振荡信号时。32768Hz的信号从 X1脚输入.x2脚悬空。  RST:片选端,高电平有效。RST端接通控制逻辑,当其为‘0”时 ,IO引脚变为高阻截状态,所有的数据传送中止,当其为‘1’时,允许数据传送。RST由‘0’至‘1’时。SCIK必须为“0”。

DS1302每次操作时,须把RST置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK的上升沿串行输入。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据。


2.3.2串口电路

该微处理器采用AT89C52单片机作为主控芯片,在电路中单片机的P1.2控制DS1302的复位输入端,P1.0与数据输入/输出引脚相连,P1.1用来作为DS1302的输入时钟SCLK控制端。为防止单片机复位时端口电平变化导致DS1302计时的不稳定,主电源(5 V)接 VCC2,备份电池采用可充电镉镍电池(3.6 V)接 VCC1。


2.3.3复位电路

单片机在开关机时都需要复位,以便中央处理器CPU及其他功能部件都RC构成处于一个确定的初始状态,并从这个状态开始工作。AT89C52的RST引脚是复位信号的输入端。复位信号高电平有效,持续时间需要24个时钟周期以上。

RC构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单片机将复位。为保证微分脉冲宽度足够大,RC时间常数应大于2个机器周期。一般取10uF电容、8.2K欧姆电阻。


2.3.4键盘设置电路

(1)独立式键盘

独立式键盘是指直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,当某个键闭合时,相应的I/O口线变为低电平,当CPU查询到为低电平的I/O口线时,就可以判别出与其对应的键处于释放状态。

(2)设置电路介绍

设置电路的功能主要是把时间和日期设置到当前的时间,可以在系统运行中进行。用4个独立式按键完成,分别接到单片机P3口的高4位。

4个按键的功能设计如下:

①第1个按钮表示是否进行设置,按下时表示设置,并且每按一次,在显示器上分别在年、月、日等日期时间上跳转,表示对相应的项进行更改;

②第2个按钮按下表示对第1个按钮选中的项进行加1操作;

③第3个按钮按下表示对第1个按钮选中的项进行减1操作;

④第4个按钮按下表示停止设置;


3 软件设计

程序流程图


主程序设计

从上面主程序看出,主程序的组成是通过分别调用各子程序组成总体系统功 能,能很直观的看出主程序所要完成的功能,首先是初始化各模块,之后调用键 盘完成时间的调整,调用日历子程序完成日历时钟的初始化和时间数据的读写,调用显示子程序显示数据,最后又转到键盘程序来回循环。


初始化部分主要有初始化定时器部分和和一些寄存器、标志位、初始化时间 等。

对定时器T0初始化时,首先置初值,CPU 开中断,定时器 T0 开中断,并且开始计数,而对定时器 T1 初始化时,首先置初值,定时器T1关中断,并且停止,只有收到命令时才能产生中断。


寄存器的初始化主要是初始化执行程序时用到的部分RAM空间,防止程序执行时带来混乱。

标志位初始化是对时间调整时 判断是调分还是调时等而专设的位 标志,初始化过程中标志位全部置0,即开始时是处于显示状态,而不是调整状态,这一点在程序中相当明了

初始化时间是开机时显示的时间,并通过调用日历时钟的写程序来完成时间的置初值。


4 调试结果与讨论

4.1硬件调试

4.1.1硬件调试方法

首先通过电路图和和万用表确认元件型号、规格、工作状况和安装情况是否正确,然后在通电的情况下,执行读写指令,对用户样机的存储器、I/O端口进行读写和逻辑检查等操作,用示波器等设备观察波形(如输出波形、读/写控制信号、地址数据波形和有关控制电平),通过波形的观察分析,发现和排除故障。


4.2软件调试

软件调试方法与选用的软件结构和程序设计技术有关。如果采用模块设计技术,则逐个模块调好以后,再进行系统程序总调试。在这里我们采用Protues仿真进行软件测试,将主程序的HEX文件下载到AT89C52中,点击开始仿真,结果如图所示;点击四个按键能实现上述功能

4.3调试结果分析与讨论

在经过简单的调试后,在液晶显示屏上显示了对应时间并且按键的对应功能都可实现。

实验结束后,我们对这次实验进行了反思和总结: 由于思路的不清晰以及相关知识的不充分,遇到了许多问题,在参考了文献和和向他人请教后,理清思路,最终完成了这次实验。通过这次实验认识到了自己的不足也收获了许多经验,获益匪浅。


5  主要参考文献

[1]田富洋,李晋阳,基于单片机的日历时钟设计[J].常州信息职业技术学院学报,2012( 3) : 32-35。

[2]李光飞,51系列单片机设计实例[M].北京: 北京航 空航天大学出版社,2003: 24-28。

[3] 孙佳玲.基于单片机的多功能数字时钟系统设计分析[J].吉林工 程技术师范学院学报,2009,(10):25-26.

[4] 楼然苗.单片机课程设计指导[M]. 北京:北京航空航天大学出版社,2007.7

[5] 朱思荣.51单片机实现公历与农历、星期的转换[Z].当当电子网

[6] 王越明.电子万年历的设计[J].黑龙江科技信息,2004年

[7]沈庆阳, 80C51单片机实践与应用[M].北京: 清华大 学出版社,2003: 81-86。

推荐阅读

史海拾趣

CONTEC公司的发展小趣事

近年来,随着手持式脉搏血氧仪市场的不断扩大,CONTEC公司凭借其在医疗设备领域的技术积累和市场经验,成功切入该领域并取得了显著成绩。公司的手持式脉搏血氧仪产品凭借其高精度、稳定性和便捷性受到了市场的广泛认可。在全球手持式脉搏血氧仪市场规模持续增长的背景下,CONTEC公司凭借其技术优势和市场竞争力,不断拓展国内外市场,实现了快速发展。

请注意,以上故事仅基于公开信息整理,如需更详细和深入的了解,建议查阅相关行业报告或联系公司获取更准确的信息。同时,这些故事仅描述了CONTEC公司在不同发展阶段的一些重要事件和成就,并不代表其全部发展历程。

赛微(Cellwise)公司的发展小趣事

赛微公司自创立之初,就专注于模拟芯片的研发和销售。公司汇聚了一批资深的模拟集成电路设计专家和电池电化学专家,致力于在电池管理芯片和电源管理芯片领域实现技术突破。通过不断的技术创新和研发投入,赛微成功推出了一系列高性能、高可靠性的电池安全芯片、电池计量芯片和充电管理芯片等产品,赢得了市场的广泛认可。

ALPS公司的发展小趣事

在技术创新和产品研发的过程中,赛微高度重视知识产权的保护和管理。公司积极申请各类专利和软件著作权,加强知识产权保护力度。截至目前,赛微已经拥有国际/国内软件著作权98项,国际/国内专利166项,正在申请的国际/国内专利64项。这些知识产权的积累不仅提升了公司的核心竞争力,也为公司的长期发展奠定了坚实基础。

Aten International公司的发展小趣事

在电子设备的日益增多的背景下,用户对于高效、便捷的设备管理需求愈发强烈。Aten International凭借其对连接技术的深入理解,成功研发出KVM切换器,该产品能够实现对多台计算机的控制,大大提高了工作效率。随着技术的不断进步,Aten International的KVM切换器不断更新迭代,从最初的简单切换功能,发展到现在的智能管理、远程操控等高级功能,成为了电子行业的一大亮点。

ApexTool Group公司的发展小趣事

在电子制造业的快速发展中,Apex Tool Group敏锐地捕捉到了市场对高效、精准电动工具的需求。公司研发团队经过长时间的研发和试验,成功推出了一款具有革命性的电动螺丝刀。这款螺丝刀不仅具有高效的工作性能,而且操作简单,极大地提高了电子产品的装配效率。这一创新产品迅速在市场上占据了一席之地,为Apex Tool Group在电子行业中树立了良好的口碑。

CYAN公司的发展小趣事

1996年,瑞典的工程师Jan Nilsson在电子行业中创立了CYAN公司,专注于高性能网络设备的研发。在初创阶段,CYAN就凭借其独特的技术理念和创新的产品设计,赢得了市场的初步认可。公司推出了一款具有高效能和高可靠性的网络交换机,解决了当时网络传输中的瓶颈问题,从而在市场中崭露头角。

问答坊 | AI 解惑

请问大家用C开发AVR时使用的是哪个开发环境,哪个更好用.

请问大家用C开发AVR时使用的是哪个开发环境,哪个更好用. 刚刚从C51转到AVR我这里有三个开发环境,AVR Studio | ICCAVR | cvavr | 其中,AVR Studio是买仿真器自带的,现在准备用Mega64做个。产品不知哪个开发环境好用更适合开发呢? 请大家指点 ...…

查看全部问答>

arm

ARM入门笔记…

查看全部问答>

FPGA可综合性对初学着的一些建议

FPGA可综合性对初学着的一些建议一、HDL不是硬件设计语言 过去笔者曾碰到过不少VHDL或Verilog HDL的初学者问一些相似的问题,诸如如何实现除法、开根号,如何写循环语句等等。在这个论坛上,也时常能看到一些网友提出这一类的问题。 对于这些问 ...…

查看全部问答>

IC (es56031)时序问题

有哪位弄过ES56031混响吗? 我按照datasheet的时序,采用UCOM模式,依次发送D4,D3,D2,D1,SHEEP = 10110,但是就是得不到正确的延时啊,总是得到最小的那个延时12MS,我怀疑是一个初始值,也就是说我没有设置成功。…

查看全部问答>

多线程实质是什么?

多线程实质是什么? …

查看全部问答>

如何使用Windows CE开发Web server。最好又实例,谢谢了。

问题如题提供实例者奖1000分。请求帮忙。 可发邮件给我ld.wuxi@yahoo.com.cn…

查看全部问答>

首家外包网络服务平台问世

  “外包在线”网络技术有限公司CEO喻烜为大家讲述了她鲜为人知的创业经历,从初识“外包”到立志创业,从寻求投资到初有成就,借由这朵铿锵玫瑰坚韧不拔的毅力和非凡的智慧,国内首家外包服务网络平台终于问世,自此“外包”服务更加平民化,从 ...…

查看全部问答>

一道非常简单的问题!就当送分!

地址总线A15—A0(低),存储器地址空间为3000H-67FFH,按字节编址。其中3000H-4FFH为ROM区,选用EPROM芯片(4K*2b/片);5000H-67FFH为RAM区,选用DRAM芯片(2K*4位/片) 解释3000H是如何推出(A15A14为00),而 4FFFH又是如何推出(A15A14为01) ...…

查看全部问答>

嵌入式开发经典网站集锦

国内站点: 华恒公司的主页,里面有很多的相关资料,有待大家去发现 http://www.hhcn.com/chinese/embedlinux-res.html SkyEye嵌入式硬件仿真项目 www.skyeye.org http://gro.clinux.org/projects/skyeye/ 公社的SkyEye项目专栏 http://www.linuxfa ...…

查看全部问答>

士大夫

                                 士大夫…

查看全部问答>