单片机数字钟设计论文_第1页
单片机数字钟设计论文_第2页
单片机数字钟设计论文_第3页
单片机数字钟设计论文_第4页
单片机数字钟设计论文_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机数字钟设计-论文单片机数字钟设计目 录引言 3单片机数字钟设计方案 3第一章 单片机数字钟系统组成框图及工作理 4第二章 模块电路设计与比较 6第三章 系统原理及理论分析9第四章 各模块电路 11第五章 系统软件部分 17第六章 数字钟时间校准研究 21结束语27参考文献 28设计目标用单片机的定时器实现时,要求日误差小于30秒;24小时内最多允许设置24次打铃操作;断电时计时不中断(用后备电池供电);可用作时钟,也可用作定时器或延时继电器。电路装配与调试利用protel99se软件进行印制板设计,并进行装配,利用单片机仿真工具对设计进行在线仿真,利用编程器进行程序固化。【摘要】 介绍了

2、基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。在文章的最后,给出了采用中断方式实现的数字钟的源程序。并且对精确性做了分析。 【关键字】 单片机,数字钟,数据缓冲区,中断,定时,消抖【引言】 在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。第一章 单片机数字

3、钟系统组成框图及工作原理 本系统的设计电路由实时时钟模块、环境温度检测模块、电网检测模块、人机接口模块、报警模块等部分组成。其中实时时钟采用ds12887可实现年月日时分秒等时间信息的采集和闹钟功能。温度检测模块由ds18b20集成温度传感器对现场环境温度进行实时检测。电网检测模块由ad536、icl7135等实现对电网电压有效值的采样和频率的间接测量及电网电压的欠压、过压检测。人机接口模块由28键盘和ca12864a点阵液晶组成,可实现题目要求的时间显示、闹钟设置、环境温度测量、电网电压、电网频率显示等功能。报警模块由报警蜂鸣器和带音乐芯片的扬声器等可实现闹铃控制和电网电压的过压、欠压报警功

4、能。abstractthe system ,with an at89c55 system as its core ,is implemented mainly for clock part,the measurement of the temperature part,the measurement of the frequency and the virtual value of ac voltage,microcomputer process part and display part.ds12887 is a real time clock chip.ds18b20 is used as

5、 a temperature sensor.we use ic ture rms to dc convertor ad536a and a/d convertor icl7135 to measure the virtual value of ac voltage.display part is made of ca12864a. 总体方案比较与论证 方案一:采用 cpld作为主控制器控制外围电路进行电压、频率测量,时钟控制、温度测量、键盘和led控制、报警控制活性较低,不利于各种功能的扩展,在测电压时将通过a/d测得的数值转化为电压有效值时有一定的困难。 方案二:采用 89c55单片机来实现

6、系统的控制。键盘用芯片7289控制,时钟芯片采用ds12887,温度传感器采用ds18b20。市电信号电压可通过更高精度的ad536a、icl7135等测得,频率可采用测周期法间接测得。此系统硬件简洁,将复杂的硬件功能用软件实现,因此系统控制灵活,能很好地满足本题的基本要求和扩展要求。此方案基本原理框图如图1所示。 比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能完全达到设计要求,故采用第二种方案。717单片机数字钟设计第二章 模块电路设计与比较 21 时钟方案选择方案一:因为题目中只要求显示小时和分钟,因此可以用门电路组合构成时钟发生器,但此方案硬件复杂,稳定性低,且不易控制。 方

7、案二:采用带 ram的时钟芯片ds12887。该芯片可以进行时分秒的计数,具有100年日历,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,完全能满足题目的要求。22 温度检测方案选择 方案一:采用热电偶或热敏电阻作感温元件,但热电偶需冷端补偿,电路设计复杂,热敏电阻虽然精度较高,但需要标准稳定电阻匹配才能使用,而且重复性、可靠性都比较差。 方案二:采用集成温度传感器 ds18b20 。该传感器结构简单,不需外接电路,数据传输采用 one-wire总线,可用一根 i/o数据线即供电又传输数据,在-10 -+85范围内精度为0.5,完全能满足题目1的要求,且分辨率较高,

8、重复性和可靠性好。23 电压有效值测量方案选择方案一:采用分段逼近式有效值检波电路。该方法示值虽然是被测电压的有效值,但由于放大器动态范围的限制,对于被测信号会产生一定的波形误差,并且硬件电路搭接复杂,且稳定性能不好。方案二:采用真有效值转换芯片 ad536和高速a/d芯片icl7135测量市电有效值。将从变压器引入的交流信号通过ad536转换成直流信号后接入icl7135,利用单片机读取数据后进行相应的幅值变换得到电压有效值。利用集成电路芯片测量精度高,误差小、稳定性好,硬件电路实现简单,可减小硬件体积。 24 频率测量方案选择 方案一:直接测频法。把被测频率信号经过脉冲形成电路后加到闸门的

