西安交通大学电子系统实践与设计报告
Key2处理子程序:
working=1;---------工作状态标志位,由此来控制循环的进行及部分液晶显示内容 displaywork();------液晶显示子函数,会在第一行滚屏显示“working??” maikuan();---------脉宽值显示子函数,会在屏幕中央显示被测的脉宽值及单位 Key3处理子程序:
displayfuwei();-------液晶显示子函数,在屏幕中央显示“正在复位??” fuwei=1;--------------复位状态标致位,由该状态来决定外循环是否执行goto语句,从而跳到程序开头重新进行初始化
break;-----------------跳出内循环,迫使程序在外循环中进行“fuwei”状态位判断 Key4处理子程序:
working=0;----- 工作状态标志位,由此来控制循环的进行及部分液晶显示内容 displayend();----液晶显示子函数,在屏幕中央显示“谢谢使用” break;------------ -跳出内循环,在此执行外循环
说明按键需要的时间
五、系统整体功能和操作过程说明
1、整体功能说明
主要功能由按键实现,已在上一部分中进行了说明。系统程序采取标准的结构化设计,在main函数中实现对各个子函数的调用。在定时器和PLD初始化后,随着计时的开始将直接由计数器和PLD进行测频,1秒时间间隔到,则测频结束,程序自动算出频率之后保存在定义好的变量中,供显示频率的函数调用。也就是说当进入按键功能选择时测頻过程已经完成。Key0、Key1、Key2只是调用函数显示不同的内容而已。Key3按下后程序由break语句跳出按键扫描程序而重新进行定时器和PLD初始化,即重新开始频率测量。Key4按下后将由goto语句直接跳到main函数刚进去的地方,完全从头重新执行程序。程序段 先进行变量定义,然后是液晶显示数据段,接下来是各种函数以及函数的相互组合调用,最后进入main函数实现整个系统的逻辑功能 系统整体运行逻辑框图如下:
西安交通大学电子系统实践与设计报告
按键扫描 初始化PLD;初始化定时器计数器开始测量 T1定时T0计数 直接计数法测频 等精度法测頻 清屏显示标题,清屏显示初始化面 液晶显示初始化 开始 频率 脉宽 Key0? Y N Y Key1? 显示频率 放大字符 N Y Key2? 显示脉宽 N Y Key3? N N fuwei=1 Key4? Y Y N 图5-1 系统整体运行逻辑框图 2、系统操作过程说明
上电之后液晶屏刷新一次,然后显示初始化面,保持2、3秒后,屏幕中央
清屏、初始化面 fuwei=1 ? 西安交通大学电子系统实践与设计报告
显示“请按键??”提示,表示系统初始化、测頻已完成,程序已进入按键扫描函数,此时按键有效。注意按键有防抖动功能,故按键不能太快,当按键后看到有清屏现象时表示按键有效。Key0、Key1、Key2各键按下时,屏幕第一行均有滚动显示的“working”状态提示。信号测量范围20Hz-9999Hz,当算出频率大于此范围时,Key0、Key1按下均会显示“超出范围”提示,当小于此范围时,Key0、Key1按下均会显示“NO SIGNAL!”提示.Key3按下时,頻幕显示“正在复位”提示,然后系统从头开始。Key4按下时,頻幕显示“谢谢使用”提示,然后系统重新初始化。具体流程见图5-1 系统整体运行逻辑框图
六、电路图和PLD图
西安交通大学电子系统实践与设计报告
七、实验调试、误差分析、参数确定
1、系统调试
方案的具体设计是分成三个模块的,故调试也是分成三个独立模块,这样的好处是,每次调试的时候程序都比较短,没有很复杂的逻辑在里面容易调试通过和查处错误。调试顺序:频率测试模块、液晶显示模块、功能键模块,最后进行系统整体功能完整调试。
(1)频率测试模块:
直接计数测频的调试:程序用printf语句作为输出,直接将方波信号接到T0引脚上,程序为循环测试,进入debug状态后,调节信号发生器的输出频率,观察不断刷新的窗口显示,通过输入输出对比,检查频率测量的正常与否。
等精度测频调试:
由于电路板发下的时间较迟,故该模块的调试可在学习机上完成, 。
(2) 液晶显示模块调试:
该模块是在电路板焊好后子环节在自己的电路板上调试的,因为接线较多(20个引脚)在学习机上调试不太方便。在电路板上调试,不仅不用接线,还
西安交通大学电子系统实践与设计报告
可以检查自己电路板的焊接是否存在问题。液晶显示模块原理比较陌生和难以理解,故可显示最简单的字符来检查整个模块的控制以及自己的程序设计是否有问题。等液晶显示模块可以正常显示了,再添加内容,比如汉字显示,字符大小调整、显示位置的调整等进行调试验证,以完善程序和加深理解、整个模块的调试还包括对自摸提取软件的熟悉使用。
(3)功能键模块调试:
该模块的调试有两个作用:按键功能的程序实现、通过功能键将前两个程序模块连接在一起。按键功能调试时不需要有太复杂的子函数,可简单的添加不同的printf语句。等上述调试完成后,开始逐个添加功能键子程序进行调试。然后对信号经过PLD传输到单片机的接口电路进行调试。
最后整机进行调试,基本功能实现后可逐步修改显示及按键是整个系统功能完善,显示合理美观。
2、误差分析
(1)方案一的误差分析
在测量中,误差分析计算是不可少的。理论上讲不管对什么物理量的测量,不管用什么样的测量方法,只要进行测量,就可能存在误差。误差分析的目的就是要找出引起误差的主要愿意,从而有针对地采取有效措施,减小测量误差,提高测量的精确度。
在实际调试过程中,方案一测的频率总是误差很大,经过检查,将单片机晶振当作12MHz会产生时间闸门的扩大,从而导致测频数据变大。经过调整将1秒
的
时
间
闸
门
换
算
成
11.0592MHz
下
,
从
而
TH1=(65536-10000*11.0592/12)/256=(65536-9216)/256;TH0=(65536-9216)%6;经调整后误差明显下降,但还是存在稳定的接近1%的误差。
方案一的固有误差分析如下:
?fx?N?T?? fxNT方案一的误差由计数器计数脉冲相对误差和标准时间相对误差两部分组成。因此,对这两种相对误差可以分别加以讨论,然后相加得到总的频率测量相对误