光电式数字测速仪
2.1 主程序
主程序流程图如图2 所示。接通电源后让系统各器件均复位。初始化是将系统中所有命令、状态及有关存储单元置成初始状态; 自检是利用测试程序检查系统各主要部件工作是否正常。完成初始化和自检正常后, 显示器显示正常标志H, 等待键扫描; 若自检不正常, 可再次初始化、自检, 或用复位键使系统强行复位。
键扫描对测转角、测转速、测圈数3 个功能键进行查询。无键按下时, 继续显示提示符; 有键按下时, 就进入该键功能软件控制。完成某个功能测试后, 对测试数据进行查询, 与存储器中的标准值比较, 达到标准值或上限值就发出控制信号。之后, 检查有无命令键或复位键输入, 有命令输入就转至b 等待转移; 有复位键输入则转至c 复位转移; 否则转至a 循环转移, 实现某个功能键的循环操作。比如测转角, 则采集、码制变换、运算、显示, 几个功能不断循环, 显示器则显示被测角度的数值。
光电式数字测速仪
2.2 子程序
主要子程序有以下几个: 系统自检子程序; 键功能子程序1, 2, 3 (其中1 为测转角功能子程序、2 为测转速功能子程序、3 为测转动圈数功能子程序) ; 显示功能子程序。本文主要阐述键功能子程序。
2.2.1键功能子程序1
该程序用来测转角。实际要调用若干个子程序。两次采集将9 位二进制码输入8031 内存后, 调用二进制码变十进制码子程序[3 ] , 再调用运算子程序[2 ]完成360/512 x 0.703 x (x 为被测得的十进制数)。计算出角度再调用显示子程序
[2 ] , 显示被测的角度。
2.2.2键功能子程序2
该程序用于测转速。从P3.2输入每转1 周64 个脉冲的信息(因为从第6 码道取信
号) , 利用8031 的外部中断NT0, 测转速时, NT0工作于计数方式,每当检测到被
测转速N 时, 就引起一次中断, 中断服务程序就计数1 次。采用T/ CO 为工作方式1, 最高中断优先级, 其溢出100 次即定时为1 s 时间, 测出的为频率值。再调用乘法子程序[2 ]完成60/64N = 0.9383N (N 为1 s 内输入计算机的计数值)。实际上这样显示的结果为每分的转数, 故分子、分母均应乘以60; 再调用显示子程序, 显示的才是每秒的转速。
2.2.3键功能子程序3
该程序用于测旋转的圈数。被测体每转1 周从P3.2输入1 个脉冲, 利用中断服务程
序进行计数, 显示数即为旋转的圈数。
第三章 误差分析
本系统采用8031 单片机, 与全部电路采用集成电路组成的测速仪相比, 具有硬件结构简单、测量精度高、性能稳定可靠等优点。