历史上的今天
返回首页

历史上的今天

今天是:2025年04月10日(星期四)

正在发生

2018年04月10日 | 基于单片机的角度测量仪的设计方法

2018-04-10 来源:eefocus

角度测量仪是某控制系统中瞄准装置的关键部件。在以往的控制系统中,多数都是仅凭设备操作人员眼睛瞄准指定目标,然后作出相应的控制,这样就带来一系列问题,如操作人员的经验、瞄准装置转盘的空回都可能会严重会影响瞄准目标的精确程度,从而严重影响控制系统的精度。为了提高控制系统的瞄准精度,在控制系统的瞄准装置中增加了角度测量仪部件,操作人员瞄准目标后的角度值能够精确定量地显示在操作面板上,帮助操作人员更加准确地瞄准目标,因此,极大地提高了控制系统的控制精确度。

 

角度测量仪利用光电编码器读取角度值,采用AT89S51 单片机实现角度值数码显示、角度值偏差范围的发光二极管指示功能(有三个指示灯,分别指示:偏高、偏低、适中)。不论在操作的复杂程度上还是在测量的精度上,都是传统的眼瞄方法、刻度测量及标识方法无法比拟的。


作为某控制系统的瞄准装置的重要技术改进,此仪器的应用大大提高了控制系统瞄准的精度,增加瞄准偏差范围的可读性,淘汰了传统的用刻度测量和标识角度的方法,使该控制系统的整体性能得到了显着提高。此外,该角度测量仪只要稍作改动即可广泛用于其它工业控制系统中。


1  硬件基本原理


首先,角度测量仪利用单片机读取光电编码器测出的角度值,再将角度值转换成密位值并显示在数码屏上(注意: 密位(mil) 是一种角度单位,密位100 = 角度6°)。单片机判断当前角度值的偏差范围,给出控制信号点亮相应的发光二极管指示灯。此外,角度测量仪还可以通过控制面板上的开关控制实现瞄准镜照明和低温环境下瞄准镜自动除霜功能。单片机的主要功能是实现角度值数码管显示、角度值范围的发光二极管指示。该系统的难点在于确保角度值转换成密位值的转换精度和系统在非常温环境下的工作可靠性。


硬件分为以下几个模块:控制面板、单片机、光电编码器、电源、数码显示器、发光二极管匹配指示装置、周视镜与直瞄镜照明与除霜,如图1所示。

图1  电路模块图

图1  电路模块图


1. 1  单片机的选用


首先,根据项目的需求分析可以得知单片机要完成的主要功能是:从光电编码器(数据总线宽度是15 位) 读取角度值后,将该角度值与系统预设的角度值比较,判断瞄准的角度值范围,点亮相应的指示灯。然后将从光电编码器读得的角度值转换成密位值,发送给串行L ED 显示驱动器MAX7219,显示在L ED 显示器上。


从以上分析可以得知,适合此需求的单片机至少应具备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 所示。

图2  电路原理图

图2  电路原理图



1. 3  单片机与外围器件的数据通信


单片机与光电编码器:因为光电编码器获得角度值的速度远大于单片机的工作速度,所以,单片机可以认为光电编码器上的数据总是处于"准备好"状态,单片机随时可以读取有效数据,16 位的角度值分成高8 位和低8 位两次读取,它们之间的数据是并行无条件传送。

 

单片机与MAX7219 :从单片机和MAX7219的工作速度来看,CPU 两次发送数据给MAX7219 的时间间隔,足以保证单片机访问MAX7219 时,MAX7219 总是处于"准备好"状态。而MAX7219 又是串行L ED 显示驱动器,因此,单片机与MAX7219 的数据传送是串行无条件传送。


单片机与MAX813 :因为单片机向MAX813发送数据时,MAX813 只等待接收单片机的初始化数据而并无其它的工作其工作速度足够快,可以认为MAX813 总是处于"准备好"状态。因此,单片机与MAX813 的数据传送也是串行无条件传送。


2  软件设计原理


角度测量仪启动工作后,单片机的工作过程是:系统启动后,初始化外部看门狗,初始化显示驱动芯片MAX7219 ,给看门狗计数器赋初值,读取光电编码器获取的角度值,当角度偏差值处在某一特定范围时,单片机发出控制信号点亮与该范围相对应的指示灯,将当前的角度值转换成密位值显示在数码屏,又重新给看门狗计数器赋初值,进入下一个工作循环。主函数的工作流程如图3 所示。

   

图3  主函数流程图

图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) 采用硬件看门狗方案,防止单片机程序锁死。本课题设计的样机已处于测试阶段,目前已通过了常温和多种环境试验的测试。


推荐阅读

史海拾趣

