ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:462.50KB ,
资源ID:138277      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-138277.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM的步进电机控制课程设计.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于ARM的步进电机控制课程设计.doc

1、 湖南科技大学 信息与 电气工程学院 基于 ARM的步进电机控制 课程设计报告 专 业: 电子信息工程 班 级: 一班 姓 名: 陈信维 学 号: 0904030112 指导教师: 罗朝辉 第 1 页 目 录 1.设计目的与要求 2 1.1 设计目的 2 1.2 设计要求 2 2.方案设计与论证 2 2.1 设计分析 2 2.2 方案论证 2 2.3 方案选择 2 3.硬件电路 2 3.1 硬件结构 3 3.2 器件连接说明 4 4.软件设计 5 5 调试 7 6.结论与心得 7 7.参考文献 7 附录 程序 8 第 2 页 1、设计的目的与要求 1.1 设计目的 ( 1) 本 次 课程设计是

2、在学 习了深入浅出 ARM7 LPC213X/214X 课程之后综合利用所学知识完成一个 计算机 应用系统设计并在实验室实现。 ( 2)通过课程设计,巩固和加深了对“微机原理与接口技术” 课程中所学的理论知识和实验能力 , 基本掌握 计算机接口 应用电路的一般设计方法,提高电子电路的设计和实验能力 。 ( 3) 加深对 计算机 软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的 基础。 1.2 设计要求 ( 1)设计一个步进电机的控制系统 。 ( 2)可通过键盘设定转速和方向。 ( 3)能够显示当前的转速。 2、方案的设计与论证 2.1 设计分析 步进电机是将电脉冲信号转变

3、为角位移或线位移的开环控制元件。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角 。本次课程设计所 设计的步进电机的控制系统 可通过键盘设定转速和方向,并能显示转速。 2.2 方案论证 方案一:采用 ARM7 的脉宽调制器 PWM 产生脉冲对步进电机进行控制。 方案二:利用定时器定时中断进行步进电机的控制。 2.3 方案选择 第一种方案中 PWM 技术是采用脉宽调制技术,即占空比不同的方波电压产生不同的平均电流使步进电机转动,通过调节占空比即可调节电机转速。虽然很精确,但设置较繁琐。 第二种方案中采用定时器定时中断的方式,

4、只需要几条简单的指令就可以产生具有一定 频率和数目的脉冲信号,而且在整个脉冲产生过程中, CPU 可用来处理其他工作,大大 提高了系统的实时处理能力。 考虑到系统的实时性及程序的繁简程度我选择了第二种方案。 3、硬件电路 3.1 硬件 结构 ( 1) EasyARM2138 开发板是广州周立功公司设计的 EasyARM 系列开发套件之一,采用了 PHILIPS 公司基于 ARM7TDMI-S 核、单电源供电、 LQFP64 封装的 LPC2138,具有 JTAG 仿真调试、 ISP 编程等功能。 开发板上提供了一些键盘、 LED、蜂鸣器等常用功能部件,还具有 RS232 接口电路、 I2C 存

5、储器电路。另外,用户也可以更换兼容的 CPU 进行仿真调试,如 LPC2132、 LPC2138、 LPC2142 等。灵活的跳线组合(开发板内使用的所有 I/O 均可断开连接),还有 用户 I/O 接 第 3 页 口,极大地方便了用户进行 32 位 ARM 嵌入式系统的开发实验。 ( 2) 定时器 ( 3)中断 LPC2138 通过向量中断控制器( VIC )管理中断。外设中断信号需要经过 2 个开关才能 到达 ARM 内核,真正产生异常,逻辑示意图如下图所示。如果在 VIC 中使能了相应外 设的中断,外设中断才能到达 VIC 并向内核发送中断请求;只有使能了内核中断 IRQ 或者 FIQ,

6、内核才能真正产生异常。硬件图如下 第 4 页 中断的过程示意图如下: ( 4)按键的连接图 不按下时为高电平,按下时变为低电 平。 ( 5) UART0 特性: 第 5 页 管脚描述: (6)步进电机接口 由于 LPC2138 的 GPIO 驱动能力有限,必须通过 ULN2003 达林顿集成驱动芯片驱动步进电机,在步进电机和驱动电路间连接了电阻,防止控制紊乱而造成的电机损坏。 3.2 器件连接说明 ( 1)在 EasyARM2138 开发板上,当跳线 JP6 分别选择 TXD0 和 RXD0 端时方可进行UART0 通信实验。 ( 2) KEY1 连接 P0.16; KEY2 连接 P0.17

7、; KEY3 连接 P0.18, KEY4 连接 P0.19, KEY5连接 P0.20, KEY6 连接 P0.21。 ( 3)步进电机的四个输入端口分别接 EasyARM2138 开发板上 P2.2P2.5 四个端口。 4、软件设计 系统软件采用 C 语言编程, 程序详情请参见附录。 第 6 页 程序的流程图如下: 否 是 是 否 是 否 是 否 是 否 是 否 是 开始 初始化参数:设置 SPI 管脚连接, P0.30 连接到 AD0.3,P125:16连接 GPIO,设置 bjdj_qd 控制口为输出,初始化 SPI,IRQ 中断使能,定时器 0 初始化,启动定时器,设置并启动定时器