9、一个输入端,只有在闸门开通时间 t(以秒计)内,被计数的脉冲被送到计数器进行计数。设计数器的值为n,由频率定义式计算得到被测信号频率为发fn/t。 方案二:测量周期法。将被测量信号经过过零检测后转换成方波信号,利用单片机查询两个上升沿,在此期间根据晶体振荡器产生的周期为 的脉冲送计数器进行计数,设计数值为n,则得被测量信号的周期值 ,然后取其倒数即为被测量信号的频率。 经分析,采用直接测频法在测量低频段信号时的相对测量误差较大,但在高频段测量信号的频率有较高的精度。如果采用测频法测量低频段50hz频率信号,要想提高精确度,势必会大幅度增加闸门开通时间t,时效性较差。相反,采用测量信号周期然后取

10、其倒数的方法在低频段测量时精度很高。因此,本题在测量50hz左右的市电信号频率时采用方案二。25 电压过压、欠压方案选择 方案一:采用两片比较器芯片 lm311对输入电压与上下门限值进行比较。根据lm311的输出驱动蜂鸣器报警。本方案对上下门限值精度和稳定度的要求较高。方案二:软件设定比较值。采用软件编程判断过、欠压值,然后通过单片机口线输出电平驱动蜂鸣器报警。采用软件判断电压过、欠压,省掉了硬件搭接,节省成本。故采用方案二。26 显示模块的选择 方案一:采用数码管显示。数码管亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用受到很大的限制。 方案二:采用液晶显示。液晶显示功耗低,

11、轻便防震。由于本题显示信息比较复杂,采用液晶显示界面友好清晰,操作方便,显示信息丰富。 27 其他设计的考虑 由于单片机接口线有限,我们采用一片 8255扩展口线,做相应的控制。闹铃响采用带音乐芯片的扬声器,为实现题目中非接触止闹功能,我们可以采用接近开关或无线接收发送模块通过单片机控制闹铃停止。 28总结方案所以经上面的分析,二种方案的各有所长,电子钟已经是一项很成熟的技术,一般不去进行复杂的硬件设计(方案一需要进行硬件设计)或硬件电路设计(方案二需要软件电路),所以目前用得较多的是方案二。由于我们是进行单片电路设计,按方案二进行设计有利于我们掌握单片机在现在生活中的作用。在今后进行复杂电路

12、设计时能拿来就用。另外,方案二所用的元件易于采购,成本也不高。第三章 系统原理及理论分析31 单片机最小系统组成 单片机系统是整个硬件系统的核心,它即协调整机工作,又是数据处理器,是软硬件系统连接的桥梁。它包括: 单片机89c55 键盘管理芯片7289 可编程外围并行接口芯片8255 28键盘 hm12864液晶模块 32 频率测量原理 本系统测量市电信号的频率,即 50hz左右的频率信号,属于低频段信号频率测量,基于此实际,我们采用测量输入信号周期然后取倒数的方法测量信号的频率,即测周法,这样能提高测量的精度,测量信号周期的原理框图图2 所示,波形示意图如图3所示。 图 2 信号周期测量原理

13、图 单片机数字钟设计图 3 频率测量计数波形示意图 33 有效值测量原理 对于交流工频信号,一般是以有效值进行计量,其计算公式为: , 其中t为信号周期; 故 为此,我们把电信号的有效值作为我们测量的参数,具体方法是:将已经经过电源滤波的市电信号经过变压器后接入真有效值转换芯片 ad536,输出与有效值相等的直流信号,将其作为高速a/d转换芯片icl7135的输入,其中,icl7135芯片的基准源如右图所示,然后利用单片机读取数据并进行 相应的转换运算,从而得到市电信号的有效值。原理性框图如图 5 所示 图 4 有效值测量方框图 第四章 各模块电路图 41 时钟模块 图 5 ds12887 时

14、钟硬件电路图42 闹铃响及报警模块 闹铃响采用带音乐芯片的扬声器,过、欠压报警采用不同声音的蜂鸣器完成报警功能。具体电路图如图 6所示。 图 6 闹铃及报警电路图43 高速 a/d转换模块 我们采用芯片icl7135作为高速a/d转换芯片为转换核心 ,该芯片为 位bcd码输出的的cmos集成电路,具有精度高,抗干扰能力强,分辨率能达到二万分之一,对电源变化稳定性高、高输入阻抗、自动调零、自动判别极性,性能价格比高。其输出为4位bcd码,5根扫描线,1根符号位以及“忙”、“运行/保持”、“过量程”、“欠量程”等辅助信号。完全能满足题目基本要求和发挥部分的精度指标。图 7 icl7135 高速 a

