基于单片机的数字钟设计
更新时间:2023-05-06 09:53:01 阅读量: 实用文档 文档下载
基于单片机的数字钟设计及时间校准研究﹡
陈姚节戴泽军
(武汉科技大学计算机学院 430081 )
摘要用单片机来设计数字钟,软件实现各种功能比较方便。但因软件的执行需要一定的时间,所以就会出现误差。对比实际的时钟,查找出误差的来源,并作出调整误差的方法,使得误差近可能的小,使得系统可以达到实际数字钟的允许误差范围内。
1
, 串
使用。采用一个频率为 11.0592 MHz 的晶振构成时钟电路。系统原理图如图 1 :
图1 系统原理图
2.软件实现与流程
2.1 主程序
由于系统的主要功能都是有程序中断来完成的,主程序基本上没什么事可做,但因键盘扫描是通过程序查询的方式实现的,所以主程序只循环扫描键盘。主程序流程图如图2所示:
2.2 定时和串口程序
2.3 数据的显示与刷新
更新显示器涉及到两个操作:发数据和改片选信号。但实践发现,代码中无论是先改片选信号还是先发数据信号,都会出现重影(即相邻两位显示差不多)这也是动态扫描引起的。实践先该片选,则前一位的数据会在下一位显示一段时间;先发数据,则后一位的数据会在前一位显示一段时间。因而出现重影。解决这个问题的办法是先进行一个消影操作,然后再发片选,最后发数据。这样就很好地解决了重影问题。这样做的关键在于,在极短
的一段时间内让显示器都不亮,等一切准备工作都做好了以后再发数据,只要显示频率足够快,是看不出显示器有闪烁的(程序用定时中断频率作为显示更新频率,在表 1 中,只当更新率??00 赫兹时,才发现显示器有闪烁)。这段显示程序代码如下:
P1=0 x00; // 消影
作为一次还是多次处理,必须有一个标准。程序中我用到了一个标志位,相当于中断系统的中断标志。当用户按下键时,标志清零,松开键时,标志恢复;键按下超过一定时间(靠一扫描计数器判定)后,恢复标志,则经过一定的时间延迟(也靠一扫描计数器判定)可以响应一次按键(即一次按键的多次响应)。而事实上,键盘响应程序就是一个事件触发器,键盘的每一个状态(按下,松开, 点击)都可能引发一段响应程序(如:重新设定键按下 =>
准备复位;松开=> 系统复位)。这里的时间延迟靠的是指令计数,由于受硬件中断等不确定因素影响,这个延迟一般不准确,但通过实践测试,可以找到一些合适的值。
3.系统性能测试与功能说明
3.1 定时计数器的初始值设置公式推导 系统中所选用的晶振的频率为fosc ,则机器周期为:公式1: [2] 设定时器要求的中断频率为k,计数器位数为n,则定时计数器的初值X 设置有如下公式:k X n t /1)(*20=- [2] 。于是:原始公: 而实验测得的数据显示,这个公式所得的结果并不可靠:(下表中的所有数据都是在计数器初始值严格按照原始公式给出的条件下测得,以个人计算机机系统时钟为标准)。从表 1 中的数据可知,严格按照原始公式得出的计数初值是存在极大误差的,这个误差总使系统时间变慢,而且,系统时间的误差值随着每秒中断次数的增多而增大,随计时总长的增长而增大,并且总是成比例(在误差允许的范围内)。这就是说,系统的误差跟每秒中断次数和个人计算机标准时长的乘积(即中断总次数)成正比。也就是说,每次中断计时的时间误差是一个常数。
误差来源分析
不考虑晶振等固件的误差,则系统机器周期可以由公式 1 准确给出,因而系统误差不可能来自于硬件,而应该主要来自于软件方面。系统每次调用定时中断程序的过程中,硬件并没有自动进入下一个定时周期,而是在调用中断程序以后由软件置数来实现的。而在程序
表1 系统时间校正测试数据
调用过程中,堆栈建立,参数传递等都是需要耗时的,而这些时间都被无形中加到了定时长度中去。所以,使得每次定时长度都大于理论推导值,在宏观上表现出来就是系统比理
论计算出来的结果变慢了(这于表格 1 所得的结论恰好一致)。另外,由于系统每次调用中断处理程序所执行的操作都是相同的,也就是说,系统每次定时的时间误差应该是一个常数(这也恰好跟实验数据相吻合)。由上面的数据和分析可知,原始公式应该修改为:公式2:
则由表格 1 ,关于的计算公式如下:公式3:
由表格 1 数据,实际中要求 k 最小,而又不影响显示效果,才能使误差越小,故实测中取 k=160 。根据表格一计算得≈ 20 (所用晶振频率为 11.0592 MHz )。按表 1 的实验方法,得表 2 :
表2 参数优化后的计时测试数据
这些数据较表 1 已有很大准确性,但与实际应用还有一定差距。末两行是根据前面参数规律稍做改动得到的, 与公式 2 有一定出入, 但与个人计算机系统标准时间已经相当接近。由于表 1 的数据本身是肉眼估出来的,本身就带有很大的误差,实际运用可用精密仪器得到表 1 数据,则系统参数可以更进一步接近实用值。
3.2 系统功能与操作说明
主要功能:二十四进制时间显示 ( 时、分), 秒以"."的闪烁表示;电子跑表计数功能;
连续发送四位十六进制数,依次为时的高,低位,分的高, 低位。完成后秒自动复位。辅助功能:键盘共 4 个键,从左到右依次标名为向上的,向下的,组,重新设定, 用来修改和设置系统时钟。同时还可以通过串口来修改和设置系统时钟。
4.结论
系统的功能完全符合设计任务的要求,经过大量的测试数据显示, 系统的可靠性已经完全达到了实际电子钟的设计要求。同时系统具有很强的扩展性:添加 A/D 转换器可更改成数值仪表,而添加 D/ 转换器则可以设计成波形发生器,同时扩充串口的功能可以道到很好的计算机控制系统。系统扩展图如下:
图4 系统功能扩展原理图
It’s very convenient to use a SCM to design a digital clock with software. But the error will easy come
out with the time run by software.To contrast with the real clock and find the reason which bring the error and give the arithmetic which to make the error low, then the clock will reach the need of the production.
keywords
正在阅读:
基于单片机的数字钟设计05-06
2017年三伏天具体时间02-09
备考2012高考作文必读美文50篇12-14
新三板尽职调查清单02-27
县环境保护局政风行风建设情况=述职报告09-26
江苏省扬州市邗江区中考英语第一次模拟(期中)考试试题05-06
有限元方法一致质量矩阵的理论分析与应用08-26
土木工程系毕业答辩老师常问问题03-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 数字钟
- 单片机
- 基于
- 设计
- 读书作文800字高一作文5篇
- 关于我的爱好英语作文
- 精品-幼儿园大班语言教案《落叶》含反思
- 北师大版四年级下册数学第四单元测试卷及答案
- 中班健康活动教案40篇
- 初中英语语法知识—祈使句的全集汇编附答案(1)
- 50年同学聚会开幕式讲话
- 关于清欠物业费的考核办法
- 中国经济百强县(市)
- 临时用电安全施工专项方案
- 商法考试题及参考答案
- 门诊急救药品一览表1
- 十三五(2016-2020年)中国产销玻璃温室行业运行模式及发展前景预测报告(目录)
- 黑龙江省大庆市2015届高三第二次教学质量检测(二模)语文试题(扫描版)
- 陈振明《公共政策分析》配套题库-课后习题(结论:走向公共决策的科学化、民主化和法制化)
- 人教版七年级下册生物期中复习提纲
- 水库除险加固项目技术标(施工组织设计)2
- 小鸟出壳_小学三四年级记事
- (推荐)人教版高一语文下学期教学计划
- 完整word新北师大版一年级数学下册练习题