电控创新实验报告

上传人:无*** 文档编号:56969252 上传时间:2022-02-22 格式:DOCX 页数:53 大小:187.38KB
收藏 版权申诉 举报 下载
电控创新实验报告_第1页
第1页 / 共53页
电控创新实验报告_第2页
第2页 / 共53页
电控创新实验报告_第3页
第3页 / 共53页
资源描述:

《电控创新实验报告》由会员分享,可在线阅读,更多相关《电控创新实验报告(53页珍藏版)》请在装配图网上搜索。

1、键入文档标题学院工学院专业机械设计制造及其自动化班级机械08-1学号081014104设计者赵保顺指导老师肖爱平、路敦民2011年1月43日北京林业大学目录DSP部分2实验一、电机驱动电路实验设计文档2(一)设计要求3(二)程序功能3(三)占空比设定4(四)试验中寄存器的选用4(六)程序流程图10(七)函数设计说明10二、硬件设计11三、实验程序代码11试验二I/O端口输入输出点亮LED29一、功能:29二、实现方法30三、使用的子程序及主程序31四、中断时间设置32五、寄存器配置32六、关于程序的几点说明3638七、程序流程图八、实验程序代码39附录:59PLC部分78S7-200实验接线要

2、求78硬件连接:78实验1:LED数码显示79实验2:十字路口交通灯控制80实验3:五相步进电动机81实验总结82DSP部分实验一、电机驱动电路实验设计文档实验目的:学习应用DSP和L298N控制一个控制两路马达驱动电路。熟悉CCS编程环境。初步学习电路的设计。了解TMS320LF2407s歹1DSP在控制领域的应用。掌握电机的DSP控制,和初步了解模块化编程。实验器材:TMS320LF2407开发板一块,仿真器,示波器,直流电节,直流电源,外扩电路(自己焊接)。(一)设计要求程序通过改变PWM的占空比来调节电机的速度,通过输入L298的inti,int2不同时为控制电机的转向。PWM输出输出

3、口电机1PWM1PA7PB4电机2PWM3PB1PB6(二)程序功能使用TMS320LF240在成一组PWM波形,将生成的PWM波输出到驱动芯片L298上来控制电机的速度以及正反转。频率为20KHz.通过开关的控制实现不同的占空比的PWM波输出,以及控制输出口的高低电平以控制电机的旋转方向(三)占空比设定选用20M的晶振,预定标值选用1,选择连续增/连续减计数模式。输出频率=CPU频率20M周期值T1PR 预定标 2 周期值T1PR 1 220KT1PR=CPU的频率20000000 500输出频率 预定标值 2 2 1 2000TIPR=500 即TIPR=0X1F40选用占空比定义全局变量

