基于单片机的角度测量仪的设计

  • 格式:pdf
  • 大小:424.99 KB
  • 文档页数:4

文章编号:1673-1255(2005)02-0060-04基于单片机的角度测量仪的设计杨凤年1,何文德1,刘光灿2(1.长沙学院计算机系,湖南长沙410003;2.北京理工大学光电工程系,北京100081)摘󰀁要:分析了基于AT89S51单片机的角度测量的硬件组成、电路设计原理.给出了主函数的工作流程和源代码.设计样机已通过多种环境实验的测试.关键词:单片机;AT89S51;角度测量;C51中图分类号:TP302.7󰀁󰀁󰀁󰀁文献标识码:ADesignofAngleMeasuringDeviceBasedonMonolithicMicroprocessorYANGFeng󰀁nian1,HEWen󰀁de1,LIUGuang󰀁can2(1.DepartmentofComputerScienceandTechnology,ChangshaUniversity,Changsha410003,China;2.DepartmentofOpticalEngineering,BeijingInstituteofTechnology,Beijing100081,China)󰀁󰀁Abstract:ThehardwarestructureandprinciplesofthecircuitdesignoftheanglemeasuringdevicebasedonAT89S51areanalyzed.TheflowchartandsourcecodeofthemainfunctiononC51areprovid󰀁ed.Thesampleshaspassedmanyenvironmenttests.Keywords:monolithicmicroprocessor;AT89S51;anglemeasuring;C51󰀁󰀁角度测量仪是某控制系统中瞄准装置的关键部件.在以往的控制系统中,多数都是仅凭设备操作人员眼睛瞄准指定目标,然后作出相应的控制,这样就带来一系列问题,如操作人员的经验、瞄准装置转盘的空回都可能会严重会影响瞄准目标的精确程度,从而严重影响控制系统的精度.为了提高控制系统的瞄准精度,在控制系统的瞄准装置中增加了角度测量仪部件,操作人员瞄准目标后的角度值能够精确定量地显示在操作面板上,帮助操作人员更加准确地瞄准目标,因此,极大地提高了控制系统的控制精确度.角度测量仪利用光电编码器读取角度值,采用AT89S51单片机实现角度值数码显示、角度值偏差范围的发光二极管指示功能(有三个指示灯,分别指示:偏高、偏低、适中).不论在操作的复杂程度上还是在测量的精度上,都是传统的眼瞄方法、刻度测量及标识方法无法比拟的.作为某控制系统的瞄准装置的重要技术改进,此仪器的应用大大提高了控制系统瞄准的精度,增加瞄准偏差范围的可读性,淘汰了传统的用刻度测量和标识角度的方法,使该控制系统的整体性能得到了显著提高.此外,该角度测量仪只要稍作改动即可广泛用于其它工业控制系统中.1󰀁硬件基本原理首先,角度测量仪利用单片机读取光电编码器测出的角度值,再将角度值转换成密位值并显示在数码屏上(注意:密位(mil)是一种角度单位,密位100=角度6󰀁).单片机判断当前角度值的偏差范围,给出控制信号点亮相应的发光二极管指示灯.此外,角度测量仪还可以通过控制面板上的开关控制实现瞄准镜照明和低温环境下瞄准镜自动除霜功能.单片机的主要功能是实现角度值数码管显示、角度值范围的发光二极管指示.该系统的难点在于确保角度值转换成密位值收稿日期:2005-01-24作者简介:杨凤年(1966-),女,工学硕士,高级工程师,研究方向为计算机系统结构和嵌入式系统.第20卷第2期2005年4月󰀁󰀁󰀁󰀁󰀁󰀁󰀁光电技术应用ELECTRO-OPTICTECHNOLOGYAPPLICATION󰀁󰀁󰀁󰀁󰀁󰀁󰀁Vol.20,No.2󰀁April.2005

