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

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


关键字:单片机  角度测量仪 引用地址:基于单片机的角度测量仪的设计方法

上一篇:基于STC89C52单片机原理的实验室智能控制系统研究
下一篇:MCS51系列单片机软件复位方法介绍

推荐阅读最新更新时间:2024-03-16 15:59

TI全新Sitara™ AM2x系列重新定义MCU,处理能力提高10倍
TI全新Sitara™ AM2x系列重新定义MCU,处理能力相比现有器件提高10倍 TI Sitara™ AM2x MCU将处理器级的计算性能与MCU的简易设计合二为一,帮助工程师实现实时控制、智能分析和网络应用 北京(2021年7月13日)– 德州仪器 (TI) 今日推出全新高性能微控制器 (MCU) 产品系列,推动了边缘端的实时控制、网络互联和智能分析。凭借全新的Sitara AM2x系列MCU,工程师可以使用10倍于以前基于闪存MCU的运算能力。高性能AM2x系列缩小了MCU和处理器之间日益增加的性能差距,使设计人员能够在工厂自动化、机器人、汽车系统和可持续能源管理等应用领域突破性能限制。 “人们对工业自动
[嵌入式]
TI全新Sitara™ AM2x系列重新定义<font color='red'>MCU</font>,处理能力提高10倍
单片机10秒倒计时c语言汇编语言程序
(2)数码管动态显示(循环显示0~9,时间间隔为1秒,1秒的时间间隔用定时器T0实现) ①汇编语言: ORG 0000H AJMP MAIN ORG 000BH AJMP INTT0 ORG 0030H MAIN:CLR P2.7 MOV DPTR,#TAB CLR A MOV R2,#0H MOV R3,#0H MOV TMOD,#01H MOV TH0,#4CH MOV TL0,#00H SETB EA SETB ET0 SETB TR0 HERE: CJNE R2,#14H,HERE MOV R2,#0H PUSH ACC MOVC A,@A+DPT
[单片机]
单片机设计经验技巧精华集锦(二)
3 发条和秒表和继电器组成的控制器   在电气时代开始时,人们用钟表内机械的旋转分时控制一些继电器的通断,从而控制一些机床和生产线的运行。这种装置类似于早期洗衣机内的定时器。      三 入门首选 AT89S51系列单片机   1 简介   1980,英特尔公司开发出一种简易的8031CPU,在当时该CPU性能不比8086差很多,但价格较便宜,因此被很多低端应用选中。由于市场看好,ATMEL公司购买了8031的内核,把Flash存储器和加强型IO口融入进去开发出了AT89系列单片机。所有兼容8031指令和内核相似的单片机统称为51单片机,它是目前应用最广泛的8位单片机之一。因51单片机结构简单,指令易学,应用广泛,因此是初
[模拟电子]
<font color='red'>单片机</font>设计经验技巧精华集锦(二)
以MSP430单片机为核心的电力传输线路监测系统设计
引言 为解决人工调整电力传输线路中偏相观测难、记录难、校准难这三大难题。该设计通过对软硬件的设计,实现了较长时间、无间断地对电力传输线路中电流、电压、零序电流、功率因数、有功功率、无功功率、视在功率、基波及谐波电能的监测、记录和存储。该设计采用MSP430F135 单片机为控制核心,结合电压、电流互感器、DSP 电能芯片、人机接口、声光报警电路和信号处理电路等实现对电力传输线路参数的监测,该系统能利用存放在U 盘中长时间采集的数据在上位机进行曲线分析,为电力部门调整线路负荷提供科学、可靠的依据。 1 系统设计方案 1.1 DSP 电能芯片的选择 该设计选用DSP 电能芯片,此芯片具有七路二阶16 位sigma-delta AD
[单片机]
以MSP430<font color='red'>单片机</font>为核心的电力传输线路监测系统设计
stm32单片机红外遥控超声波避障小车
和同学一起在学校参加院电子设计大赛做的项目,看起来时间很长,但实际上我们拢共做的时间差不多是3天的样子。 板子是正点的,所以很多地方我们就直接扒的正点的例程,比如红外遥控的部分完整拿过来了,能直接用。 我们在完成学校的要求后又多加了测距显示和差速调节(让小车可以从完全停止到最高速度),后面我会分块尽量详细叙述小车的功能原理及代码介绍。 视频演示 https://www.bilibili.com/video/av85501350/ 电源 我们采用的是三节18650供电,三节电池就有12v,用来驱动小车绰绰有余,为了获得更稳定符合小车需求的电压,我们又采用了一个LM2596S降压模块,把12V的电压给降到3v给单片
[单片机]
单片机控制的电压和无功功率综合自控系统
1 概述     目前,国内35KV以上的变电站,广泛采用有载调压变压器,并配置适当容量的并联电容器组,以实现变电站电压调整和功率潮流的平衡。但是这些设备如不采取合理的自动控制手段,单靠运行人员手动操作,显然不能充分发挥其应有的作用。本文研究的目的在于利用单片机的计算、判断与记忆等智能,实现系统在线负荷预测并进行控制决策,自动综合调整有载调压变压器分接头和电容器投切开关,以提高电压质量和经济运行。 2 工程控制算法   在考虑具有有载调压变压器和并联无功补偿电容器组两种调压方法时,组合调压的效果为矩阵方程   式(2—1)中,ΔKn、ΔQc分别为变压器变化调整量和并联补偿电容器的调整量,ΔU、ΔQ表示系统电压和无功功率的
[单片机]
<font color='red'>单片机</font>控制的电压和无功功率综合自控系统
基于PIC单片机的数字式智能铅酸电池充电器的设计
  0 引言   铅酸蓄电池由于其成本低、容量大、安全可靠等特点,在通信、电动汽车、军事、航空航天等各个领域都有广泛的应用。电池的性能好坏、使用寿命的长短直接影响到电子产品的使用寿命和使用安全;而充电器的好坏又直接影响到电池的使用寿命。因此研究低成本又有智能管理功能的充电器是有实际应用价值的课题。   1 目前智能充电器的几种结构[1]   1.1 基于专用芯片的管理系统   现在,UNITRODE 公司已开发出系列电池管理专用芯片。因为电池管理中采用最多的就是控制充电电压及充放电电流,电池管理芯片正是抓住了这一点,为VRLA 电池研制了具有四状态管理的专用控制芯片,可以智能地实现带温度补偿的四状态管理方案:涓流充电模式、
[单片机]
基于PIC<font color='red'>单片机</font>的数字式智能铅酸电池充电器的设计
采用C8051F单片机实现半导体激光器驱动电源的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
采用C8051F<font color='red'>单片机</font>实现半导体激光器驱动电源的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved