实验六电机转动控制实验_第1页
实验六电机转动控制实验_第2页
实验六电机转动控制实验_第3页
实验六电机转动控制实验_第4页
实验六电机转动控制实验_第5页
全文预览已结束

下载本文档

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

文档简介

1、实验六电机转动控制实验C语言实现方法08通信(2)班 王文龙 E08680222一、实验目的1熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。2编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。3了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。4掌握带有PWM和I/O的CPU编程实现其相应功能的主要方法。二、实验内容学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM知识,掌握PWM的生成方法,同时也要掌握I/O的控制方法。1编程实现ARM芯片的

2、一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其正反转及转速。2编程实现ARM的四路I/O通道实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮转角控制步进电机的转角。3通过超级终端来控制直流电机与步进电机的切换。三、实验设备及工具硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。四、实验步骤1新建工程,将“Exp6电机转动控制实验”中的文件添加到工程。2编写直流电机初始化函数(Motor

3、Ctrl.c),其流程图如图2-27所示。#include ".startup44b.h"#include "MotorCtrl.h"#define MOTOR_SEVER_FRE1000/20kHz#define MOTOR_CONT(MCLK/2/2/MOTOR_SEVER_FRE)#define MOTOR_MID(MOTOR_CONT/2)void init_MotorPort()/Dead Zone=24, PreScalero1=2;rTCFG0=(0<<24)|2;/divider timer0=1/2;rTCFG1=0;rTC

4、NTB0= MOTOR_CONT;rTCMPB0= MOTOR_MID;rTCON=0x2;/update mode for TCNTB0 and TCMPB0.rTCON=0x19;/timer0 = auto reload, start. Dead Zonevoid SetPWM(int value)rTCMPB0= MOTOR_MID+value;图2-27 直流电机初始化数3控制直流电机的程序流程如图2-28所示。Uart_Printf("nBegin control DC motor.ttPress any key to control step motor.n"

5、);for(;)ADData=GetADresult(0);Delay(10);SetPWM(ADData-512)*MOTOR_CONT/1024);Delay(10);if(rUTRSTAT0 & 0x1)/有输入,则跳出*Revdata=RdURXH0();goto next;图2-28 控制直流电机程序流程图4控制步进电机的程序流程如图2-29所示。SetPWM(0);Uart_Printf("nBegin control step motor.tPress any key to control DC motor.n");lastADData=GetADre

6、sult(0);Delay(10);for(;)loop:if(rUTRSTAT0 & 0x1)/有输入,则返回*Revdata=RdURXH0();goto begin;Delay(10); ADData=GetADresult(0);if(abs(lastADData-ADData)<20) goto loop; Delay(10); count=-(ADData-lastADData)*3;/(ADData-lastADData)*270/1024为ad旋钮转过的角度,360/512为步距角,/由于接了1/8减速器,两者之商再乘以8为步进电机相应转过的角度if(count&

7、gt;=0)/转角大于零for(j=0;j<count/8;j+)for(i=0;i<=7;i+)SETEXIOBITMASK(stepdatai, 0xf0);Delay(200);else/转角小于零count=-count;for(j=0;j<count/8;j+)for(i=7;i>=0;i-)SETEXIOBITMASK(stepdatai, 0xf0);Delay(200); lastADData=ADData;图2-29 控制步进电机的程序流程图五、实验心得熟悉了ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。编程实现ARM系统的PWM输出和I/O

温馨提示

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

评论

0/150

提交评论