15、/d 转换原理图 44 电压真有效值转换模块 ad536是单片集成的有效值变换器,具有精度高,可靠性好,转换频率范围宽的特点,而且具有分贝输出功能,采用本芯片完全能满足题目要求,而且还可以方便的进行扩展。 图 8 ad536 真有效值转换电路图45 键盘模块 我们采用 2 8 的键盘,原理图如图 9 所示。 图 9 键盘原理图46 液晶显示模块 hm12864拥有12864位的显示存储器,8位并行数据接口,简单的操作指令,如显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令,低功耗,宽电压工作。 图 10 液晶显示模块47 单片机最小系统 at89c55单片机是低功耗、高性能的片内含

16、有20kb闪速存储器的8位cmos微控制器,存储器可循环写入/擦除1000次,具有1288位内部ram,32条可编程i/o口线,3个定时器/计数器,具有5个中断源和2个优先级的中断结构,可编程全双工串行通道等功能,因此,我们选用89c55单片机来满足程序容量大,控制较为复杂的特点,以完成题目的基本要求和发挥部分的要求。具体原理图如图 11 所示。 图 11 单片机最小系统原理图单片机数字钟设计第五章 系统软件部分 为实现系统功能,系统软件共设九个运行状态(见图 12中s1-s9)和一个中断处理程序(sr)。各部分功能描述如下: 图 12 软件整体流程图 s1:时钟日期显示状态。 89c55从d

17、s12887循环读取时间日期值并显示。 时间值与闹钟设置值比较,若定时到,则进入闹铃状态( s8)。 从 7135读取电压值并与上下限电压比较,若过压或欠压则进入报警状态(s9)。s2:时间设置状态。进行时间和日期的设置,写入ds12887中。 s3:温度显示状态。从ds12b80中读取温度值显示。s4:闹钟设置。显示选择菜单,可选择闹钟开、闹钟开、闹钟时间设置。s5:电压及频率显示状态。循环检测电压有效值与频率并显示。 s6:时制选择。按1键选择24小时时制,按2键选择12小时时制。 s7:设置闹钟时间状态。 s8:闹铃状态。接通音乐芯片s9:报警状态。接通过压或欠压报警。sr:中断服务程序

18、。读取键盘按键值并根据系统所处的不同的状态设置标志位。 测试方法及结果 51 测试方法 采用先分别调试各单元模块,调通后再进行整机调试的方法,以提高调试效率。 ( 1) 时钟测试 在带有单片机的电路板上编程调试芯片ds12887,使其在液晶上显示出时分秒,并可以通过键盘控制设定时间和闹铃开关的时间。利用仿真机调试成功后通过编程器将程序写入芯片中调试,调试结果显示,该模块可以显示时分秒,可以正常工作。 ( 2) 闹钟测试 通过键盘控制设定闹钟开关和闹钟响的时间,并通过单片机程序驱动音乐电路发声。经过调试,闹钟功能正常,满足题目的基本要求。 ( 3) 温度测试 利用仿真机通过程序读出温度传感器 d

19、s18b20中的温度数据,并且进行了定标,通过键盘操作切换界面,送到液晶显示,并与tm6801a温度表测得的数值相比较,看是否在误差允许范围内。在实际测量中,我们发现ds18b20在低温时变化比较缓慢,误差相对较大一些,在室温时测量比较正常。经过测试,温度显示正常。 ( 4) 频率测试 结合硬件电路通过编写的程序将送入的信号进行处理测试,通过键盘操作切换界面,将结果送到液晶显示。考虑到工频交流电信号的频率非常稳定,为检验我们系统测频的准确性,我们采用频率计输入 40hz60hz的信号进行检验。拟交流电压信号,先用仿真机代替89c52单片机进行模拟调试,对每一芯片的片选、启动进行检测,并对数据线

20、和地址线也进行检测。调试成功后再将程序写到单经过反复调测,该模块能在允许误差范围内正常工作。( 5) 有效值测试 用函数发生器输出 05v的正弦信号电压作为交流信号,先用数字万用表测量电压有效值,再用设计的电路测量此交流信号,然后求出误差,反复调整改进到在误差允许的范围内。 ( 6)过、欠压报警测试 通过 tdgc-015/0.5型调压变压器在电路输入端加入高于242v或低于198v的市电信号,通过软件设定比较,驱动过压蜂鸣器或欠压蜂鸣器报警。 ( 7)非接触止闹测试 通过仿真机将程序运行,我们采用接近开关或无线收发模块来控制,看是否能实现此功能。经过调试,该功能模块正常。 各功能模块均调通后

