单片机系统中日历时钟自动校准及调整问题探讨
- 格式:doc
- 大小:121.00 KB
- 文档页数:4
时钟与日历的问题解决时钟和日历是我们日常生活中应用广泛的时间测量工具,它们在我们的生活中起着至关重要的作用。
然而,在使用时钟和日历的过程中,我们经常会遇到一些问题和困扰。
本文将针对时钟和日历的一些常见问题进行解决,帮助我们更好地利用这些工具。
一、时钟问题解决时钟是衡量时间的主要工具之一,我们用它来安排日常生活和工作计划。
然而,时钟也常常会出现一些问题,如时间不准确、时间调整等。
下面将针对这些问题进行解决。
1. 时间不准确当时钟的时间不准确时,我们需要对其进行校正。
常见的时钟校正方法有两种,手动校正和自动校正。
手动校正是指通过调节时钟表盘上的调整钮来对时钟进行时间校正。
而自动校正则是利用时钟内部的电子芯片与标准时间源进行同步,自动校正时钟时间。
对于手表式时钟,我们可以使用标准时间源,如手机、电视等,通过对时钟表盘上的调整钮进行适当调整来保持时间准确。
对于电子式时钟,我们可以通过设置时钟自动与互联网上的标准时间进行同步来保持时间的准确性。
2. 时间调整有时我们需要调整时钟的时间,比如夏令时调整、时区调整等。
对于夏令时调整,我们需要根据当地规定的时间调整方案,手动将时钟向前或向后调整一小时,以适应夏季时间调整。
对于时区调整,我们需要根据自己所在地的时区,手动将时钟上的时区设置进行调整,以确保时间的准确性。
二、日历问题解决日历是记录和安排时间的重要工具,它可以帮助我们了解日期、节假日等信息。
然而,有时我们在使用日历时也会遇到一些问题,如日期计算、日期转换等。
下面将分别对这些问题进行解决。
1. 日期计算在日常生活中,我们经常需要对日期进行计算,比如计算两个日期之间的天数、周数等。
对于简单的日期计算,我们可以使用纸笔进行计算,但对于复杂的计算,我们可以借助计算机软件或在线工具来进行计算。
这些工具可以帮助我们快速准确地计算日期差距,提高工作效率。
2. 日期转换有时候我们需要将日期进行转换,比如将公历日期转换为农历日期、将阳历生日转换为星座日期等。
基于单片机的日历设计方案1. 简介随着科技的不断进步,电子产品越来越普及,人们对实用性高、功能强大的智能设备的需求也越来越大。
在日常生活中,日历是每个人都必不可少的工具,用于记载日常活动、重要事件及节假日等信息。
传统的纸质日历存在使用不便、信息无法修改以及易于遗失等缺点。
为了解决这些问题,本文提出了一种基于单片机的日历设计方案。
2. 设计原理该日历设计方案采用单片机作为核心控制器,结合液晶显示屏、按键和实时时钟模块实现对日期的显示和操作。
下面对各个模块进行详细介绍:2.1 单片机在本设计中,我们选择了一款功能丰富的单片机作为核心控制器,它具有足够的计算能力和存储空间,能够满足日历的需求。
这款单片机还支持低功耗操作,可延长电池使用寿命。
2.2 液晶显示屏为了实现日历信息的直观显示,我们使用了一块液晶显示屏。
该显示屏具有高分辨率、高亮度、低功耗等特点,能够清晰显示日期、星期和节假日等信息。
2.3 按键为了方便用户对日历进行操作,我们设计了几个按键。
通过按键,用户可以选择日期、切换月份、添加和删除事件等操作。
按键的设计要考虑易于使用和操作的舒适性。
2.4 实时时钟模块为了保证日历的准确性,我们使用了一块实时时钟模块。
该模块能够提供准确的时间和日期信息,并且能够自动调整不同月份的天数和闰年。
3. 功能实现3.1 日历显示通过单片机控制液晶显示屏,将日期、星期和节假日等信息显示出来。
用户可以根据自己的需求选择查看不同月份的日历信息。
3.2 日期选择通过按键操作,用户可以选择需要显示的日期。
例如,用户可以快速选择某一天,查看当天的事件安排。
用户还可以选择不同的月份,查看该月的所有日期。
3.3 添加和删除事件用户可以通过按键操作,在指定日期上添加或删除事件。
通过日历的显示,用户可以更好地组织和规划自己的时间。
3.4 节假日显示通过实时时钟模块获取当前日期,并与已知的节假日信息进行比对,如果当前日期是一个节假日,则在日历上进行标注,提醒用户。
51单片机内部时钟误差
摘要:
1.51单片机内部时钟工作原理
2.影响时钟精度的因素
3.解决时钟误差的方法
4.提高时钟精度的建议
正文:
一、51单片机内部时钟工作原理
51单片机内部时钟由高增益的反相放大器构成,反相放大器的输入端为XTAL1,输出端为XTAL2。
振荡电路和时钟电路以此为基础工作,然而,即使是同一颗晶振,由于制造工艺等原因,其频率并不完全精确,这就导致了内部时钟的误差。
二、影响时钟精度的因素
1.晶振频率的稳定性:即使是同一颗晶振,其频率也会因为制造工艺、使用环境等因素而不完全精确。
2.中断响应时间:中断响应需要时间,并且,响应的时间是不一样的。
因为51执行不同指令时,所需的时间不同,而响应中断前,必须执行完当前指令。
3.多个中断的优先级和响应顺序:如果程序中有多个中断,当正在执行另外一个中断时,不能及时响应,这种情况可以导致很大的误差。
三、解决时钟误差的方法
1.调整定时器初值:根据实际测量的时间误差,调整定时器的初值,使得定时器定时的时间更加准确。
2.优化中断处理程序:优化中断处理程序,减少中断响应的时间,提高中断响应的及时性。
四、提高时钟精度的建议
1.选择稳定性好的晶振:在选择晶振时,尽量选择稳定性好的晶振,以减少频率误差。
2.优化程序设计:优化程序设计,减少中断处理程序的复杂度,降低中断响应时间。
3.定期校准:定期对单片机时钟进行校准,以保证时钟的准确性。
基于单片机的数字钟设计及时间校准研究WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】基于单片机的数字钟设计及时间校准研究﹡陈姚节戴泽军(武汉科技大学计算机学院 430081 )摘要用单片机来设计数字钟,软件实现各种功能比较方便。
但因软件的执行需要一定的时间,所以就会出现误差。
对比实际的时钟,查找出误差的来源,并作出调整误差的方法,使得误差近可能的小,使得系统可以达到实际数字钟的允许误差范围内。
关键词显示消影;事件触发;误差分析中图分类号:0.引言在信息技术急速发展的今天,计算机科学日新月异。
而单片机作为计算机科学的一个分支,在微机控制领域得到长足发展。
在计算机网络,通讯方面是微机的天下;而在微控制领域,小到电子表,大到家用电器,到处都有单片机的用武之地。
1.系统原理分析系统设计中用到 89 C52 单片机的部分功能:包括内部定时器,键盘扩展,程序中断, 串口通信等。
用一个四联体的共阴极八段显示器,可通过一个输入/输出口作为显示器数据发送端;另一个输入/输出口的四位作为显示器各位的片选信号,另四位作为键盘扩展口使用。
采用一个频率为 MHz 的晶振构成时钟电路。
系统原理图如图 1 :图1 系统原理图2.软件实现与流程主程序由于系统的主要功能都是有程序中断来完成的,主程序基本上没什么事可做,但因键盘扫描是通过程序查询的方式实现的,所以主程序只循环扫描键盘。
主程序流程图如图2所示:定时和串口程序定时和串口都是中断响应程序,它们的调用都是系统执行过程中采用中断事件触发产生(中断部分处理如图3所示)。
定时中断是周期性发生的,而串口中断则须串口有数据传输才发生中断。
定时程序是整个系统的核心代码,这段代码不光涉及到显示,还涉及到系统计时, 这段代码的优劣关系到整个系统的可靠性,后面还将详细讨论。
为初步减小系统误差, 置定时初值一定要在程序开始就设置。
收稿日期:2005-01-05陈姚节 28 岁,男,硕士,助教,主要研究领域为数据通信和设备驱动开发﹡国家863计划项目资助(批准号:2003AA414011)图2 主程序流程图 图3 中断程序流程图数据的显示与刷新更新显示器涉及到两个操作:发数据和改片选信号。
专科毕业设计(论文)题目基于51单片机的可调数码日历钟的设计与制作摘要单片机以其体积小、编程灵活、控制功能强大、价格低廉等特点被广泛应用在各种电子电器产品中。
单片机技术的出现和发展带来了电子技术和控制领域的一场革命。
单片机课程作为职业院校电子信息类专业一门重要的基础课程,它既是一门很有实用价值、实践性很强且很有趣味性的课程,同时它又是一门集硬件电路设计与软件编程于一体的学科,既要求我们有较好的电工电子技术基础知识,又要求有一定的逻辑思维和软件开发(编程)能力。
通过近几年对单片机的学习,我已掌握单片机的基本知识,并具备了单片机应用系统的初步开发能力。
即将毕业之际,我运用我所掌握的单片机知识设计和制作了一个基于51单片机的可调数码日历钟,这既是对我所学知识的总结与高度概括,同时也将自己所掌握的知识与实际应用结合起来,进一步提高工程实践能力。
数码日历钟是实际生活中应用较多的一个电子计时装置,可供人们查询日期、星期及掌握时间。
本文首先从数码日历钟的功能要求入手,对设计任务进行了分析,并将任务分解为若干个模块,提出在设计与制作过程中要用到的相关知识点,给出了本设计的硬件电路及软件流程,还给出了部分模块的源程序代码。
本设计经过多次调试运行无误,最终提交出一个完整的应用系统产品。
本次毕业设计的数码日历钟能在12864液晶屏上显示出年月日时分秒以及星期几,还能显示当前环境温度,并能通过按键调整日期和时间,在调整日期的同时通过相应算法自动实现星期几的调整,而且无论是否闰年、任何月份,当日期调整时都保证不会出现非法日期。
数码日历钟是一个非常实用的设计与制作,成本低廉,如能进一步完善,具有一定的推广使用价值。
本设计任务比较复杂,要考虑的问题很多,C语言的模块化程序设计思想较好地解决了这个问题,故本设计任务采用C语言编程。
关键词:51单片机,C语言,数码日历钟,毕业设计,制作I河南理工大学毕业设计论文目录摘要 (Ⅰ)1概述 (1)1.1 毕业设计的选题背景及制作意义 (1)1.1.1毕业设计的选题背景 (1)1.1.2毕业设计的制作意义 (1)1.2 数码日历钟的功能要求 (1)1.3 本设计制作的主要内容 (2)2数码日历钟的设计与制作任务分析 (3)2.1数码日历钟的设计与制作任务分析与分解 (3)2.2设计方案的论证及选择 (3)3 相关知识链接 (6)3.1 51单片机简介 (6)3.1.1 51单片机简介 (6)3.1.2 51单片机引脚功能介绍 (8)3.2由已知日期推算星期几 (11)3.2.1如何判断一个年份是否闰年 (11)3.2.2由已知日期如何推算星期几 (11)3.3 12864图形液晶的使用 (13)3.3.1 液晶概述 (13)3.3.2 LCM引脚功能介绍 (14)3.3.3 LCD12864图形液晶显示模块指令集 (15)3.3.4 LCD12864图形液晶显示模块与单片机的接口 (17)3.3.5 LCD12864图形液晶显示模块的基础函数 (17)3.4 51单片机中的中断与定时 (19)3.4.1 51单片机中的中断 (19)3.4.2 51单片机中的定时/计数器 (22)3.5数字温度传感器DS18B20的使用 (28)3.5.1 DS18B20概述 (28)3.5.2 DS18B20的内部结构 (29)3.5.3 DS18B20与单片机的接口电路 (32)3.5.4 DS18B20的操作命令 (32)-1-3.5.5 DS18B20的时序 (33)3.6 矩阵式按键的检测 (36)4系统设计与调试 (44)4.1 硬件系统设计与调试 (44)4.1.1硬件系统设计原理图 (44)4.1.2硬件系统元器件清单 (44)4.1.3硬件系统组装与调试 (45)4.2 软件系统设计与调试 (45)4.2.1软件系统设计 (45)4.2.2软件系统调试与仿真 (47)5结束语 (49)参考文献 (50)致谢 (51)-2-河南理工大学毕业设计论文 1 概述1、概述1.1 毕业设计的选题背景及制作意义1.1.1毕业设计的选题背景单片机以其体积小、编程灵活、控制功能强大、价格低廉等特点被广泛地应用在各种电子电器产品中。
目录一、设计任务二、设计方案三、硬件及电路设计四、程序设计及流程图五、设计体会一、设计任务利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个电子日历时钟系统。
使用液晶显示器将日期,时间实时显示出来,并且能够通过按钮修改日期,完成实时操作并具有闹铃功能。
二、设计方案硬件选择:单片机AT89C51,DS1302时钟芯片,SED1520液晶控制器接口芯片:74LS138,74LS373,片选CS0三、硬件及电路设计(一)实验所用芯片简要介绍1、主控芯片采用单片机AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机,与AT80C51引脚和指令系统完全兼容,可擦除只读存储器可以反复擦除1000次。
AT89C51共有128×8位内部RAM ,32可编程I/O线,两个16位定时器/计数器,5个中断源,采用全静态工作,三级程序存储器锁定和可编程串行通道,工作频率为0Hz-24MHz。
另外片内内置振荡器和时钟电路,低功耗的闲置和掉电模式。
2、实时时钟部分采用DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V~5.5V。
采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
3、SED1520液晶控制器SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块,内置显示RAM区RAM容量为2560位,RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1”表示亮,“0”表示暗,具有16个行驱动口和16个列驱动口,可直接与80系列微处理器相连,亦可直接与68系列微处理器相连。
目录1概述 (1)1.1背景与意义 (1)1.2设计内容 (1)2设计要求与方案论证 (1)2.1 设计要求: (1)2.2 系统基本方案选择和论证 (1)2.2.1单片机芯片的选择方案和论证: (1)2.2.2 显示模块选择方案和论证: (2)2.2.3时钟芯片的选择方案和论证: (2)2.3 电路设计最终方案决定 (2)3.系统的硬件设计与实现 (3)3.1 电路设计框图 (3)3.2 系统硬件概述 (3)3.3 主要单元电路的设计 (4)3.3.1STC89C52单片机管脚说明 (4)3.3.2时钟电路模块的设计 (6)3.3.3 电路原理及说明 (7)4系统的软件设计 (8)4.1程序流程框图 (8)4.2时间调整程序流程图 (9)4.3 计算阳历程序流程图 (10)5系统调试与仿真 (10)5.1 软件调试问题分析 (11)5.2 Proteus 仿真 (11)5.3硬件测试 (11)5.4软件测试 (12)5.5测试结果分析与结论 (12)5.5.1 测试结果分析 (12)5.5.2 测试结论 (12)5.5.3实物图 (13)5.5.4调试结果 (14)6电路板的制作与检查 (16)7作品总结 (16)参考文献 (17)附录 (18)附录一:基于52单片机可调式电子日历与时钟原理图 (18)附录二:基于52单片机可调式电子日历与时钟PCB图 (18)附录三:proteus仿真图 (19)附录四:基于52单片机可调式电子日历与时钟设计C语言程序清单 (19)附录五:基于52单片机可调式电子日历与时钟设计器件目录表 (24)基于52单片机可调式电子日历与时钟系统设计1概述1.1背景与意义此可调式电子日历与时钟小巧便于携带,界面清爽,一目了然,方便的使您知晓当前时间,并可对时间做出修改,实在是居家旅行日常生活之必备用品!1.2设计内容在现今的可调式电子日历与时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
单片机系统中日历时钟自动校准及调整问题探讨
1、引言
在各类检测控制系统中,需要通过日历时钟进行时间上的控制或对事件所发生的时间进行记录。
如电网检测系统,路灯控制系统等。
但日历时钟时常跑快跑慢的缺陷不可避免。
经过日积月累,就会产生较大的误差,这会影响控制与检测的准确性。
为了解决日历时钟的准确度问题,我们设计了能够自动校准和调整运行速度的日历时钟。
它在每天的12:00和00:00都会自动校准一次,并根据12个小时运行的误差大小自动调整时钟的运行速度。
可使时钟运行的准确度相当高。
我们设计的思路是:利用小型收音机中接收部分电路接收中央人民广播电台播出的中心频率为106.1MHz的调频信号,并解调出音频信号,将音频信号输入两个锁相环路。
这两个锁相环路分别跟踪800Hz和1600Hz的报时信号。
当接收到报时信号时,为单片机提供外部中断,通过执行中断程序即可完成对日历时钟的自动校准。
并根据运行误差,自动调整日历时钟芯片X1205内部的数字微调寄存器和模拟微调寄存器,在+146ppm至-67ppm范围内调整时钟运行速度。
2、电路设计
电路由单片机AT89C52、日历时钟芯片、自动校准电路、4×4键盘及显示电路组成。
2.1日历时钟芯片X1205与AT89C52的接口
X1205是一个带有时钟、日历、两路报警、振荡器补偿和电池切换的实时时钟集成电路[1]。
I2C总线结构,外接32.768KHz的晶体。
时钟/控制寄存器的地址范围为0000H~003FH。
X1205各引脚功能及与单片机AT89C52的连接如图1所示:
X1,X2:外接石英晶体振荡器端。
:在应用报警功能时,该引脚输出中断信号,低电平有效。
本电路采用循环中断方式,每秒中断一次。
SCL:由单片机给X1205提供的串行时钟的输入端。
SDA:数据输入/输出引脚。
VSS:接地端。
VCC、VBACK:前者为电源输入端,后者为备用电源。
在实际应用中,通常可以接成如图1中所示的电路。
在VCC与VBACK之间接二极管,在 VBACK与地之间接电容。
在正常供电情况下,VCC给电容充电。
掉电后,电容充当备用电源。
在VCC掉电后,备用电源电流小于2μA ,电容C用10μF的钽电解质电容亦可。
X1205片内的数字微调寄存器DTR(地址0013H)的第2、1、0三位DT R2、DTR1、DTR0调整每秒钟的计数值和平均ppm误差。
DTR2 是一个符号位,1为正ppm补偿,0为负补偿。
DTR1和DTR0是刻度位,DTR1给出的是10ppm调整,DTR0给出的是20ppm 调整。
通过这三位可以在-30ppm 至 +30ppm范围内进行调整补偿。
模拟微调寄存器ATR(地址0012H)的第5至第0位ATR5、ATR4……和ATR0用来调整片内负载电容。
ATR 值以补码形式表示,ATR(000000)=11.0pF ,每步调节0.25pF ,整个调整范围从3.25pF至18.75Pf。
可以对额定频率提供从+116ppm至-37ppm的补偿。
通过对DTR及ATR的调整,可以在+146ppm至-67ppm范围内调整补偿。
2.2 自动校准电路
自动校准电路由接收中央人民广播电台信号电路和音频锁相环路组成。
接收电路是由一片调频收音机集成电路TDA7010T和少量分离元件组成。
TDA7010T集成电路内部含有变频、中频滤波、鉴频和前置放大等电路[2]。
用于接收中央人民广播电台106.1MHz的信号,并将其解调出音频信号。
锁相环路是由两片NE567及外围电路组成。
该电路所完成的任务是锁定来自接收电路的音频信号中800Hz和1600Hz两个频率的报时信号。
即将报时音频信号转换成负脉冲信号,给单片机提供外部中断,经中断程序分析后对时钟进行自动校准,如图2所示。
图中只画出两片NE567中锁定800Hz音频信号的部分。
NE567由鉴频器(PDI)、直流放大器(A1)、电流控制振荡器(CCO)、正交鉴频器(PDII)及与外部电容C17、C18构成的两个滤波器组成[3]。
NE567的5、6脚外接的电容CT 和电阻RT =R2+R3决定着CCO的振荡频率f0(800Hz或1600Hz),f0≈1.1/(RTCT) 。
选择CT=0.1μf ,对于图中f0=800Hz的电路,RT≈13.7KΩ;图中未画出的负责锁定1600Hz音频信号的电路, RT≈6.8KΩ。
当NE567的3脚接收到的音频信号中不含有频率为f0(800Hz和1600Hz)或带宽内的信号时,则锁相环路始终不能进入锁定状态。
若音频信号中含有频率为
f0或带宽内的信号时,则在锁相环路中鉴频器PDI输出的电压经内部电阻r2及外部电容C18所组成的环路滤波器滤波后,加到直流放大器A1上。
A1输出电流来控制CCO振荡频率的变化。
从而使CCO振荡频率在一定范围内向输入音频信号的某些频率靠拢。
达到锁定后,环路被稳定下来。
NE567内部正交鉴频器PDII 在锁相环路的捕获过程中,不断地接收CCO输出的信号和外部输入信号,随着两信号频率的逐步接近,其输出电压逐渐变小。
当锁相环路进入锁定状态时,这个电压降低到小于Ur,A2输出低电平,引起单片机中断。
3、程序设计
单片机AT89C52的主程序不断检测X1205的时、分寄存器单元的数据是否为11:50或23:50
若为其中一个,将P2.7引脚置0,打开接收信号电路的电源,开中断。
报时信号共6声,每声长度为0.5秒,每两声间隔时间为1.5秒,前5声信号频率为800Hz,第6声信号频率为1600Hz。
两个频率的报时信号经NE567锁相后产生的负脉冲经与门输入到AT89C52的中断输入端,引起中断后89C52通过定时器T0测量脉冲宽度。
在报时前后,电台往往要播出音乐广告,其音乐声中具有800Hz和1600Hz左右的音频信号甚多,但音乐声的频率是连续变化的,在某一频宽范围内持续的时间较短,将脉宽小于400ms的信号视为干扰信号不予考虑。
若接收到脉宽大于400ms 的1600Hz的音频信号所产生的中断时,并在此之前有效的800Hz的报时信号已达5次,则对显示数据和X1205内部时钟寄存器的数据予以修正。
并根据12个小时以来时钟运行的误差(毫秒级的误差借助89C52的定时器T1测得)大小修正X1205的数字微调寄存器和模拟微调寄存器的数据。
将P2.7 引脚置1,关断接收信号电路的电源,并关中断。
主程序检测到X1205的时、分寄存器单元的数据是12:10或00:10时,若P2.7引脚仍输出低电平,说明在20分钟内未接收到报时信号,取消接收报时信号状态及所有标记,关断接收信号电路的电源,并关中断。
程序流程图如图3。
4、结束语
经作者长时间实验观察,干扰信号持续时间大都小于100ms,达到200ms者属偶然现象。
以400ms的脉宽限制干扰信号是比较安全的。
如果出现持续时间大于400ms的干扰信号,也只能在接收到5次800Hz的报时信号后1.5S内接收到1600Hz 的干扰信号才能出现误差小于1.5S的误校准。
这种可能性是罕见的。
即便出现也会在12个小时后予以重新校准。
参考文献
[1] X1205 Real Time CLOCk/Calendar.
[2] 集成电路手册编委会.中外集成电路数据手册•音响电路.北京:电子工业出版社,1997:1372-1373.
[3] 张厥盛,郑继禹,万心平.锁相技术. 西安:西安电子科技大学出版社,1994:118
/tech/news/1058435.html。