图1󰀁电路模块图的转换精度和系统在非常温环境下的工作可靠性.硬件分为以下几个模块:控制面板、单片机、光电编码器、电源、数码显示器、发光二极管匹配指示装置、周视镜与直瞄镜照明与除霜,如图1所示.1.1󰀁单片机的选用首先,根据项目的需求分析可以得知单片机要完成的主要功能是:从光电编码器(数据总线宽度是15位)读取角度值后,将该角度值与系统预设的角度值比较,判断瞄准的角度值范围,点亮相应的指示灯.然后将从光电编码器读得的角度值转换成密位值,发送给串行LED显示驱动器MAX7219,显示在LED显示器上.从以上分析可以得知,适合此需求的单片机至少应具备3个8位并行I/O端口(其中光电编码器占用2个端口,其它占用1个端口),才能有效工作.众所周知,产品的品质等级通常分为三级:军用级、工业级和商用级,其中,军用级等级最高,商用级等级最低.由于此工业控制设备通常在户外作业,工作环境比较恶劣,故单片机的品质的等级也是需要考虑的一个重要因素.目前,MCS-51系列单片机技术成熟,开发所用的教材和技术资料多,开发工具齐全,市场上产品种类丰富、性价比较高、购买容易,开发语言简单易学(可以用汇编或C51),因此,该系列产品应用广泛,经久不衰.经过综合考虑,单片机采用ATMEL公司生产的AT89S51芯片(MCS-51系列单片机的工业级产品),兼容MCS51微控制器,4K字节FLASH存贮器支持在系统编程(ISP)1000次擦写周期,128字节片内RAM,工作电压4.0V到5.5V,全静态时钟0Hz到33MHz,三级程序加密,4个8位的可编程I/O端口,2/3个16位定时/计数器,6/8个中断源,全双工UART,低功耗支持Idle和Powerdown模式,Powerdown模式支持中断唤醒,双数据指针,上电复位标志.ATMEL公司生产的89系列单片机在工业、交通、仪器仪表、自动生产过程、航空、运输、汽车、家电等领域都有着极及其广泛的应用.所选型号为ATMEL公司的AT89S51-24PI,工业级.能适应-45󰀁~+80󰀁环境工作.单片机的I/O端口资源分配是:P0和P2口分配给光电编码器,P1口分配给显示驱动和匹配指示发光二极管控制以及MAX813.1.2󰀁单片机主要外围电路的设计监控电路:为了提高单片机在恶劣环境下的可靠性,必须采用󰀁P监控电路来增加单片机的稳定性和抗干扰能力.硬件监控电路有以下功能:(1)上电复位:保障系统加电时能正确地启动.(2)掉电复位:当电源失效或电压降到某一电压值以下时,产生复位信号对系统进行复位.(3)看门狗定时器:当处理器遇干扰,程序运行混乱产生󰀁死锁󰀁时,对系统复位.此处采用MAXIM公司的军用级芯片MAX813LMJA.显示驱动电路:为了节省单片机I/O口资源,降低单片机的计算量,选用串行LED显示驱动器MAX7219.它能控制8位共阴级LED数码管,具有16级亮度控制、译码灵活,上电发光二极管全熄、只占用三根单片机I/O口线等优点.单片机及主要外围电路的原理如图2所示.

图2󰀁电路原理图1.3󰀁单片机与外围器件的数据通信单片机与光电编码器:因为光电编码器获得角度值的速度远大于单片机的工作速度,所以,单片机可以认为光电编码器上的数据总是处于61第2期󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁杨凤年等:基于单片机的角度测量仪的设计󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁准备好󰀁状态,单片机随时可以读取有效数据,16位的角度值分成高8位和低8位两次读取,它们之间的数据是并行无条件传送.单片机与MAX7219:从单片机和MAX7219的工作速度来看,CPU两次发送数据给MAX7219的时间间隔,足以保证单片机访问MAX7219时,MAX7219总是处于󰀁准备好󰀁状态.而MAX7219又是串行LED显示驱动器,因此,单片机与MAX7219的数据传送是串行无条件传送.单片机与MAX813:因为单片机向MAX813发送数据时,MAX813只等待接收单片机的初始化数据而并无其它的工作其工作速度足够快,可以认为MAX813总是处于󰀁准备好󰀁状态.因此,单片机与MAX813的数据传送也是串行无条件传送.2󰀁软件设计原理角度测量仪启动工作后,单片机的工作过程是:系统启动后,初始化外部看门狗,初始化显示驱动芯片MAX7219,给看门狗计数器赋初值,读取光电编码器获取的角度值,当角度偏差值处在某一特定范围时,单片机发出控制信号点亮与该范围相对应的指示灯,将当前的角度值转换成密位值显示在数码屏,又重新给看门狗计数器赋初值,进入下一个工作循环.主函数的工作流程如图3所示.