21、,进行整机调试,其过程如下:将调好的各功能模块连接在一起,用函数信号发生器模片机中进行调试。调试结果显示,整个系统能够正常工作,且能进行更多的功能扩展。 52 测试用的仪器 方正商祺 pc机 yb4360型示波器 ss1792d型可跟踪直流稳定电源 m890c+数字万用表 ee1642b型函数信号发生器/计数器 伟福g6w型仿真器 mcs-51编程器 tdgc-015/0.5型调压变压器 tm6801a温度表53 测试数据 温度测量数据 我们选取四个特定温度点进行测量:0、室温、体温和100。将温度传感器ds18b20放入分别放入冰水混合物和沸水中测量标定,显示示数分别为0和99.1。将传感器

22、置于手掌中和实验室环境中进行测量,显示值分别为35.6和26.4(空调设定温度为27)。 市电频率测量数据(通过信号源产生) 频率计设定值 /hz 本系统测量值 /hz 测量误差 /hz 40.01 40.48 0.47 44.08 44.64 0.56 48.01 48.60 0.59 49.00 49.45 0.45 50.00 50.45 0.45 51.00 51.65 0.65 55.00 55.70 0.70 57.00 57.71 0.71 60.00 60.74 0.64 市电有效值测量数据(通过自耦变压器产生电压信号) 数字万用表测量值 /v 本系统测量值 /v 测量误差 /

23、v 234 233 1 230 230 0 224 224 0 222 221 1 220 220 0 218 217 1 212 211 1 208 208 0 200 200 0 198 197 1 54测量误差分析及改善措施 整个系统板由手工焊接完成,其余器件在单面板上完成布局和布线,无法避免线路之间与外界的电磁干扰,从而会导致一定误差。 在频率测量时,我们采用测周法以提高精确度,并通过软件算法的合理优化,弥补了硬件上的不足,一定程度提高了精确度。55、小结这款多功能数字钟采用了现在广泛使用用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用液晶显示、红外遥控装

24、置和电压报警装置使人机交互简便易行。 为了提高数字钟的准确性,给于校准。第六章 数字钟设技及时间校准用单片机来设计数字钟,软件实现各种功能比较方便。但因软件的执行需要一定的时间,所以就会出现误差。对比实际的时钟,查找出误差的来源,并作出调整误差的方法,使得误差近可能的小,使得系统可以达到实际数字钟的允许误差范围内61系统原理分析系统设计中用到 89 c52 单片机的部分功能:包括内部定时器,键盘扩展,程序中断, 串口通信等。用一个四联体的共阴极八段显示器,可通过一个输入输出口作为显示器数据发送端;另一个输入输出口的四位作为显示器各位的片选信号,另四位作为键盘扩展口使用。采用一个频率为 11.0

25、592 mhz 的晶振构成时钟电路。系统原理图如图 13 :图1 3系统原理图6,2软件实现与流程(1) 主程序由于系统的主要功能都是有程序中断来完成的,主程序基本上没什么事可做,但因键盘扫描是通过程序查询的方式实现的,所以主程序只循环扫描键盘。主程序流程图如图14所示:(2)定时和串口程序定时和串口都是中断响应程序,它们的调用都是系统执行过程中采用中断事件触发产生(中断部分处理如图14所示)。定时中断是周期性发生的,而串口中断则须串口有数据传输才发生中断。定时程序是整个系统的核心代码,这段代码不光涉及到显示,还涉及到系统计时, 这段代码的优劣关系到整个系统的可靠性,后面还将详细讨论。为初步减

26、小系统误差, 置定时初值一定要在程序开始就设置。单片机数字钟设计图14 主程序流程 图14 中断程序流程图6.3 数据的显示与刷新更新显示器涉及到两个操作:发数据和改片选信号。但实践发现,代码中无论是先改片选信号还是先发数据信号,都会出现重影(即相邻两位显示差不多)这也是动态扫描引起的。实践先该片选,则前一位的数据会在下一位显示一段时间;先发数据,则后一位的数据会在前一位显示一段时间。因而出现重影。解决这个问题的办法是先进行一个消影操作,然后再发片选,最后发数据。这样就很好地解决了重影问题。这样做的关键在于,在极短的一段时间内让显示器都不亮,等一切准备工作都做好了以后再发数据,只要显示频率足够

