单片机数字钟设计 第4页
第五章 系统软件部分
为实现系统功能,系统软件共设九个运行状态(见图 12中S1-S9)和一个中断处理程序(SR)。各部分功能描述如下:
图 12 软件整体流程图
S1:时钟日期显示状态。
• 89c55从ds12887循环读取时间日期值并显示。
• 时间值与闹钟设置值比较,若定时到,则进入闹铃状态( S8)。
• 从 7135读取电压值并与上下限电压比较,若过压或欠压则进入报警状态(S9)。
S2:时间设置状态。进行时间和日期的设置,写入ds12887中。
S3:温度显示状态。从ds12b80中读取温度值显示。
S4:闹钟设置。显示选择菜单,可选择闹钟开、闹钟开、闹钟时间设置。
S5:电压及频率显示状态。循环检测电压有效值与频率并显示。
S6:时制选择。按1键选择24小时时制,按2键选择12小时时制。
S7:设置闹钟时间状态。
S8:闹铃状态。接通音乐芯片
S9:报警状态。接通过压或欠压报警。
SR:中断服务程序。读取键盘按键值并根据系统所处的不同的状态设置标志位。 测试方法及结果
5.1 测试方法 采用先分别调试各单元模块,调通后再进行整机调试的方法,以提高调试效率。
( 1) 时钟测试 在带有单片机的电路板上编程调试芯片DS12887,使其在液晶上显示出时分秒,并可以通过键盘控制设定时间和闹铃开关的时间。利用仿真机调试成功后通过编程器将程序写入芯片中调试,调试结果显示,该模块可以显示时分秒,可以正常工作。
( 2) 闹钟测试 通过键盘控制设定闹钟开关和闹钟响的时间,并通过单片机程序驱动音乐电路发声。经过调试,闹钟功能正常,满足题目的基本要求。
( 3) 温度测试 利用仿真机通过程序读出温度传感器 DS18B20中的温度数据,并且进行了定标,通过键盘操作切换界面,送到液晶显示,并与TM—6801A温度表测得的数值相比较,看是否在误差允许范围内。在实际测量中,我们发现DS18B20在低温时变化比较缓慢,误差相对较大一些,在室温时测量比较正常。经过测试,温度显示正常。
( 4) 频率测试 结合硬件电路通过编写的程序将送入的信号进行处理测试,通过键盘操作切换界面,将结果送到液晶显示。考虑到工频交流电信号的频率非常稳定,为检验我们系统测频的准确性,我们采用频率计输入 40Hz-60Hz的信号进行检验。拟交流电压信号,先用仿真机代替89C52单片机进行模拟调试,对每一芯片的片选、启动进行检测,并对数据线和地址线也进行检测。调试成功后再将程序写到单经过反复调测,该模块能在允许误差范围内正常工作。
( 5) 有效值测试 用函数发生器输出 0-5V的正弦信号电压作为交流信号,先用数字万用表测量电压有效值,再用设计的电路测量此交流信号,然后求出误差,反复调整改进到在误差允许的范围内。
( 6)过、欠压报警测试 通过 TDGC-015/0.5型调压变压器在电路输入端加入高于242V或低于198V的市电信号,通过软件设定比较,驱动过压蜂鸣器或欠压蜂鸣器报警。
( 7)非接触止闹测试 通过仿真机将程序运行,我们采用接近开关或无线收发模块来控制,看是否能实现此功能。经过调试,该功能模块正常。 各功能模块均调通后,进行整机调试,其过程如下:将调好的各功能模块连接在一起,用函数信号发生器模片机中进行调试。调试结果显示,整个系统能够正常工作,且能进行更多的功能扩展。
5.2 测试用的仪器 方正商祺 PC机 YB4360型示波器 SS1792D型可跟踪直流稳定电源 M890C+数字万用表 EE1642B型函数信号发生器/计数器 伟福G6W型仿真器 MCS-51编程器 TDGC-015/0.5型调压变压器 TM—6801A温度表
5.3 测试数据 ① 温度测量数据 我们选取四个特定温度点进行测量:0℃、室温、体温和100℃。将温度传感器DS18B20放入分别放入冰水混合物和沸水中测量标定,显示示数分别为0℃和99.1℃。将传感器置于手掌中和实验室环境中进行测量,显示值分别为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 测量误差 /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
5.4测量误差分析及改善措施
① 整个系统板由手工焊接完成,其余器件在单面板上完成布局和布线,无法避免线路之间与外界的电磁干扰,从而会导致一定误差。
② 在频率测量时,我们采用测周法以提高精确度,并通过软件算法的合理优化,弥补了硬件上的不足,一定程度提高了精确度。
5.5、小结
这款多功能数字钟采用了现在广泛使用用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用液晶显示、红外遥控装置和电压报警装置使人机交互简便易行。 为了提高数字钟的准确性,给于校准。
第辣章 数字钟设技及时间校准
用单片机来设计数字钟,软件实现各种功能比较方便。但因软件的执行需要一定的时间,所以就会出现误差。对比实际的时钟,查找出误差的来源,并作出调整误差的方法,使得误差近可能的小,使得系统可以达到实际数字钟的允许误差范围内
6.1系统原理分析
系统设计中用到 89 C52 单片机的部分功能:包括内部定时器,键盘扩展,程序中断, 串口通信等。用一个四联体的共阴极八段显示器,可通过一个输入/输出口作为显示器数据发送端;另一个输入/输出口的四位作为显示器各位的片选信号,另四位作为键盘扩展口使用。采用一个频率为 11.0592 MHz 的晶振构成时钟电路。系统原理图如图 13 :
图1 3系统原理图
6,2软件实现与流程
(1) 主程序
由于系统的主要功能都是有程序中断来完成的,主程序基本上没什么事可做,但因键盘扫描是通过程序查询的方式实现的,所以主程序只循环扫描键盘。主程序流程图如图14所示:
(2)定时和串口程序
定时和串口都是中断响应程序,它们的调用都是系统执行过程中采用中断事件触发产生(中断部分处理如图14所示)。定时中断是周期性发生的,而串口中断则须串口有数据传输才发生中断。定时程序是整个系统的核心代码,这段代码不光涉及到显示,还涉及到系统计时, 这段代码的优劣关系到整个系统的可靠性,后面还将详细讨论。为初步减小系统误差, 置定时初值一定要在程序开始就设置。
上一页 [1] [2] [3] [4] [5] [6] 下一页
单片机数字钟设计 第4页下载如图片无法显示或论文不完整,请联系qq752018766