图3󰀁主函数流程图󰀁󰀁请注意,流程图中,带双线边的矩形框表示该部分为函数.在本课题的软件设计中,采用了C51编程语言,因为用C51编程不仅效率高,而且可读性很强.下面给出主函数的源代码.voidmain(void){WDI=0;󰀁󰀁󰀁󰀁󰀁//初始化看门狗InitMax7219();//初始化MAX7219的函数while(1){WDI=1;󰀁󰀁󰀁󰀁󰀁//󰀁喂狗󰀁WDI=0;//󰀁喂狗󰀁GetAngle();//读角度值的函数MachView();//指示灯匹配显示的函数GetMil();//计算密位值的函数DisplayMil();//显示密位的函数}}在主函数调用的几个函数中,InitMax7219()的功能是初始化LED显示驱动器MAX7219,单片机向MAX7219发送消影控制、亮度、扫描范围、译码方式信息.GetAngle()的功能是从光电编码器读角度值,先读高8位,再读低8位,然后将高8位和低8位合并,最后舍去最低位(光电编码器的有效数据是15位).MachView()的功能是角度偏差指示灯匹配显示,将该角度值与系统预设的角度值比较,判断瞄准的角度值是偏高、偏低还是适中.如果角度值偏高,那么单片机就发出控制命令,使偏高指示灯亮,如果偏低,则令偏低指示灯亮,否则令适中指示灯亮.值得注意的是,计算密位值的函数GetMil()的代码编写,要考虑角度的转换精度,在本课题中,采用了C51中的long型变量来分别存放密位的整数和小数部分,并将角度的小数部分放大十万倍后参加运算,保证转换精度.DisplayMil()的功能是驱动MAX7219显示密位.首先显示密位,判断此角度是否进入预设区,如果是,熄灭符号灯,各位显示󰀁0󰀁;如果没有,判断角度值是否为负,如果是,显示负号,如果是正,不显示负号,然后将角度值显示在LED显示屏上.62󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁光󰀁电󰀁技󰀁术󰀁应󰀁用󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁第20卷由于篇幅所限,程序的源代码没有给出.3󰀁结束语为了使角度测量仪能在各种可能的恶劣环境下(如高温、低温、振动等环境)正常工作,在整个设计过程中,要着重考虑的问题是硬件的可靠性和软件的可靠性.设计时的注意事项如下:(1)电源芯片的额定功率选择要留有余量.(2)元器件选择工业级或军用级产品.(3)采用硬件看门狗方案,防止单片机程序锁死.本课题设计的样机已处于测试阶段,目前已通过了常温和多种环境试验的测试.参󰀁考󰀁文󰀁献1󰀁胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2002.231-2402󰀁徐爱钧,彭秀华.单片机高级语言C51Windows环境编程与应用[M].北京:电子工业出版社,20013󰀁AtmelCorporation.8-bitMicrocontrollerWith4KBytesIn-SystemProgrammableFlash[M],AtmelCorporation,20014󰀁GettingStartedandGreatingApplicationsUser󰀁sGui󰀁de[M].KeilElektronikGmbH.andKeilSoftware,Inc,20005󰀁C51CompilerUser󰀁sGuide[M].KeilElektronikGmbH.AndKeilSoftware,Inc,2000简讯:法国的Scorpio轻型红外探测器󰀁󰀁法国Sofradir公司投入市场的先进的高分辨率红外探测器Scorpio主要用于国土安全、军事及政府应用等领域。Scorpio探测器工作在中红外(3~5󰀁m),采用了获得专利的碲镉汞(MCT)技术,为640󰀁512像素阵列,其分辨率是现有320󰀁256像素阵列的四倍。MCT插入技术简化生产工艺并提高生产,使不利用锑化铟或其他工艺来生产更小型二极管和更为精密的低价光学设备与低温致冷器成为可能,同时还可以省略用来补偿低分辨率的微光栅扫描技术。可以将这种优点应用到结构更为紧凑、低价、重量不超过300的探测器(包括占现有系统重量一半的致冷器)上,使其自主性超过40%。此外,还可以利用它来提高灵敏度、图像质量和距离,使现有的中等分辨率探测器升级,成为高分辨率探测器。Scorpio的体积与现有标准设备相似,可全部兼容现有标准设备,这样只要在安装中稍加改动就可以将其与现有的320󰀁256像素探测器互换。该项新技术由位于Grenoble的法国国家实验室开发。探索低成本、高性能探测器主要是受防御和国土安全方面巨大的价格压力的驱使。主要的应用包括战术和中、高度长航时无人飞行器(UAV)和卫星。对于这类平台,重量是要受到严格限制;直升机作战使用,特别是全天候应用。对此,成本是至关重要的;或夜视镜,战争自主性是主要考虑的内容。MCT的另一个主要优点是可以在高温条件下工作。这对于系统升级是十分有益的,例如,提高平均无故障工作时间(MTBF)。对IR导弹寻的器的升级同样有益,它可以使寻的器较早开机并且在高温条件下长时间连续工作。该技术还可以应用到Scalp/StormShadow巡航导弹升级或未来侦查/导航Flir吊舱中。Scorpio最新的应用可能是安装在轻型直升机上的转台IR摄像仪或手持式成像仪。Thales/Sagem分别拥有40%的Sofradir,其余的部分属于法国工业控制的CEA公司。2004年6月上旬公司透露公司Thales已经选择Scorpio作为升级灵巧陀螺稳定光电转台的新装置,装备UAV、直升机、侦察机和海军以及用于保卫国土安全。转台直径12英寸、重20kg,是现有转台重量的一半。Thales计划在未来的一年交付40套Scorpio。此外,Thales还指定Scorpio用于SophieXR,它是Sophie手持式成像摄像仪的远距离多功能升级型号。该摄像仪重2.5kg,用于维和、侦察和国土安全,计划明年开始。Scorpio还可以用于自卫,可以用来升级Thales大型EOD摄像机,目前接近生产尾声。Thales希望通过降低价格,增加市场对该产品的需求。目前,该公司每年销售几十套灵巧转台和近1000套Scorpio摄像机。另一项应用将可能是利用Scorpio技术升级Sagem的Iris摄像机。(王浩提供)63第2期󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁杨凤年等:基于单片机的角度测量仪的设计󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁󰀁