单片机应用中,常常会遇到这种情况,在用单片机制作电子钟或要求根据时钟启控的控制系统时,会突然发现当初校准了的电子时钟的时间竟然变快或是变慢了。
于是,尝试用各种方法来调整它的走时精度,但是最终的效果还是不尽人意,只好每过一段时间手动调整一次。那么,是否可使时钟走时更精确些呢?现探讨如下:
一、误差原因分析
1.单片机电子时钟的计时脉冲基准,是由外部晶振的频率经过12分频后提供的,采用内部的定时,计数器来实现计时功能。所以,外接晶振频率的精确度直接影响电子钟计时的准确性。
2.单片机电子时钟利用内部定时,计数器溢出产生中断(12MHz晶振一般为50ms)再乘以相应的倍率,来实现秒、分、时的转换。大家都知道,从定时,计数器产生中断请求到响应中断,需要3_8个机器周期。定时中断子程序中的数据人栈和重装定时,计数器的初值还需要占用数个机器周期。此外。从中断人口转到中断子程序也要占用一定的机器周期。例如:
从上述程序可以看出,从中断人口到定时/计数器初值的低8位装入需要占用2+2+2=6个机器周期。所以,在编程时一般会把这6个机器周期加入定时/计数器的初值中。但是,从定时,计数器溢出中断请求到执行中断需要几个机器周期(3~8个机器周期)。就很难确定准确值,正是这一原因导致了电子时钟计时的不准。
二、解决方法
1、采用高精度晶振方案
虽然采用高精度的晶振可以稍微提高电子钟计时的精确度,但是晶振并不是导致电子钟计时不准的主要因素,而且高精度的晶振价格较高,所以不必采用此方案。
2、动态同步修正方案
从程序人手,采用动态同步修正方法给定时,计数器赋初值。动态同步修正方法如下:由于定时,计数器溢出后,又会从O开始自动加数,故在给定时/计数器再次赋值前,先将定时,计数器低位(TLO)中的值和初始值相加,然后送人定时,计数器中,此时定时,计数器中的值即为动态同步修正后的准确值。具体程序如下:
采用此种方法后,相信制作的电子时钟的精度已有提高了。[page]
3.自动调整方案
采用同步修正方案后,电子时钟的精度虽然提高了很多,但是由于晶振频率的偏差和一些其他未知因素的影响(同一块电路板、同样的程序换了一片单片机后,走时误差不一样,不知是何原因),时间长了仍然会有积累误差。为此,可采用自动调整方案。实际上是一种容错技术。其自动调整原理为:实测出误差Is所需的时间,然后每隔这样一段时间后就对秒进行加“1”或减“1”调整。例如:电子钟每过50小时就慢1秒,其自动调整程序如下:
以下是一个完整实例:
结语
使用此方法调整较费时间,但效果非常好。经实验,一次调整可/以将月误差控制在Is左右,如按此方法再次测出误差Is所需的天数并进行二次调整,其精度会更高。
关键字:单片机 时钟精度 脉冲基准
引用地址:
调整单片机时钟精度的解决方案
推荐阅读最新更新时间:2024-03-16 13:42
基于AVR微处理器XMEGAl28单片机的电解质分析仪
这里提出一款采用ATMEL公司推出的高性能XMEGAl28单片机为核心器件设计的由电池供电的便携式电解质分析仪,可以满足野外使用需求。 1 XMEGA简介 XMEGA是8位AVR微处理器的强劲性能升级版本。XMEGA采用第二代picoPower技术,是唯一真正使用1.6 V工作电压的闪存微控制器。该器件功耗超低,并具有快速12位模拟功能、1个DMA控制器、1个创新的事件系统,以及1个AES加密引擎,全部都无需占用CPU资源,能够最大限度减少功耗和提高系统性能。XMEGAl28微控制器的闪存容量为128 Kb,采用100引脚的贴片封装,工作电压为1.6~3.6 V,32 MHz频率下处理性能可达到32 MI/s。
[模拟电子]
汽车电子MCU技术原理与需求分析
汽车作为一部大型的机电一体化设备,汽车电子在汽车整体成本中的比例越来越大。目前欧美发达国家汽车电子的平均成本达350美元以上,其涵盖了从车身控制、动力传动、车身安全,到车内娱乐的各个方面。 微控制器(MCU)作为汽车电子系统内部运算和处理的核心,也遍布悬挂、气囊、门控和音响等几十种次系统(Sub-System)中。由于汽车作为高速交通工具承载了对用户生命安全的保障,同时汽车经常工作在十分恶劣的环境中,其对内部电子设备的可靠性要求要远高于一般性电子产品。因此汽车电子所用的MCU与一般性产品的结构差异虽然并不很大,而一般的MCU产品由于可靠性不能符合厂商的要求而并不能被选用,这也是汽车电子产品同一般性电子产品市场的区别之一。
[单片机]
基于C51单片机对液晶显示的实验设计
程序一:在液晶屏上显示一个1 //在液晶屏上显示一个字符 #include #define uchar unsigned char #define uint unsigned int //端口设置 sbit lcden=P3^4; sbit lcdrs=P3^5; //延迟函数,大约1秒 void delay(uint z) { uint x,y; for(x=z;x》0;x--) for(y=110;y》0;y--); } //写命令 void write_com(uchar com) { lcdrs=0;//写命令 P0=com; delay(5)
[单片机]
单片机控制的电池管理实现了成功的互联网
微控制器将在观光噪比(IoT)取向设计大多数因特网主控制元件和这些MCU将有可能被电池供电。电源效率将是实现可接受的电池寿命至关重要因此MCU将需要管理的电池使用更精确地比以往任何时候。许多MCU具有特殊的功能,帮助管理电池电量和使用这些功能优化可能使输赢在市场之间的差异。 本文将很快回顾一些实现高效电池的MCU产品设计,并说明所需的关键功能,例如使用的设备,这些功能如何提高工作效率和电池寿命。软件工具,帮助估计电池寿命将用于展示如何在您详细的设计实施估计寿命。这极大地有助于设备选择并且是一个关键的技术用于创建电源效率的设计。 管理电源域 电池的MCU实现时想我们最初可能,前提是有一个单一的MCU电源域,流失的电池,我们的目
[嵌入式]
8051单片机架构_封装及原理图
在1976年时,英特尔首次生产了名称为MCS-48的单片机,即8位单片机。1980年晚些时候,发布了名称为MCS-51的改进版本(也是8位单片机),目前国内广泛使用的8051单片机就是属于Intel的MCS-51单片机家族,而且现在已经过了知识产权期限。 继8051单片机成功之后,许多其他半导体制造商纷纷以自己的品牌发布了使用MCS-51内核的单片机。比如Microchip、Zilog、Atmel、Philips、Siemens等公司。它们的共同点是所有这些单片机都可以使用相同的MCS-51指令集进行编程。它们在支持设备配置(例如改进的内存,是否存在ADC或DAC等)方面基本上有所不同。随后,英特尔于1982年发布了其首
[单片机]
单片机定时/计数器的4种工作方式详解
1.方式0 方式0构成一个13位定时/计数器。图是定时器0在方式0时的逻辑电路结构,定时器1的结构和操作与定时器0完全相同。 2.方式1 定时器工作于方式1时。 由图可知,方式1构成一个16位定时/计数器,其结构与操作几乎完全与方式0相同,惟一差别是二者计数位数不同。 3.方式2 定时/计数器工作于方式2时,。 由图可知,方式2中,16位加法计数器的TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。 4.方式3 定时/计数器工作于方式3时,其逻辑结构图如图所示。
[单片机]
51单片机汇编语言实验(一)-----数字量输入输出
一、实验目的: 学习单片机IO口的输入输出操作 二、实验设备: PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容: 1. P1口I/O实验 2. P1口流水灯实验 四、P1口I/O实验: 1、实验原理: 数字量从P1口的低4位输入,从P1口的高4位输出控制发光二极管的亮灭,输入与输出一一对应。 2、实验步骤: ①将试验箱IO区的P1.0 到P1.3与拨码开关区的K0~K3按下图连线; ② 将试验箱IO区的P1.4 到P1.7与LED区的L0~L3按下图连线; ③ 编写程序,经编译、链接无语法错误后装载到实验; ④ 运行程序,拨动K0到K3,观察L0~L3的
[单片机]
基于SRAM的微控制器优化了安全性
结果表明,非易失性(NV)SRAM是用于存储安全数据的最安全的存储器。通过使用 DES 或三重 DES 加密内存,可以建立加密边界,使安全信息不被黑客渗透。通过使用防篡改反应传感器,可以进一步保护SRAM的易失性,这些传感器将擦除加密密钥作为响应。密码键盘等金融应用依靠自动程序和数据存储器加密功能来保护数据。DS5250是一款高性能、安全的8051微控制器,利用安全SRAM的独特特性来保护敏感数据。 无论是在自动取款机、护照/身份验证设备还是便利店的销售点终端中,都必须保护密码、个人识别码 (PIN)、加密密钥和专有加密算法等关键信息免受黑客攻击。金融服务采用详细的政策和程序来保护硬件和软件。因此,金融交易系统的设计者在开发每
[单片机]