4、 MK1 , MK2分另I表示CMPR1。CMPR2设 MK1=200, MK2=50PWM1的占空比PWM3的占空比(四)试验中寄存器的选用1.系统控制和状态寄存器1 (SCSR1位15:保留位,0位14: CLKOUT引脚输出CPU时钟,设置为0位1312: CPU进入IDLE1模式,设置为00位119:选用系统时钟频率为1叶in,设置为011位8:保留位0位7:禁止ADC模块时钟,且正常运行设置为1位6:禁止SPI模块时钟,且正常运行,设置为1位5:禁止SCI模块时钟,且正常运行,设置为1位4:禁止CAN模块时钟,且正常运行,设置为1位3:使能EVB模块时钟,且正常运行,设置为1位2:使

5、能EVA模块时钟,且正常运行,设置为1位1:保留位为0位0:ILLADR位。无效地址检测位,设置为0SCSR10X06FC2 .复位控制寄存器A(MCRA)位14:IOPB6口,设置为0位12: IOPB4 口,设置为0位9:IOPB1口,设置为0位8:PWM3输出口,设置为1位7:IOPA76口,设置为0位6:PWM1输出口,设置为1其余未做要求,均配置为0MCRA:OX01403 .比较方式寄存器A(ACTRA)位15:SVRDIR。空间矢量PWM旋转方向位,仅用于空间矢量PWM输出的产生,正向,为0位1412:D2/D0,为000位1110:PWM6/IOPB3上的输出方式选择位,强制低

6、,设置为00位98:PWM5/IOPB2上的输出方式选择位,强制低,设置为00位76:PWM4/IOPB1上的输出方式选择位,强制低,设置为00位54:PWM3/IOPB0上的输出方式选择位,高有效,设置为10位32:PWM2/IOPB7上的输出方式选择位,强制低,设置为00位10:PWM1/IOPB6上的输出方式选择位,高有效,设置为10ACTRA:0X00224 .死区控制寄存器A(DBTCONA)不使能死区控制DBTCONA:0X00005 .比较控制寄存器A(COMCONA)位15:比较使能位,设置为1位1413:设置比较寄存器重载条件,当T1CNT=0时(即下益),设置为00位12:

7、禁止空间矢量PWM模式0位1110:当T1CNT=0时重载,设置为00位9:PWM输出引脚为处于高阻态,使能,设置为1位8:设置为0位70:保留位,设置为0COMCONA:0X82006 .定时器1控制寄存器(T1CON)位1514:一旦仿真挂起,立即停止,设置为00位13:保留位,设置为0位1211:连续增/减计数模式,设置为01位108:预定标系数为x/1,设置为000位7:使用同步寄存器操作,设置为0位6:禁止定时器操作,设置为0位54:选择内部CPU时钟,设置为00位32:当计数值为0时重装载,设置为00位1:禁止定时器比较操作,设置为0位0:使用自身的周期寄存器,设置为0T1CON:

8、0X8007 .端口A数据和方向寄存器A(PADATDIR)位15:A7DIR。配置相应的IOPA7为输出弓I脚,设置为1其余未做要求,均设置为08 .端口B数据和方向寄存器B(PBDATDIR)位14:B6DIR,配置相应的IOPB6为输出引脚,设置为1位12:B4DIR,配置相应的IOPB4为输出引脚,设置为1位9:B1DIR,配置相应的IOPB1为输出引脚,设置为1PWM1(PWM3)IOPA7(IOPB1)IOPB4(IOPB6)运转状态0XX停止110止转101反转100刹车111刹车所以电机1正转:PADATDIR=0X8000;PBDATDIR=0X1000;反转:PADATDI

9、R=0X8000;PBDATDIR=0X1010;电机2正转:PBDATDIR=0X4240;反转PBDATDIR=0X4202:(六)程序流程图ias屏蔽所有EVA横缔初PWM输出初IF启动w时器ipwM波生成F调用函数directionl(intZX),改变PA7,PB4控制+调用函数direction?(intZX2)改变PB1,PB6控制电(七)函数设计说明1. disable。屏蔽中断子程序2. initial()系统初始化3.pwminitial1()PWM波初始化4. interruptnothing。中断服务子程序5. direction1(intzx1)控制电机1的转向6.

10、direction?(intzk2)控制电机2的转向7. Main()主函数关于程序的说明:1 .通过定义全局变量MK1、MK2来设置占空比2 .通过软件(directions2)调节电机的正反转二、硬件设计1、实验硬件电路图图1三、实验程序代码L298和DSP控制电机实验的程序代码(1) .头文件.ref_c_int0.ref_nothing;.ref_GISR1;.ref_GISR2.ref_GISR3;.ref_GISR5.sec.vectors_vector:reset:B_c_int0inti:B_nothingint2:B_nothingint3:B_GISR3int4:B_not

11、hingint5:B_nothingint6:B_nothing(2) .主程序#include”2407c.H/L298N电机控制宏unsignedintMotor1_Ctrl(unsignedintDirection,unsignedintSpeed);unsignedintMotor2_Ctrl(unsignedintDirection,unsignedintSpeed);# defineFORWARD10# defineBACK01# defineSTOP00产* FUNCTION:interruptnothing* PARAMETERS:无* DESCRIPTION:中断服务子程序,

12、用于处理不可预测的内核级中断* RETURNS:无*/voidinterruptnothing(void)/中断直接返回子程序_EINT();return;voidIsrTimer2PINT(void)staticunsignedinti=0;staticunsignedintMK1=0;staticunsignedintMK2=0;i+;每次进入中断,自加1if(2500=i)i=0;/计数达到5秒后,清零MK1+=20;MK2+=20;if(MK1=100|MK2=100)Motor1_Ctrl(FORWARD,100);Motor2_Ctrl(BACK,100);MK1=0;MK2=0;

13、elseMotor1_Ctrl(FORWARD,MK1);Motor2_Ctrl(BACK,MK2);EVAIFRB|=0x0001;/清除定时器2的周期中断标志EVAIMRB|=0x0001;/使能定时器2的周期中断产* FUNCTION:interruptGISR3(void)* PARAMETERS:无* DESCRIPTION:内核级中断* RETURNS:无*voidinterruptGISR3(void)_DINT();/关闭全局中断,不使用中断嵌套switch(PIVR)case0x002B:/淀时器2周期中断IsrTimer2PINT();break;default:break

14、;_EINT();/开启全局中断产* FUNCTION:initial* PARAMETERS:无DESCRIPTION:系统初始化函数*RETURNS:无*/voidSystemInit(void)系统初始化子程序_DINT();asm(setcSXM);/符号扩展位有效asm(clrcOVM);/累加其中结果正常溢出asm(clrcCNF);/B0被配置为数据存诸空间SCSR1=0x06FC;CLKIN=20MWDCR=0x0068;/不使能看门狗IMR=0x0000;/禁止所有中断IFR=0x003F;清楚全部中断标志,写1清0/*FUNCTION:timelint2PARAMETERS

15、:无DESCRIPTION:定时器2初始化,定时长度为2ms以及改变PWM波的占空比RETURNS:无*/voidTimer2Init()T2CNT=0x0000;/设置定时器2初始值为0T2PR=20000;/定时长度为2msT2CON=0x0800;/连续增/减计数模式EVAIFRB=0x0001;/清除定时器2的周期中断标志EVAIMRB=0x0001;/使能定时器2的周期中断产* FUNCTION:Motorlnit(void)* PARAMETERS:无* DESCRIPTION:初始化事件管理模块A(EVA)的比较单元,使之产生2路的PWM(PWM1,PWM3)* 初始化定时器1,

16、用以产生频率为20KHz的定时周期初始化IO口用来输出高低电平,配合L298N驱动两路电机资源分配:PA6、PB0设置为PWM输出口PA7、PB4设置为IO控制口,属性为输出,控制电机1的转向PB1、PB6设置为IO控制口,属性为输出,控制电机2的转向RETURNS:无*voidMotorlnit(void)MCRA|=0x0040;/IOPA6置1,为PWM功能(PWM1)MCRA|=0x0100;/IOPB0置1,为PWM功能(PWM3)MCRA&=0xFF7F;/IOPA7置0,为IO口PADATDIR|=0x8000;/IOPA7为输出口,初始输出值为0MCRA&=0xEFFF;/IO

17、PB4置0,为IO口PBDATDIR|=0x1000;/IOPB4为输出口,初始输出值为0MCRA&=0xFDFF;/IOPB1置0,为IO口PBDATDIR|=0x0200;/IOPB1为输出口,初始输出值为0MCRA&=0xBFFF;/IOPB6置0,为IO口PBDATDIR|=0x4000;/IOPB6为输出口,初始输出值为0T1CNT=0x00;/设置定时器1的初始计数值为0T1PR=500;20khz、20Mhz/1/20000/2DBTCONA=0x00;/不使用死去控制ACTRA=0x0022;/设置PWM1、PWMM3引脚输出高有效CMPR1=500;/初始PWM1输出的占空比

18、为0CMPR2=500;初始PWM3输出的占空比为0COMCONA=0x8200;/1000001000000000/1:使能比较操作/T1CON=0x0800;产*FUNCTION:MotorCtrl(Direction,Speed)*PARAMETERS:Direction:电机转动的方向,Speed电机转动速度*DESCRIPTION:L298N驱动2路电机的接口函数,Speed电机速度(0-10。Direction(RORWARD、BACK、STOP)*RETURNS:如果参数超出控制范围,返回布尔值0*/unsignedintMotor1_Ctrl(unsignedintDirect

19、ion,unsignedintSpeed)if(FORWARD=Direction)PADATDIR=(PADATDIR&0xFF7F)|0x8000;/设置电机正转PA7:1PB4:0PBDATDIR=(PBDATDIR&0xFFEF)|0x1000;if(Speed=100)|(Speed=100)|(Speed=100)|KSpeed=100)|(Speed0;j-)for(i=200;i0;i-)i=i;/* FUNCTION:timeri*PARAMETERS:定时器1初始化子程序* DESCRIPTION:* RETURNS:*inttimer1()EVAIMRA=0x0080;/

20、*允许定时器1的周期中断*/EVAIFRA=0x0080;/*清除定时器1周期中断标志*/T1CON=0x1000;/*timer1连续增模式,预分频为1,使用内部时钟*/T1PR=0x4E20;/*timeU,1ms延时*/T1CNT=0X0000;/*timer1计数器清零*/产* FUNCTION:clearall* PARAMETERS:8支LED灯全部熄灭* DESCRIPTION:* RETURNS:*intclearall()PCDATDIR=0x3400;PEDATDIR=0x0100;PFDATDIR=0x3c00;/* FUNCTION:keyscan* PARAMETER

21、S:开关状态判断子程序* DESCRIPTION:* RETURNS:* *intkeyscan()Knew=port0&0x00FF;/*读入开关量*/k二(KnewAKold)&(Knew);/*两次状态先异或在于本次状态的相反量相与*/Kold=Knew;/*判断过后本次开关状态存储,方便下次判断*/return(k);/*返回判断量,如果为0则表示没有变化;如果不为0,则根据为1的位判断变化的键*/* FUNCTION:keyserve* PARAMETERS:键服务子程序* DESCRIPTION:* RETURNS:* */intkeyserve()switch(k)case0x0001:show1();break;case0x0002:show2();break;case0x0004:show3();break;case0x0008:show4();break;case0x0010:show5();break;case0x0020:show6();break;case0x0040:show7();break;case0x0080:show8();break;intshow1()/*发光二极管1、2点亮*/clearall();/*清除前次状态*/PCDATDIR=0xFF30;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!