微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AT89S52单片机的无线光电靶控制器的设计

基于AT89S52单片机的无线光电靶控制器的设计

时间:09-16 来源:互联网 点击:


无线接收利用中断完成。每次接收到一个有效的命令,就会将命令保存在一个指定地址,然后建立一个标志位,通知主程序。主程序根据命令内容,调用相应的子程序,完成命令要求的任务。中断服务程序框图略。
4.2 数据处理程序
数据处理程序的功能是根据读取的光敏检测数据,计算出激光击中的位置。
由于民用激光器的光斑直径有的比较大,有的比较小。在几十米的距离上,一般光斑直径在10~30 mm。激光照射靶标,往往是同时照射几个光敏元件,该程序就是要确定光斑的中心位置。
对照图3,假设光斑中心在10环,可能被照射光敏元件只有10环的,也可能还有9环的4个,还有可能8环的8个也被照射等。要确定10环,除了10环的光敏元件被照射,还有9环、8环、7环可能被照射,并且全环都被照射,否则不能确定10环。
10环以外的其他环数的确定,需要根据光斑照射到的环数和区数来确定。环号,就是10,9,8,7,6环;环数就是光斑照射到的环有几个,比如光斑照射到9,8,7环,环数就是3。区号和区数:正上方为1区,右上方为2区,按照顺时针方向分为8个区,编号为1~8号区;光斑照射到3,4,5,6区,则区数为4。
中心环号计算:首先要根据所有照射到的环号计算出环数,然后计算出中心环号。最大环号减去环数除以2取整,这就是光斑中心的环号。取整的目的是小数的环数不好显示。如果用数码显示则可以保留小数。
中心区号计算:根据所照射的所有区号计算出区数,再计算出中间区号,就是光斑的中心区号。这里有一个问题:当被照射的区号是7,8,1,2,3的时候,要把最大区号确定为11,最小区号确定为7,再计算出区数和中心区号。如果计算的中心区号大于8则减去8才是真正结果。以区号是7,8,1,2,3为例:区数=11-7+1=5,5/2=2.5,2.5取整=2,最大区号减去区数的一半取整,即11-2=9,由于9大于8,要减去8,即9-8=1,这就是中心区号,即偏上方。
中心环号和区号确定,数据处理完毕。
图5是8个区的区号计算子程序框图,其他子程序略。

从图5中可以看出,如果原始数据的最大区号不是8,那就直接计算中心区号。如果原始数据的最大区号是8,就要判断1区是否有被激光照射,如果没有,那就直接计算中心区号。如果1区有激光照射,最大区号要加1,然后还要判断2区,依此类推,直到没有照射,最大区号确定。这里判断到6区,已经留有余地,实际上不大可能出现这种情况(参照图3分析)。第一次计算的中心区号,还要判断其值是否大于8,如果大于8还要减1,得到最终的结果。
5 光电靶控制器的程序设计
光电靶控制器的程序主要由开机自检,操作命令的接收和执行,无线数据信号的接收和显示,声音的播放控制等几个部分组成,其主程序的框图如图6所示。


从图6可以看出,主程序开机自检之后,进入主循环。在主循环中,除了按照各种标志位来控制LED的显示和语音播放之外,就是检查按键,一旦有键盘命令,立即启动无线发送模块进行发送。这几个键盘命令都是针对光电靶的命令,内灯命令和外灯命令是对光电靶的夜间指示灯的控制命令,击发命令和重发命令解释如下:
击发命令 在操炮手瞄准靶标踩下开炮开关时,接通激光器电源发出激光,并同时产生一个信号给光电靶控制器的单片机,由单片机通过无线信号传送给光电靶。光电靶接收到击发命令,开始对光敏元件进行扫描,得到原始数据。在对扫描的数据处理之后得到激光光斑中心位置的信息,就是环号和区号。光电靶将此环号和区号通过无线模块发送回光电靶控制器。光电靶控制器据此控制LED的显示和语音播放。
重发命令 这个命令是要光电靶将上次击发产生的信息重新发送一次,以便核对。
数据的接收每当无线模块接收到一次有效的信号,就会申请一次中断。在中断服务程序中读取接收的数据,并保存在一个指定的地址里,以便主程序处理。数据的内容是激光光斑中心的环号和区号。中断服务程序的框图如图7所示。



6 结语
利用参考光和比较器进行模数转换,电路简单可靠,速度快。光敏元件圆环状排列,可以充分利用元件。利用单片机的程序处理可以很容易得到光斑的中心位置。经中国人民解放军高炮某部使用效果很好,达到了设计要求,解决了动态靶瞄准的训练问题。而且光电靶重量轻、移动方便,很适合各种野外训练需要。如果将激光器安装在其他枪械上,还可以用在步兵的射击训练上。现在正在改进,准备添加射击成绩统计功能,在光电靶控制器上加一个数码显示器,实时显示射击次数、总环数等,同时还可以与上位机联网,便于数据的储存和管理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top