27、快,是看不出显示器有闪烁的(程序用定时中断频率作为显示更新频率,在表 1 中,只当更新率?00 赫兹时,才发现显示器有闪烁)。这段显示程序代码如下: p1=0 x00; / 消影 p2=选择选择;/ 发片选信号 codetmp=acode echoarray选择; 如果 (选择 =2&mod=0&dotflag)/ 判断是否显示 . codetmp|=0 x80; p1=codetmp; / 发数据 选择=+选择%4; / 片选计数器下移6.4 键盘响应程序键盘处理程序流程相对简单,只是简单的判键与处理。这里不再给出流程图。所谓键盘消抖就是一次按建的多次响应问题。当然,一般一次按建只须响应一次

28、,但有的时候需要多次响应,如系统进入修改模式,数字的增减。当出现这种问题时,用户的一次击键是作为一次还是多次处理,必须有一个标准。程序中我用到了一个标志位,相当于中断系统的中断标志。当用户按下键时,标志清零,松开键时,标志恢复;键按下超过一定时间(靠一扫描计数器判定)后,恢复标志,则经过一定的时间延迟(也靠一扫描计数器判定)可以响应一次按键(即一次按键的多次响应)。而事实上,键盘响应程序就是一个事件触发器,键盘的每一个状态(按下,松开, 点击)都可能引发一段响应程序(如:重新设定键按下 = 准备复位;松开= 系统复位)。这里的时间延迟靠的是指令计数,由于受硬件中断等不确定因素影响,这个延迟一般

29、不准确,但通过实践测试,可以找到一些合适的值。65系统性能测试与功能说明(1)定时计数器的初始值设置公式推导系统中所选用的晶振的频率为fosc,则机器周期为:公式1: 2 设定时器要求的中断频率为k,计数器位数为n,则定时计数器的初值x设置有如下公式: 2 。于是:原始公: 而实验测得的数据显示,这个公式所得的结果并不可靠:(下表中的所有数据都是在计数器初始值严格按照原始公式给出的条件下测得,以个人计算机机系统时钟为标准)。从表 1 中的数据可知,严格按照原始公式得出的计数初值是存在极大误差的,这个误差总使系统时间变慢,而且,系统时间的误差值随着每秒中断次数的增多而增大,随计时总长的增长而增大

30、,并且总是成比例(在误差允许的范围内)。这就是说,系统的误差跟每秒中断次数和个人计算机标准时长的乘积(即中断总次数)成正比。也就是说,每次中断计时的时间误差是一个常数。误差来源分析不考虑晶振等固件的误差,则系统机器周期可以由公式 1 准确给出,因而系统误差不可能来自于硬件,而应该主要来自于软件方面。系统每次调用定时中断程序的过程中,硬件并没有自动进入下一个定时周期,而是在调用中断程序以后由软件置数来实现的。而在程序表1 系统时间校正测试数据调用过程中,堆栈建立,参数传递等都是需要耗时的,而这些时间都被无形中加到了定时长度中去。所以,使得每次定时长度都大于理论推导值,在宏观上表现出来就是系统比理

31、论计算出来的结果变慢了(这于表格 1 所得的结论恰好一致)。另外,由于系统每次调用中断处理程序所执行的操作都是相同的,也就是说,系统每次定时的时间误差应该是一个常数(这也恰好跟实验数据相吻合)。由上面的数据和分析可知,原始公式应该修改为:公式2: 则由表格 1 ,关于的计算公式如下:公式3:由表格 1 数据,实际中要求 k 最小,而又不影响显示效果,才能使误差越小,故实测中取 k=160 。根据表格一计算得 20 (所用晶振频率为 11.0592 mhz )。按表 1 的实验方法,得表 2 :表2 参数优化后的计时测试数据这些数据较表 1 已有很大准确性,但与实际应用还有一定差距。末两行是根据

32、前面参数规律稍做改动得到的, 与公式 2 有一定出入, 但与个人计算机系统标准时间已经相当接近。由于表 1 的数据本身是肉眼估出来的,本身就带有很大的误差,实际运用可用精密仪器得到表 1 数据,则系统参数可以更进一步接近实用值。(2)系统功能与操作说明主要功能:二十四进制时间显示 ( 时、分), 秒以.的闪烁表示;电子跑表计数功能;可通过按键修改,显示时,分,秒,复位;可通过个人计算机机串口设置时,分,设置时连续发送四位十六进制数,依次为时的高,低位,分的高, 低位。完成后秒自动复位。辅助功能:键盘共 4 个键,从左到右依次标名为向上的,向下的,组,重新设定, 用来修改和设置系统时钟。同时还可以通过串口来修改和设置系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论