ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:135.03KB ,
资源ID:10418814      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10418814.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(步进电机的控制与测速.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

步进电机的控制与测速.docx

1、步进电机的控制与测速步进电机的控制与测速 作者: 日期: 步进电机控制与测速 姓名:竹玉书 学号:02008513 指导老师:李超彪一、 实践环节任务与要求选题:步进电机控制与测速设备:可编程并行接口8255,可编程定时计数器8253,控制开关,步进电机,光耦合器要求:1.通过开关K0K6设置不同的转速,开关K7设置电机的转向。 2.利用定时器8253计数,测速。二、 实验原理1步进电机的控制原理:步进电机驱动原理是通过对每相线圈中的电流的顺序切换使电机作步进式旋转驱动电路由脉冲信号来控制,所以调节脉冲信号频率便可改变步进电机的转速。如图所示:本实验使用的步进电机用直流5V电压,电机线圈由四相

2、成:1(BA);2(BB);3(BC);4(BD)8253定时器0确定脉冲改变的频率(工作方式3,控制字00110110,CLK0=1MHZ,初值=200则OUT0输出周期为200s的脉冲),由8255(工作方式0,控制字 10001011)查询定时时间是否到,输出相应的脉冲,以实现转速控制。2.步进电机的测速原理:在电机转动时,光电传感器每转输出6个脉冲,8253的定时器1负责计数,以测速。设计程序当OUT0出现高电平则计数一次,当计数达到50000次则计算并显示一次速度。显示间隔时间=100s50000=5s三、 硬件接线图四、程序框图主函数:测速子函数:五、 源程序程序源代码如下:(含注

3、解) /*/* 步进电机 */*/#include #include #include ApiEx.h#pragma comment(lib,ApiEx.lib)#define 8255A 0x290#define 8255B 0x291#define 8255C 0x292#define 8255CTL 0x293#define 82530 0x280#define 82531 0x281#define 82532 0x282#define 8253CTL 0x283 static unsigned int c=0; static unsigned int a=0,b;void Payoff

4、(int d) / 延时测速 static BYTE x=0,y=0; static BYTE z; while(d) do PortReadByte(8255B,&y); /读OUT0输出状态即PB0状态 y &= 0x01; while(xy)=0); x=y; c+; / 每当出现高电平则计数一次 if(c=50000) PortReadByte(82531,&z); /读8253计时器1记录的脉冲数低八位 b=z; PortReadByte(82531,&z); /读8253计时器1记录的脉冲数高八位 b=b+z*256; if(ba)printf(the speed is :%fr/

5、minn,(-b+a)/2.0);/ 计算速度(初值未减完) else printf(the speed is :%fr/minn,(-b+a+1024)/2.0); / 计算速度(初值已减完) a=b; c=0; d-; void main() BYTE data,x; int buf = 0x33,d; / 设置buff则表示线圈初始相为0011 printf(-EXP27_19_BJDJ-n); printf(1. 8255 (PA0-PA3) = BJDJ (BA-BD)n); printf(2. I/O (288-28F) = 8255 (CS)n); printf(3. 8255

6、(PC0-PC7) = TPC (K0-K7)n); printf(4. BJDJ (J5) = (BJDJ)n); printf(Press any key to begin!nn); getch(); printf(K0-K6 are speed control n); printf(K0 is the lowest speed n); printf(K6 is the highest speed n); printf(K7 is the direct control n); printf(press any key to return! n); if(!Startup() /*打开设备*

7、/ printf(ERROR: Open Device Error!n); return; PortWriteByte(8255CTL,0x8b); /*设置8255工作方式,C口输入, A口输出*/ PortWriteByte(8253CTL,0x16); /设置8253计数器0控制字00010110 PortWriteByte(8253CTL,0x76); /设置8253计数器1控制字01110110 PortWriteByte(82530,200); /设置8253计数器0初值为200 PortWriteByte(82531,00); /设置8253计数器1初值低八位 PortWrite

8、Byte(82531,0x04); /设置8253计数器1初值高八位 while(!kbhit() PortReadByte(8255C,&data); /判断8255C口状态 if (data & 1) d =1200; /设置K0延时时间 else if (data & 2) d = 100; /设置K1延时时间 else if (data & 4) d = 900; /设置K2延时时间 else if (data & 8) d =800; /设置K3延时时间 else if (data & 16) d = 700; /设置K4延时时间 else if (data & 32) d = 50

9、0; /设置K5延时时间 else if (data & 64) d = 300; /设置K6延时时间 else d = 0; if (d != 0) Payoff(d); / 调用延时测速程序 if (data & 128) / 判断K7状态 buf = (buf&1)1); /线圈相位变为1001,顺时针转动 else buf = (buf&128)7)|(buf1);/ 线圈相位变为0110,顺时针转动 PortWriteByte(8255A,buf); /从8255A口输出 else PortWriteByte(8255A,0xff); Cleanup(); /*关闭设备*/六、 结论

10、实验实现了步进电机的控制和测速,通过开关k0-k5设置不同的转速,K7设置电机的转向,8253定时器0确定脉冲改变的频率,由8255查询定时时间是否到,输出相应的脉冲,以实现转速控制。在电机转动时,光电传感器每转输出6个脉冲,8253的定时器1,2 负责计数,以测速。通过8255的C口输入不同的延时从而得到不同的脉冲频率,从8255A口输出来实现步进电机的转速。初始的的脉冲频率由8253的计数器0来决定,其输入的时钟脉冲为1MHZ。同时实验中的测速部分由光耦合器来输出脉冲(每转输出6个脉冲),8253的计数器1来计数。由速度计算公式来计算速度。七、 心得体会经过一个星期的实验,小组很成功地把课

11、程设计完成,让我对C+语言更深入的了解,以及对可编程并行接口8255,可编程定时计数器8253在实际应用中的作用有了一定的认识,在程序的编写、电路的搭接方面得到了很大的锻炼。团队的协作能力也有了很大的提高,但是在C+跟汇编语言的转换上还有很大的缺陷,希望以后更进一步。八、 意见与建议以后可以多进行类似的实验型课程的学习这样更有利于我们将理论与实践结合起来,对知识的理解可能会更加深刻。九、 存在的问题1. 实验中的遇到的困难莫过于程序的编写,初次调试使用的是汇编语言,然而对于汇编语言的掌握程度还不够熟练,所以当整合控制和测速程序时,没有成功。于是小组决定改成C+语言进行编写,这次的C+程序一部分由自己编写,一部分借鉴了网上程序,比如其中的速度计算公式的由来初步认为是,计算速度的时间为5s。当然借鉴的同时,大家也对其进行了仔细的分析,完全弄清程序逻辑,然后再对本次设计进行思想类似编写。2. 同样的程序,同样的线路,电脑没有正常运行,换到别的电脑上就可以了,不知道问题出在哪里。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1