第四章 软件设计
4.1 主程序结构
系统初始化后首先开启开中断,进行液晶初始化,其次进行按键检测,进入RLC模式选择,看功能选择键是否按下,若按下进入RLC测量,相应指示灯亮,同时计数脉冲个数,转换成频率测量后把结果送LCD12864显示。若没按下就返回按键检测,等待RLC模式选择,如此循环。
系统程序流程图如图4-1所示:
17
图4-1 系统程序流程
开始 开中断 液晶初始化 按键检测程序 1S定时到? Y 计算脉冲个数 N 计算电阻程序 计算电感程序 计算电容程序 LCD液晶屏显示 结束 18
4.2子程序
按键选择:
开始 按键检测 根据不同按键选择不同的状态 R测试状态,红灯亮,4052选择R通道 L测试状态,绿灯亮,4052选择L通道 C测试状态,黄灯亮,4052选择C通道 结束 图4-2按键检测子程序流程图
以上是按键检测子程序流程图。CD4052是差分四通道数字控制模拟开关[14]器件,当有按键按下时,程序进入此子程序。当R按键按下时,主芯片以01指令发送到CD4052芯片,CD4052按照硬件设定好的进入R测试状态,红灯亮同时将来自测试模块的电阻脉冲输出;同样的道理,当L按键按下时,主芯片以00指令发送到CD4052芯片,CD4052按照硬件设定好的进入R测试状态,绿灯灯亮同时将来自测试模块的电感脉冲输出;同样当C按键按下时,发送10指令到CD4052芯片,即进入C测试状态,黄灯亮,CD4052选择C通道,将电容脉冲输出,如此完成按键的选择流程。
19
图4-3定时计数器流程
此部分是定时计数器流程。由于本设计是将待测的电阻、电容、电感连接到振荡电路,将其产生的频率经过单片机运算而得出相应的待测值,因此需要定时计数器来计数其一秒内的脉冲次数,将其转换成频率。因此定时计数器的准确性直接影响到最后结果的精确值。如图4-3所示,程序进入定时器中断,首先设置初值然后进行计数,当一秒时间到时中断将计数值返回主程序进行计算,如此循环。
以下是LCD显示流程图,LCD12864首先上电初始化,完成初始化后开始读取显示变量,即经过单片机处理运算后的电阻、电容、电感的值,变量数据读取完成则把变量转换成字符数据,只有转换成字符数据才能在LCD上显示。完成数据转换之后即是进行显示位置定位,确定LCD上显示数据的位置,当这一系列流程完成,数据即可显示在LCD12864显示屏上。
20
开始 LCD初始化 读取显示变量 把变量转换成字符数据 显示位置定位 LCD显示数据 结束
图4-4 LCD显示流程图
21