Global Power Technology Co., Ltd公司的发展小趣事
冰箱噪音大可能是由于压缩机运转声音、风扇转动声音或冰箱摆放不平稳等原因造成的。首先检查冰箱是否摆放平稳,如不平稳需调整冰箱底部螺丝使其平稳;若冰箱摆放平稳但噪音仍大,可能是压缩机或风扇故障,需联系专业维修人员检查并维修。
恒连电子(EVERCOM)公司的发展小趣事

恒连电子注重企业文化建设和团队建设,为员工创造了一个良好的工作环境和发展平台。公司倡导“以人为本”的管理理念,关注员工的成长和发展,为员工提供丰富的培训和学习机会。同时,公司还建立了完善的激励机制和福利制度,激发员工的工作积极性和创造力。在团队建设方面,公司注重团队协作和沟通能力的培养,鼓励员工相互学习、共同进步。通过优秀的团队建设和企业文化建设,恒连电子打造了一支高效、专业、团结的队伍,为公司的发展提供了有力的人才保障。

意华(CZT)公司的发展小趣事

自1995年成立以来,意华(CZT)始终秉持“诚信”的合作态度和“创新”的发展思路。在公司初创阶段,面对激烈的市场竞争,意华坚持高质量的产品和服务,赢得了客户的信赖。同时,公司不断投入研发,推出了一系列具有创新性的电子产品和连接器,迅速在市场上树立了良好的口碑。

德芯半导体(Doeshare)公司的发展小趣事

作为一家有社会责任感的企业,德芯半导体始终关注社会发展和环境保护。公司积极参与社会公益活动,为当地社区提供力所能及的帮助和支持。同时,公司还注重环保和可持续发展,通过采用环保材料和工艺、推广绿色产品等方式,为保护环境贡献自己的力量。这些举措不仅增强了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,以上故事框架是基于对德芯半导体公司的有限了解而构建的,并非真实事件的具体描述。如需更详细和准确的信息,请参考公司官方发布的相关资料或进行深入研究。

Enovation Controls LLC公司的发展小趣事

德芯半导体在发展过程中,积极拓展合作伙伴关系。公司与国内外多家知名企业建立了长期稳定的合作关系,共同开展技术研发和市场推广。这些合作伙伴不仅为公司提供了技术支持和市场渠道,还为公司带来了更多的商业机会和发展空间。通过与合作伙伴的紧密合作,德芯半导体在半导体行业中树立了良好的口碑和形象。

DMC Tools公司的发展小趣事

在发展过程中,DMC Tools公司积极寻求国际合作,与多家国际知名电子企业建立了长期稳定的合作关系。通过与这些企业的合作,DMC Tools公司不仅学习到了先进的生产技术和管理经验,还拓宽了自己的市场视野。这些国际合作项目为公司带来了大量的订单和利润,同时也提升了公司的国际竞争力。

问答坊 | AI 解惑

fpga与arm9之间的通讯!

fpga与arm9之间的通讯,具体方法有那些,希望搞过的朋友能指点下!谢谢!…

查看全部问答>

碱性电池充电器!拍砖?

这是一个碱性电池充电器电路(新设计),希望拍砖斧正!!…

查看全部问答>

Windows CENET实时性能测试与分析.pdf

Windows CENET实时性能测试与分析.pdf…

查看全部问答>

如何从 rtl code 生成 工艺库无关的netlist?

在学习modelsim 仿真和 synopsys 综合, 通常在synopsys里面我们可以用 如下设置生成netlist set SYNOPSYS_LIB /usr/synopsys/libraries/syn set target_library \"$SYNOPSYS_LIB/lsi_10k.db\" set link_library \"$SYNOPSYS_LIB/gtech.db $SYNOP ...…

查看全部问答>

zxld1350

zxld1350芯片做1W LED驱动,带四个LED,用PWM调剂电压0--5V,当1350的输入电压超过16V时,LED灯会闪烁,而且恒流远远不到350毫安!而芯片提供的参数是可以到30V,缘何?电路接法和芯片提供的接法一样,小电阻是0.3欧!…

查看全部问答>

情景模式

在window mobile中任务栏中的情景模式(声音打开,关闭,振动),则么去控制它们,我在注册表中改变相应的值,但任务栏上的图标却没有改变。为什么?有谁知道的?请提供一些帮助吧?谢谢了。…

查看全部问答>

请教一个SIM3OO 的问题

430单片机与SIM300模块做的保护器,用短信控制设备,现在有个问题,当保护器断电后开机设备就不执行命令,但人工复位后又恢复命令了,请问这是什么问题…

查看全部问答>

AX5051无线模块与SI4432模块及芯片对比

单从AX5051与SI4432以下芯片基本参数对比分析(见图片),实际用两个芯片把模块RF参数调到芯片差不多,需要在硬件的匹配方面都要做精细的调节;另外,传输距离还与数据率、天线及使用环境的关系很大。我们对这两个模块距离都有测试过,在同样的条件 ...…

查看全部问答>

红色、绿色识别

请教有什么传感器可以辨别出红色和绿色物体,在10cm范围内。。。…

查看全部问答>