本文剖析了依据AT89S51 单片机的视点丈量的硬件组成、电路规划原理。给出了主函数的作业流程和源代码。规划样机已通过多种环境实验的测验。
视点丈量仪是某操控体系中瞄准设备的要害部件。在以往的操控体系中,大都都是仅凭设备操作人员眼睛瞄准指定方针,然后作出相应的操控,这样就带来一系列问题,如操作人员的经历、瞄准设备转盘的空回都或许会严峻会影响瞄准方针的精确程度,然后严峻影响操控体系的精度。为了进步操控体系的瞄准精度,在操控体系的瞄准设备中添加了视点丈量仪部件,操作人员瞄准方针后的视点值能够精确定量地显现在操作面板上,协助操作人员愈加精确地瞄准方针,因而,极大地进步了操控体系的操控精确度。
视点丈量仪使用光电编码器读取视点值,选用AT89S51 单片机完结视点值数码显现、视点值误差规模的发光二极管指示功用(有三个指示灯,别离指示:偏高、偏低、适中)。不管在操作的杂乱程度上仍是在丈量的精度上,都是传统的眼瞄办法、刻度丈量及标识办法无法比拟的。
作为某操控体系的瞄准设备的重要技能改善,此仪器的使用大大进步了操控体系瞄准的精度,添加瞄准误差规模的可读性,筛选了传统的用刻度丈量和标识视点的办法,使该操控体系的全体功用得到了明显进步。此外,该视点丈量仪只需稍作改动即可广泛用于其它工业操控体系中。
1 硬件基本原理
首要,视点丈量仪使用单片机读取光电编码器测出的视点值,再将视点值转化成密位值并显现在数码屏上(留意: 密位(mil) 是一种视点单位,密位100 = 视点6°)。单片机判别当时视点值的误差规模,给出操控信号点亮相应的发光二极管指示灯。此外,视点丈量仪还能够通过操控面板上的开关操控完结瞄准镜照明和低温环境下瞄准镜主动除霜功用。单片机的首要功用是完结视点值数码管显现、视点值规模的发光二极管指示。该体系的难点在于确保视点值转化成密位值的转化精度和体系在非常温环境下的作业可靠性。
硬件分为以下几个模块:操控面板、单片机、光电编码器、电源、数码显现器、发光二极管匹配指示设备、周视镜与直瞄镜照明与除霜,如图1所示。
1. 1 单片机的选用
首要,依据项目的需求剖析能够得知单片机要完结的首要功用是:从光电编码器(数据总线宽度是15 位) 读取视点值后,将该视点值与体系预设的视点值比较,判别瞄准的视点值规模,点亮相应的指示灯。然后将从光电编码器读得的视点值转化成密位值,发送给串行L ED 显现驱动器MAX7219 ,显现在LED 显现器上。
从以上剖析能够得知,合适此需求的单片机至少应具有3 个8 位并行I/ O 端口(其间光电编码器占用2 个端口,其它占用1 个端口) ,才干有用作业。众所周知,产品的质量等级一般分为三级:军用级、工业级和商用级,其间,军用级等级最高,商用级等级最低。由于此工业操控设备一般在户外作业,作业环境比较恶劣,故单片机的质量的等级也是需求考虑的一个重要因素。
现在,MCS – 51 系列单片机技能老练,开发所用的教材和技能资料多,开发工具完全,市场上产品品种丰厚、性价比较高、购买简略,开发言语简略易学(能够用汇编或C51) ,因而,该系列产品使用广泛,经久不衰。
通过归纳考虑,单片机选用ATMEL 公司出产的AT89S51 芯片(MCS – 51 系列单片机的工业级产品) , 兼容MCS51 微操控器,4 K 字节FLASH 存贮器支撑在体系编程( ISP) 1000 次擦写周期,128 字节片内RAM ,作业电压4. 0 V 到5. 5 V ,全静态时钟0 Hz 到33 MHz ,三级程序加密,4 个8 位的可编程I/ O 端口,2/ 3 个16 位守时/ 计数器,6/ 8 个中止源,全双工UART ,低功耗支撑Idle 和Power down 形式,Powerdown 形式支撑中止唤醒,双数据指针,上电复位标志。ATMEL 公司出产的89 系列单片机在工业、交通、仪器仪表、主动出产进程、航空、运送、轿车、家电等范畴都有着极及其广泛的使用。所选型号为ATMEL 公司的AT89S51 – 24PI ,工业级。能习惯- 45 ℃~ + 80 ℃环境作业。
单片机的I/ O 端口资源分配是: P0 和P2口分配给光电编码器,P1 口分配给显现驱动和匹配指示发光二极管操控以及MAX813.
1. 2 单片机首要外围电路的规划
监控电路:为了进步单片机在恶劣环境下的可靠性,有必要选用μP 监控电路来添加单片机的稳定性和抗搅扰才能。硬件监控电路有以下功用:(1) 上电复位:保障体系加电时能正确地发动。(2) 掉电复位:当电源失效或电压降到某一电压值以下时,发生复位信号对体系进行复位。(3)看门狗守时器:当处理器遇搅扰,程序运转紊乱发生"死锁"时,对体系复位。此处选用MAXIM公司的军用级芯片MAX813LMJA.
显现驱动电路: 为了节约单片机I/ O 口资源,下降单片机的核算量,选用串行L ED 显现驱动器MAX7219. 它能操控8 位共阴级L ED 数码管,具有16 级亮度操控、译码灵敏,上电发光二极管全熄、只占用三根单片机I/ O 口线等长处。
单片机及首要外围电路的原理如图2 所示。
1. 3 单片机与外围器材的数据通信
单片机与光电编码器:由于光电编码器取得视点值的速度远大于单片机的作业速度,所以,单片机能够以为光电编码器上的数据总是处于"准备好"状况,单片机随时能够读取有用数据,16 位的视点值分红高8 位和低8 位两次读取,它们之间的数据是并行无条件传送。
单片机与MAX7219 :从单片机和MAX7219的作业速度来看,CPU 两次发送数据给MAX7219 的时刻距离,足以确保单片机拜访MAX7219 时,MAX7219 总是处于"准备好"状况。而MAX7219 又是串行L ED 显现驱动器,因而,单片机与MAX7219 的数据传送是串行无条件传送。
单片机与MAX813 :由于单片机向MAX813发送数据时,MAX813 只等候接纳单片机的初始化数据而并无其它的作业其作业速度足够快,能够以为MAX813 总是处于"准备好"状况。因而,单片机与MAX813 的数据传送也是串行无条件传送。
2 软件规划原理
视点丈量仪发动作业后,单片机的作业进程是:体系发动后,初始化外部看门狗,初始化显现驱动芯片MAX7219 ,给看门狗计数器赋初值,读取光电编码器获取的视点值,当视点误差值处在某一特定规模时,单片机宣布操控信号点亮与该规模相对应的指示灯,将当时的视点值转化成密位值显现在数码屏,又从头给看门狗计数器赋初值,进入下一个作业循环。主函数的作业流程如图3 所示。
请留意,流程图中,带双线边的矩形框表明该部分为函数。在本课题的软件规划中,选用了C51 编程言语,由于用C51 编程不只效率高,并且可读性很强。
下面给出主函数的源代码。
void main (void)
{
WDI = 0 ; / / 初始化看门狗
InitMax7219 () ; / / 初始化MAX7219 的函数
while (1) {
WDI = 1 ; / /"喂狗"
WDI = 0 ; / /"喂狗"
GetAngle () ; / / 读视点值的函数
MachView() ; / / 指示灯匹配显现的函数
GetMil () ; / / 核算密位值的函数
DisplayMil () ; / / 显现密位的函数
}
}
在主函数调用的几个函数中,InitMax7219() 的功用是初始化L ED 显现驱动器MAX7219 ,单片机向MAX7219 发送消影操控、亮度、扫描规模、译码方法信息。
GetAngle () 的功用是从光电编码器读视点值,先读高8 位,再读低8 位,然后将高8 位和低8 位兼并,最终舍去最低位(光电编码器的有用数据是15 位) .
MachView() 的功用是视点误差指示灯匹配显现,将该视点值与体系预设的视点值比较,判别瞄准的视点值是偏高、偏低仍是适中。假如视点值偏高,那么单片机就宣布操控指令,使偏高指示灯亮,假如偏低,则令偏低指示灯亮,不然令适中指示灯亮。
值得留意的是,核算密位值的函数GetMil() 的代码编写,要考虑视点的转化精度,在本课题中,选用了C51 中的long 型变量来别离寄存密位的整数和小数部分,并将视点的小数部分扩大十万倍后参与运算,确保转化精度。
DisplayMil( )的功用是驱动MAX7219 显现密位。首要显现密位,判别此视点是否进入预设区,假如是,平息符号灯,各位显现"0";假如没有,判别视点值是否为负,假如是,显现负号,假如是正,不显现负号,然后将视点值显现在L ED显现屏上。
3 结束语
为了使视点丈量仪能在各种或许的恶劣环境下(如高温、低温、振荡等环境) 正常作业,在整个规划进程中,要侧重考虑的问题是硬件的可靠性和软件的可靠性。规划时的留意事项如下: (1)电源芯片的额定功率挑选要留有余量。(2) 元器材挑选工业级或军用级产品。(3) 选用硬件看门狗计划,避免单片机程序锁死。本课题规划的样机已处于测验阶段,现在已通过了常温文多种环境实验的测验。