基于8086内核的直流电动机的位置测量与控制系统设计

点赞:7807 浏览:24845 近期更新时间:2024-03-12 作者:网友分享原创网站原创

摘 要:直流电动机的位置测量与控制系统的设计是微机接口一个重要的实践课题,本文讲述是该系统的一种详细设计方案.该系统采用8086控制电机,实现直流电动机的位置闭环自动控制,将测量值以十进制数的形式显示在实验仪的数码管上,单位为毫米,控制误差很小.

关 键 词 :8086;微机接口;直流电机;位置控制;AD转换

中图分类号:TM33 文献标识码:A 文章编号:1674-7712 (2014) 12-0000-01

《微型计算机原理与接口技术》课程是自动化类专业必学的一门课程,而8086也是必须了解学习的一块芯片.本系统就是采用8086芯片进行直流电动机的位置测量与控制,让读者对微机系统有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法.

一、总体设计

首先应用A/D0809转换器采集位置传感器(即电位计)所输出的电压,得到当前位置采样值,把位置值存入固定的内存单元.通过键盘或者按键输入一个目标值,存入相应的内存单元,并通过六个七段显示译码管来输出这两个值.之后进行比较实际值与目标值的大小关系,再应用D/A0832转换器的输出电压控制电机运转和方向.返回采样继续与目标值比较,然后驱动电机,通过这种循环控制直到采样值即实际位置值与目标值一致时停止电机转动.采集的数字量考虑到误差以及位置的变化,要进行滤波,输入目标值可以采用键盘输入法,或者按键输入法,鉴于以前键盘接触的较少,所以采用8255a加按键开关的方式来进行输入,在设计中用二次检测法防抖动.为方便输入及数码管的显示,把个十百三位分开存储,然后转化成一个16进制数与实际值进行比较.为方便观察,把位置值及目标值用6位七段显示数码管显示,前三位为位置值,后三位为目标值单位为毫米,采用8155a控制.最后是电机的控制,用D/A0832转换器的输出电压控制,如果反馈位置信号小于目标值,则控制电机正转,反之,控制电机反转,当两者差小于1cm时降低转速,在最终电机停止时可以防止电机的抖动.最后进行检测是否进行目标值的输入,运行状态是否正常,然后返回实现闭环控制.闭环控制如下:


图1 直流电机闭环控制框图

二、硬件设计

硬件电路按功能主要分为5大模块,AD转换检测模块、0832控制模块、8155-数码管显示模块、8255检测-输入模块、DVCC DJ4电机平台.D转换的检测模块的核心是ADC0809芯片.要使用0809,首先要给他一个start的信号,就是在程序中在该地址先输出一个0使其开始转换,延时之后从数据口读入AD转化之后的数据.电位器和A/D转换器结合起来,构成位置测量装置.当直流电机运转时,带动电位器输出值模拟量,通过A/D转换采集数据.电位器输出模拟量与指针位置成近似线性关系,采集的数字量表示指针所指示的位置.

0832DA控制模块是将8086输出的数字信号转化成模拟信号,进行电机控制的,它的核心就是0832芯片.0832D/A转换输出的电压值0V―2.5V―5V分别对应于直流电机的反转最高速―停止―正转最高速,在编程时对应数字80H~0C0H~0FF.

使用8155作6位LED显示器的接口电路对多位LED显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环地点亮各位显示器.这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样.

三、软件设计

软件功能设计部分采用汇编语言,为了方便调试,在主程序部分,把所有的功能写成了调用子程序,为后续系统升级扩展提供了便利.

采样程序本来只是一个普普通通的AD采样,但是因为采样信号存在误差且变化较大,所以加入了滤波环节.进行冒泡排序通过去掉最大最小的值,提高采样的精度.

比较控制子程序是从内存中取出实测值和目标值进行比较,然后判断电机的转向及速度.设置两段速度,若距离目标值<10mm则慢速前进.

图2 程序流程框图

四、结束语

经实验调试后,直流电机的位置测量精度较高,偶尔末位有1mm的误差,会产生闪烁,定位功能的精度也比较高,一般会有1mm的误差.本系统是一个十分成功的设计实例,希望读者能有所收获学到一些微型计算机应用方面的实际工作能力.