嵌入式实验研究报告.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 直流、步进电机综合控制系统设计 一、实验目的 初步熟悉实验GPIO口的初始化设置,并熟悉实验箱各个模块的功能 掌握步进机的控制原理及利用延时脉冲来改变步进电机速度 掌握直流电机的控制原理及利用pwm占空比控制来改变速度 学会控制数码管的显示UART串口函数,并初步掌握中断处理函数的写法 实验要求 三、 实验基本原理 void LED_DispNum(uint32 dat) { dat = dat 0x0000000F; // 参数过滤 // 控制LED4、LED3显示(d3、d2位) if(dat 0x08) rGPHDAT = rGPHDAT | (0x016); else rGPHDAT = rGPHDAT (~(0x016)); if(dat 0x04) rGPHDAT = rGPHDAT | (0x014); else rGPHDAT = rGPHDAT (~(0x014)); // 控制LED2、LED1显示(d1、d0位) rGPEDAT = (rGPEDAT (~(0x0311))) | ((dat0x03) 11); } 3、EINT_Test 实现按下ESC退出当前功能,当在某一功能状态下正常工作时,按下ESC即可中断工作,退出当前状态 UART_SendByte(g_getch); UART_SendStr(\n); IRQEnable(); //外部中断测试 UART_SendStr(you can input Esc key to exit EINT_Test\n); 4、Addsubmuldiv_Test:在UART通讯试验的基础上,用C编程实现实现两位数的加减乘除,通过选择序号1、2、3、4、0进入相应运算,将运算过程及结果显示在超级终端上。 UART_SendStr(1、ADD\n); UART_SendStr(2、SUB\n); UART_SendStr(3、MUL\n); UART_SendStr(4、DIV\n); UART_SendStr(0、EXIT:\n); 对于加法,两个两位数的和最多是三位,设置三个加法子函数分别显示和的百位、十位和个位; 对于减法,两个两位数的差最多两位,所以设置两个减法子函数分别显示差的十位和个位; 对于乘法,两个两位数的积最多是四位,因此设置四个乘法子函数分别显示乘积的千位、百位、十位和个位; 对于除法,两个两位数相除最多产生两位数的商,因此设置二个除法子函数,两个分别显示商的十位和个位。 5、Dateweektime_Display:用键盘在超级终端上设置年月日、星期、时分秒并显示当前的年月日、星期、时分秒。用下面的程序进行时间设置: x=UART_GetKey();y=UART_GetKey();// 接收字符 UART_SendByte(x);UART_SendByte(y);// 发送字符 rBCDYEAR=(x-0x30)*16+(y-0x30); //设置年 rBCDMON=(x-0x30)*16+(y-0x30); //设置月 rBCDDATE=(x-0x30)*16+(y-0x30); //设置日 rBCDDAY=x-0x30; //设置星期 rBCDHOUR=(x-0x30)*16+(y-0x30); //设置时 rBCDMIN=(x-0x30)*16+(y-0x30); //设置分 rBCDSEC=(x-0x30)*16+(y-0x30); //设置秒 用下面程序显示并发送时间到超级终端: sprintf(disp_buf, %02x:%02x:%02x %10s, %2x/%2x/20%02x \n, g_hour, g_min, g_sec, str_day[g_day], g_month, g_date, g_year); UART_SendStr(disp_buf); 6、StepMOTO_Test,实现步进电机的调速和正反转;用旋转按钮W1控制调速,在超级终端显示其正反转和转速信息; 步进电机主要原理:本工作模块使用的步进电机的步进角是18(,由于步进电机旋转角度与输入脉冲数目成正比,所以输入20个脉冲信号,步进电机就会旋转20个步进角,且刚好转一圈(2(18(=360()20个步进角)。也就是说给一个脉冲信号,旋转一个步进角,延时100ms,再给一个脉冲信号,旋转一个步进角,延时100ms,这样就可以获得转速为30转/分。同理:把延时时间改为50ms可以使转速变为60转/分。 根据以上分析,

文档评论(0)

阿里山的姑娘 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档