8、0 中断 IRQ 。 步进电机进入最近一次设定的模式(初始时为模式 0) 是否有按键按下 KEY1 按 下? 进入模式 0:八拍正转。在数码管上显 示 0,同时在上位机上显示转速。 KEY2按 下? 进入模式 1:八拍反转。在数码管上显示 1,同时在上位机上显示转速。 KEY3 按 下? 进入模式 2:双四拍正转。在数码管上显示 2,同时在上位机上显示转速。 KEY4 按 下? 进入模式 3:双四拍反转。在数码管上显示 3,同时在上位机上显示转速。 KEY5 按 下? 进行减速。在数码管上显示 5,同时在上位机上显示转速。 KEY6 按 下? 进行加速。在数码管上显示 6,同时在上位机上显示转

9、速。 第 7 页 4、调试 按照器件连接说明连接好 EasyARM2131 开发板上的跳线,然后将步进电机与EasyARM2131 开发板连接上。运行程序,开始调试。在一开始的时候,由于用定时器设置的中断时间太长导致看不见电机有明显的转动。通过修改定时时间,渐渐地电机转动变得明显了。然后测试按键功能时发现,案件的检测不够灵敏,有时候需要按几下才能检测到,后来经过修改延时消抖的时间,将其变短且在每次按下按键时不急于松开而保持一会儿, 这样按键检测变得较为灵敏了。在调试中发现:单双八拍和双四拍要比单四拍的转动更加有效。单四拍模式的时候电机只是震动并没有转动,用肉眼观察不到转速的快慢,故最后舍弃了这

10、种模式。 调试的最终结果是:程序开始时电机进入模式 0,如果没有按键按下则一直保持模式 0。当有按键按下时,且按键为 KEY1KEY4 则电机根据不同按键的按下进入不同的转动模式( KEY1 对应模式 0:八拍正转, KEY2 对应模式 1:八拍反转, KEY3 对应模式 2:双四拍正转, KEY4 对应模式 3:双四拍反转)。当按键 KEY5 按下时,电机转速变慢,且随 着 KEY5按下次数的增多电机逐渐变慢直至停止;当按键 KEY6 按下时,电机转速变快,且随着 KEY5按下次数的增多电机逐渐变快。同时在上位机上可以看见当前的转速。 5、课程设计体会 一方面,通过这一周的课程设计,我对课本

11、上关于 LPC2138 的硬件结构的知识有了更加深刻的理解,而且对其用法掌握得更加熟练。在课程设计过程中,能够不断地发现问题,并想办法解决,如此提高了我自己解决问题的能力。在编写程序方面,我对 ARM7 编程结构和技巧也有了深刻的理解和领会。此次课程设计还让我知道什么是实时系统以及如何构建一个简单的实 时系统。现在我已经基本掌握了构建实时系统的方法。还有我明白了流程图的重要性,以前在编程的时候,我从不写流程图,直接开始写程序,这样出现了不该出现的问题。但这次课程设计时,我试着先写出流程图然后按照流程图编写程序,结果错误少了很多,即使有错误只要根据流程图一查就知道错在哪里,这让我节省了大量的时间

12、和精力。所以我认识到,以后要编写程序时,先写流程图是很有必要的。 另一方面,我感觉这一周的课程设计我自己的效率太低。有时候被一些问题困惑了很久,但经过老师的指点,我才恍然大悟,原来只要换个方式思考问题就能想到很好的方 法。 6、 参考文献 1 周立功 .深入浅出 ARM7 LPC213X/214X(上册) M.北京: 北京航空航天大学出版社, 2008:146-175,226-240,275-286. 2 周立功 . ARM 嵌入式系统实验教程(三) M.北京: 北京航空航天大学出版社, 2005: 134-140. 3 冷洪滨 ,邬义杰 .基于计数器 /定时器的步进电机可编程控制接口电路设计

13、 J北京: 组合机床与自动化加工技术 , 2004. 4 周明德 .微型计算机硬件软件及其应用 .北京 :清华大学出版社 ,1993. 第 8 页 附录 : 实训程序 #include “config.h“ #define HC595_CS (1 0; dly-) for(i=0; i50000; i+); #define UART_BPS 115200 / 通讯波特率 115200 /* * 函数名称 : UART0_Init() * 函数功能 :初始化串口 0:波特率 115200, 8 位数据位, 1 位停止位,无奇偶校验。 * 入口参数 :无 * 出口参数 :无 */ void UAR

14、T0_Init (void) uint16 Fdiv; U0LCR = 0x83; / DLAB = 1 第 9 页 Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0x03; /* * 函数名称 : UART0_SendByte() * 函数功能 :向串口发送字节数据,并等待数据发送完毕。 * 入口参数 : data 要发送的数据 * 出口参数 :无 */ void UART0_SendByte (uint8 data) U0THR = data; while (U0LSR / 等

15、待数据发送完毕 /* * 函数名称 : PC_DispChar() * 函数功能 :向 PC 机发送显示字符。 * 入口参数 : x 显示字符的横坐标 * y 显示字符的纵坐标 * chr 显示的字符,不能为 ff * color 显示的状态,包括前景色、背景色、闪烁位。与 DOS 字符显示一样: 0 3,前景色, 4 6,背景色, 7,闪烁位。 * 出口参数 :无 */ void PC_DispChar (uint8 x, uint8 y, uint8 chr, uint8 color) UART0_SendByte(0xff); / 起始字符 UART0_SendByte(x); UART0_SendByte(y); UART0_SendByte(chr); UART0_SendByte(color); /* * 函数名称 : ISendStr() * 函数功能 :向上位机发送字符串。 * 入口参数 : x 显示字符的横坐标 * y 显示字符的纵坐标 * color 显示的状态,包括前景色、背景色、闪烁位。 * 与 DOS 字符显示一样: 0 3,前景色, 4 6,背景色, 7,闪烁位。 * str 要发送的字符串,以 0结束 * 出口参数 :无

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。