网站大量收购闲置独家精品文档,联系QQ:2885784924

实验报告-jgh.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告-jgh

DSP短学期课程调试报告 课程名称: DSP芯片应用系统设计 设计题目: 基于2812的电机控制系统设计 专 业: 电气工程及其自动化 班 级: 10自动化(2) 设 计 者: 贾官洪 学 号: 104173418 指导教师: 葛英辉 调试时间: 2012-7-17至2012-7-19 宁波大学信息科学与工程学院 一、设计目的 通过实验学习使用2812DSP的扩展I/O端口控制外围设备的方法,了解键盘的使用原理及编程方法;了解液晶显示器的显示控制原理及编程方法;掌握使用2812通用定时器的控制及中断服务程序的编程方法:了解步进电机的控制方法。 通过C语言编程中断程序,控制2812DSP通用I/O管脚产生不同占空比的PWM信号,学习直流电机的控制原理及控制方法。 二、 设计任务 利用小键盘控制电机的停转、转速和转向,并在液晶上实时显示电机当前运行状态以及设计者信息,实现双电机控制:直流电机和步进电机,系统将采用查询的方式从键盘读取按键信息,然后按照转速设定驱动电机,完成正转、反转、加速、减速、启动和停止。 三、系统构成 四、调试过程 因为这次短学期课程是我们初次设计较为复杂的控制系统,所以我决定采取分割模块,逐个击破的调试方法。 1、实现对直流电机的控制: 由设计报告中直流电机工作原理可知,通过定时器0设置其中I/O端口以一定频率改变高低电平状态,输出方波,即可实现直流电机速度控制。此外,只要对另外一I/O端口设置不同的电平,即可实现直流电机转向控制。控制方式如下: GpioDataRegs.GPADAT.bit.GPIOA4 = 1; nDir=0; //正转 GpioDataRegs.GPADAT.bit.GPIOA4 = 0; nDir=1; //反转 uN+ =10; if(uN 90) {uN=100; } //加速并控制最大转速 uN- =10; if(uN30) {uN=30; } //减速并控制最小转速 直流启动的实验具体代码如下: uN=70; uN1=uN; uN=70; Delay(128); GpioDataRegs.GPADAT.bit.GPIOA4 = 1; nDir=0; Delay(128); uN=uN1; //直流电机正传,与原来速度一样 zb=1; //zb为1则说明选择的为直流电机 2、实现对步进电机的控制: 本程序只要求实现正反转。由设计报告中直流电机工作原理可知,控制的方法是设置IOPF4为高电平则顺时针转动,低电平为逆时针转动。根据上述原理,对IOPF4口操作以控制转向。其中:nAddStep=-1为正向转动,nAddStep=1为反向转动。 步进启动的实验具体所需的代码如下: uPort8000=CTRCLKEY; *(int *)0x108007=0xc2;//开步进电机 nAddStep=-1;//正向 zb=2; //zb为2则说明选择的为步进电机 3、实现对双电机的控制: 双电机控制的基本原理是对直流电机和步进电机的结合,本程序中按键“3”选择双电机控制,直流和步进都正转启动代码如下: nAddStep=-1; uN=70; uN1=uN; Delay(128); GpioDataRegs.GPADAT.bit.GPIOA4 = 1; nDir=0; Delay(128); uN=uN1; s=1; //用此变量标记为双电机模式 4、实现按键的调试: 键盘原理比较简单,只要有键盘输入时,读I/O扩展地址0x8001端口得到扫描代码。读入语句如下: nScanCode=*(int *)0x108001; // 读扫描码 nScanCode=0x0ff; // 低8位 uPort8000=*(int *)0x108002;// 代码读入后要对其进行转换,即转换为按键对应是数字。 cKey=ConvertScanToChar(nScanCode); nKeyCode=( cKey=0 cKey=9 )?(cKey-0):(cKey-A+10); 至此我们可以看出,按键本质是对所按得键码进行进一步转换,以实现按键与具体数字相对应。那我们所要编的这个转换程序就是实现0x18到0的转换,0x14到1的

文档评论(0)

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

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

1亿VIP精品文档

相关文档