基于PIC16F877A的高精度测速系统设计.doc_第1页
基于PIC16F877A的高精度测速系统设计.doc_第2页
基于PIC16F877A的高精度测速系统设计.doc_第3页
基于PIC16F877A的高精度测速系统设计.doc_第4页
基于PIC16F877A的高精度测速系统设计.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于PIC单片机的高精度电机测速系统设计张文明,柏久阳, 鞠洪涛(沈阳大学 机械工程学院 辽宁 沈阳 110044)摘要:随着自动化焊接技术的广泛应用,对执行机构的速度控制要求也越来越高。本文设计了一种新型的基于PIC单片机的电机测速系统,其利用单片机的电平变化中断功能,对编码器的脉冲输出进行准确计数,用 LCD显示电机的转向和转速。并且本设计预留反馈模块接口,使其可作为焊接自动送丝机构反馈系统的一个模块使用。关键词: PIC单片机;编码器;LCD中国分类号: 文献标志码:High-precision Motor Speed-measuring System Design Based on PIC MicrochipZhang Wen-ming, Bai Jiu-yang, JU Hong-tao(College of Mechanical Engineering,Shenyang University,Shenyang 110044,China)Abstract: With the extensive application of automated welding technology, the requirem of speed control s have become more sophisticated. This paper presents a new type of speed-measuring system, using the microchip”s interrupt level changes, to compare and count the output of pluse, diaplay the motor speed through the LCD. And the feedback module interface design aside, it could be used as automatic welding wire feeding system, a feedback module.Keywords: PIC Microchip; photoelectric rotary encoder; LCD引言转速是物体机械运动的重要参数1。电机转速的及时和准确获知,对于焊接过程的高效控制有重要的作用。目前,比较常见的高精度电机测速方法多需要基于昂贵的硬件(如高精度编码器),但其价格昂贵很难大范围推广。本设计是使用PIC16F877A单片机, LCD1602,对BG5Z型光电编码器的输出脉冲进行准确计数和定时,实现了精确的电机测速。1 PIC16F877A单片机1.1 电平跳变中断功能当PIC16F877A正在运行程序时,会随机地出现端口B高四位电平的跳跃变化,此时CPU需要暂时停止当前的程序,转去执行处理某段特定程序,待这段程序执行完毕之后,再运行原先的程序。1.2 电平变化中断相关寄存器(1) 选项寄存器(OPTION_REG) 0: Bit0/ INT 引脚上的上升沿触发 1: Bit0/ INT 引脚上的下降沿触发(2) 中断选项寄存器(INTCON). 0: Bit4- Bit7 未发生电平变化 1: Bit4- Bit7 已发生电平变化,系统置位(3) 计数启/停控制位(Bit0/TMR1ON) 0:TMR1 停止计数;1:TMR1 启用计数;2 BG5Z型增量式光电编码器光电编码器是机械运动控制中测量转动物体位置与速度的传感器。BG5Z型增量式光电编码器有单通道脉冲输出,双通道脉冲输出(输出相位差90度),三通道脉冲输出(每一圈产生一个零位脉冲)。可根据需要提供一组到四组输出,还可以提供每转一到两个的零位脉冲。脉冲输出如图1。 图1 脉冲输出6种波形 Fig.1 output of 6 pulse其外型为八芯电缆结构,具体为接线白-0V,棕-+,绿-A,灰-B,黄-负A,粉红-负B,蓝-Z,红-负Z。3 LCD显示和KS0066U控制器 LCD液晶显示器的基本结构是由两片玻璃组成的很薄的盒子,工作电压3-5V,每平方厘米液晶显示屏工作电流只有几个毫安3。KS0066U是专门用于显示数字,字母,图形符号及少量自定义符号的显示器。KS0066U把LCD控制器,点阵驱动器,字符存储全做在一块印刷板上,构成便于应用的液晶显示。KS0066U指令集如表1。表1 KS0066U指令集 lis. 1 KS0066U Instruction Set指令名称控制信号指令代码功能RSRWD7- - -D0清屏000 0 0 0 0 0 0 1清屏归位000 0 0 0 0 0 1 *光标回到原始位置上显示开关控制000 0 0 0 1 显示 闪烁 开关设显示,光标,闪烁开关功能设置000 0 1 位 行 点阵 * *初始化写数据10数据数据写入4基于PIC单片机的高精度电机测速系统设计4.1 系统的硬件选择和设计 图2 硬件设计 Fig.2 hardware design 本设计的硬件部分采用了模块化的设计:包括控制模块,编码器模块,显示模块和反馈模块。硬件的选择包括PIC16F877A,BG5Z型光电编码器,KS0066U型控制器,20MHZ晶振等。硬件设计如图2。4.4 主函数在主程序的编写过程中需注意全局变量和局部变量的关系,全局变量越多占用的资源越多,影响CPU的执行效率。但是局部变量在某些地方使用起来会出现问题,需要注意两者的兼顾。主函数如图3。 图3主函数框图4.1 电机转动方向判定函数 本设计采用双通道脉冲输出如图4所示,对相位差为90度的AB的脉冲进行进行持续的状态度取。电机顺时针转动时AB时序为:11、 01、 00、 10循环;电机逆时针转动AB时序为:11、 10、 00、 01循环。 a顺时针转动相位图 b逆时针转动相位图 图4顺时针、逆时针转动相位图进行电机转动方向的判定时,首先捕捉状态为11的AB,然后判断下一时序的状态。若下一状态AB为01,则电机顺时针转动;若下一状态AB为10,则电机逆时针转动。 电机转动方向判定程序框图如图5所示。图5 转动方向判定函数框图4.2 高低速判定函数和速度计算函数本设计采用了变M/T法,通过同时测量脉冲个数和时间间隔,来求得转数。通过PIC单片机的端口B电平跳变中断功能,对编码器的脉冲输出进行测量;同时运用定时器/计数器对时间进行测量如图6。当转数0 r/minN10 r/min时,取采样时间T0=40ms。当转数10N600 r/min时,取采样时间T0=20ms。当60 r/minN6000 r/min时,取采样时间T0=10ms。M为T0周期内脉冲个数,K为码盘光栅数,N为电机转数,则电机转数计算公式为:N=M/KT0 图6 电机高低速判定函数框图4.3中断函数 中断函数是本设计的重要部分,本设计中有四种类型的中断形式,其关便键在于正确区分各种中断的形式,并且执行对应的语句如图7。 图7 中断函数框图5 反馈模块本设计采用灵活的信息输出模式,通过预留端口C,实现串并行可选择的信息输出。,当RE0为高电平时,实行串行通信;当RE0为低电平时,实行并行通讯。6 仿真结果仿真结果证明本设计能够实现高精度电机转数测量。仿真结果如表2。表2 仿真结果真实转数21060030006000测量转数21059929995999误差0099.8%99.9%99.9%结束语 高精度的转速测量与合理的制作价格是设计的关键。本设计测量精度高,在98以上%,采用低精度的编码器价格合理,并且不但可以测速和显示还可与其他套设备配合使用成为反馈设备中的一部分,应用广泛。1 郑华耀 检测技术M. 机械工业出版社,2004.72 李荣正 刘启中 陈学军 PIC单片机原理及应用M。北京航空航天大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论