DSP课设基于键盘的步进电动机控制总结.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP技术及应用课程设计报告 基于键盘的步进电机控制 学 院: 计算机与信息工程学院 专 业: 电子科学与技术 学生姓名: 学 号: 指导教师: 设计要求及目标 利用C语言在CCS环境中编写一个直流电机控制程序,并能通过串口实现对电机的转速、转向控制,并通过硬件仿真实现对所编写的程序及其应用性、可行性进行验证。 (1)通过键盘设置有正转、反转、加速、减速; (2)LCD显示马达的运行状态(正转、反转、停止); (3)LCD显示转速,显示设计者姓名,时间。 ?二、实验设备及实验准备 1.?实验设备:(1)一台装有CCS软件的计算机; ? (2)?DSP试验箱的TMS320F2812主控板;? (3)?DSP硬件仿真器 2.实验准备:?将DSP仿真器与计算机连接好;???? 三、实验原理? 1 系统总体框图 2 软件设计原理 步进电机工作原理,给步进脉冲电机就转,不给脉冲电机就不转,步进脉冲的频率越高,步进控制电机就转的越快;改变各相的通电方式可以改变电机的运行方式;改变通电顺序可以控制步进电机的运行方式;改变通电顺序可以控制步进电机的正反转。设计实现对步进电机调速、定时、定步、正反转以及励磁方式控制,并通过TMS320F2812片内集成ADC模块获取电机电流。LCD12864结合四个按键以菜单模式选择各项功能。? 为防止功能的冲突,程序中应用大量标志来记录各种功能状态,同一状态下可有显示标志和功能执行标志。显示标志用来显示液晶,显示完成后标志立即清零,避免液晶一直刷新影响显示效果;功能执行标志能够保持功能状态信息,等待功能选择,在功能执行完成(一般在返回上级操作时)后清零标志。 利用定时器进行按键实时消抖。利用定时器可对按键进入和退出都进行实时消抖,这样不需等待按键释放就能保证每次按下按键为单次触发,避免了延时按键消抖占时、要等待的弊端,极大地提高了CPU工作效率,实时性好。由于按键消抖不需要很高的优先级,故程序中使用EVA通用定时器1进行按键消抖。同时该定时器也用作时钟计数,这样共用可减少定时器的使用,提高程序的运行效率。? (3)CPU定时器0用作步进脉冲延时来控制电机转速。由于电机转速要求精度高,故使用优先级最高的定时器—CPU定时器0作为步进延时。? (4)过采样法进行AD转换。程序对单一通道多次采样,通过取平均值法提高采样精度,同时可以减慢AD转换结果的变化,有利于LCD12864液晶显示。? 四、实验代码 1.GPIO的初始化 #include DSP2833x_Device.h // DSP2833x Headerfile Include File #include DSP2833x_Examples.h // DSP2833x Examples Include File void InitGpio(void) { EALLOW; GpioCtrlRegs.GPAMUX1.all = 0x0000; // GPIO functionality GPIO0-GPIO15 GpioCtrlRegs.GPAMUX2.all = 0x0000; // GPIO functionality GPIO16-GPIO31 GpioCtrlRegs.GPBMUX1.all = 0x0000; // GPIO functionality GPIO32-GPIO39 GpioCtrlRegs.GPBMUX2.all = 0x0000; // GPIO functionality GPIO48-GPIO63 GpioCtrlRegs.GPCMUX1.all = 0x0000; // GPIO functionality GPIO64-GPIO79 GpioCtrlRegs.GPCMUX2.all = 0x0000; // GPIO functionality GPIO80-GPIO95 GpioCtrlRegs.GPADIR.all = 0x0000; // GPIO0-GPIO31 are inputs GpioCtrlRegs.GPBDIR.all = 0x0000; // GPIO32-GPIO63 are inputs GpioCtrlRegs.GPCDIR.all = 0x0000; //

文档评论(0)

a336661148 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档