1014604889机械课程设计旋转编码器的速度检测和精确定位_第1页
1014604889机械课程设计旋转编码器的速度检测和精确定位_第2页
1014604889机械课程设计旋转编码器的速度检测和精确定位_第3页
1014604889机械课程设计旋转编码器的速度检测和精确定位_第4页
1014604889机械课程设计旋转编码器的速度检测和精确定位_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计说明书题目: 旋转编码器的速度检测和精确定位 院 系: 机械工程学院 专业班级: 机设06-11 学 号: 200611836 学生姓名: 指导教师: 2009 年 12 月 10 日 安徽理工大学课程设计(论文)任务书 机械工程学院 院系 测控 教研室学 号200611836学生姓名周晋专业(班级)机设06-11设计题目旋转编码器的速度检测和精确定位设计技术参数旋转编码器:a,b相每转300个脉冲显示器:4位led显示器单片机晶振6mhz设计要求实现旋转编码器的实时速度监测实现实时位置的精确测量所需参数按需要显示出来工作量 注:可填写说明书(论文)的字数要求或要完成的图纸数量。工作计

2、划第一周:熟悉题目,学习单片机;第二周:学习软件protues及其操作;第三周:写单片机程序和作protues仿真电路图,并完成说明书。参考资料蔡美琴等 mcs-51系列单片机系统及其应用 2版北京:高等教育出版社,2008指导教师签字教研室主任签字 年 月 日 目录1,设计原理 . . . . . . . . . . . . . . . . . . . . . . . . .4 2、硬件电路设计. . . . . . . . . . . . . . . . . . . . . . .4-9 3、软件设计. . . . . . . . . . . . . . . . . . . . . . .

3、 .10-15一、 设计原理1, 系统设计的功能本设计实现的功能有:检测被测旋转体的速度;检测被测旋转体的实时角度位置;显示实时速度;显示实时角度位置;2, 系统的实现方法本设计采用单片机系统完成所需功能。即把旋转编码器的输出信号接到单片机,由单片机实现旋转编码器输出信号的处理并计算出速度和实时位置。采用七段led显示器显示计算多得的参数。二、 硬件电路设计 本系统的硬件组成为:80c51单片机最小系统一个、开关 一个、四位七段显示器一个、旋转编码器一个、电阻和三极管若干。 本系统的功能模块分为:单片机最小系统模块、旋转编码器信号输 入模块、速度显示中断模块、七段led显示模块。 1, 单片机

4、最小系统模块本系统采用的单片机为80c51其引脚图如下。 2 ,旋转编码器信号输入模块 旋转编码器是用来测量转速的装置,可将输出轴的角位移、角速度等机械量转换成相应的电脉冲以数字量输出(rep)。 工作原理: 由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成a、b、c、d,每个正弦波相差90度相位差(相对于一个周波为360度),将c、d信号反向,叠加在a、b两相上,可增强稳定信号;另每转输出一个z相脉冲以代表零位参考位。 由于a、b两相相差90度,可通过比较a相在前还是b相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位

5、。信号输出: 如单相联接,用于单方向计数,单方向测速。 a.b两相联接,用于正反向计数、判断正反向和测速。 a、b、z三相联接,用于带参考位修正的位置测量。 本系统采用a、b、z三相连接,测量转速和位置。实现电路图如下: 4,速度显示中断模块 本系统的参数是在需要时显示出来,我的设计是主程序循环显示实时速度,在节省硬件的情况下(即速度和位置参数不是同显示)可在需要时按下中断按钮触发中断程序来显示实时位置。mcs-51单片机中断系统的结构:5个中断源的符号、名称及产生的条件如下。int0:外部中断0,由p32端口线引入,低电平或下跳沿引起。int1:外部中断1,由p33端口线引入,低电平或下跳沿

6、引起。t0:定时器计数器0中断,由t0计满回零引起。t1:定时器计数器l中断,由t1计满回零引起。tiri:串行io中断,串行端口完成一帧字符发送接收起。因旋转编码器的信号输入占用了两个外部中断源,我采用定时器/计数器0扩展成外部中断源,即使定时器计数器工作在计数器模式,计数源来自外部,把计数器的初值设置为tl0=#0ffhth1=#0ffh,这样外部中断便会使计数器溢出中断。中断系统图示如下。5,七段led显示模块 显示原理为:首先显示一个数, 然后关掉.然后显示第二个数,又关掉, 那么将看到连续的数字显示,轮流点亮扫描过程中,每位显示器的点亮时间是极短暂的,由于人的视觉暂留现象及发光二极管

7、的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 6,硬件系统整体图 二、软件设计主程序流程图 a相中断流程图 开始初始化计算位置degree的个十百千位显示位置degree的个十百千位结束开始判断b相是否为高电平位置position加1总脉冲counter加1position减1结束否z相中断流程图开始绝对位置参数position置零结束定时刷新参数中断开始重新装载定时器定时0.1s根据0.1s的脉冲数计算转速把绝对脉冲转换为绝对角度绝对角度是否为负值角度加360结束否显示速度中断开始计算转速的个十百千位显示转速的个十百千

8、位i是否为100否结束系统的c语言程序如下:#include regx51.hunsigned char a,b,c,d;unsigned char code disaplay=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;long counter=0; /旋转编码器的脉冲long position=0; /旋转编码器的当前位置long degree=0; void main()tmod=0x06;th0=0xff;tl0=0xff;th1=(65536-1000)/256;tl1=(65536-1000)%256;ie=0x0f;ea =

9、 1; /开总中断r=0;while(1) /主程序循环显示位置 a=degree%10; /计算参数的个十百千位b=(degree/10)%10;c=(degree/100)%10;d=(degree/1000)%10;p2_3=0; /显示position值p0=diaplaya;p2_3=1;p2_2=0;p0=diaplayb;p2_2=1;p2_1=0;p0=diaplayc;p2_1=1;p2_0=0;p0=diaplayd;p2_0=1;void int0() interrupt 0 /a相中断if(p2_7) position+; /判断2_7为高则正向,为低则反向else p

10、osition-;counte+; /累计脉冲void int1() interrupt 1 /z相中断position=0; /使位置参数置零void t1_() interrupt 2 /定时0.1s刷新一次转速和角/度参数th0=(65536-1000)/256;tl0=(65536-1000)%256;r=600*counter/300; /假设编码器每转300个脉冲degree=1.2*position; /把脉冲数转换为角度数if(!degree) / 角度为负时加360度转为正degree+=360void t0_() interrupt 3 /计数器t0中断显示速度unsigned char ii=100;a=r%10;b=(r/10)%10;c=(r/100)%10;d=(r/1000)%10;while(i)/ 中断产生后循环100次显示一段时间p2_3=0;p0=diaplaya;p2_3=1;p2_2=0;p0=diaplay

温馨提示

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

评论

0/150

提交评论