




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 综合设计实验报告综合设计实验报告 题目 ARM 课程设计 步进电机控制系统步进电机控制系统 系 别 计算机科学与工程系 专 业 计算机科学与技术专业 姓 名 学 号 指导教师 河南城建学院 201 年 月 日 2 目 录 1 设计目的与要求 4 1 1 设计目的 4 1 2 设计要求 4 2 方案设计与论证 4 2 1 设计分析 4 2 2 方案论证 4 2 3 方案选择 4 3 硬件电路 4 3 1 硬件结构 4 3 2 器件连接说明 7 4 软件设计 7 5 调试 9 6 结论与心得 9 7 参考文献 9 附录 程序 10 3 1 设计的目的与要求 1 1 设计目的 1 本次课程设计是在学习了 ARM 原理与技术 课程之后综合利用所学知识完成 一个计算机应用系统设计并在实验室实现 2 通过课程设计 巩固和加深了对 微机原理与接口技术 课程中所学的理论知识 和实验能力 基本掌握计算机接口应用电路的一般设计方法 提高电子电路的设计和实验 能力 3 加深对计算机软硬知识的理解 获得初步的应用经验 为以后从事生产和科研工 作打下一定的基础 1 2 设计要求 1 设计一个步进电机的控制系统 2 可通过键盘设定转速和方向 3 能够显示当前的转速 2 方案的设计与论证 2 1设计分析 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件 电机的转速 停止 的位置只取决于脉冲信号的频率和脉冲数 而不受负载变化的影响 即给电机加一个脉冲 信号 电机则转过一个步距角 本次课程设计所设计的步进电机的控制系统可通过键盘设 定转速和方向 并能显示转速 2 2方案论证 方案一 采用 ARM7 的脉宽调制器 PWM 产生脉冲对步进电机进行控制 方案二 利用定时器定时中断进行步进电机的控制 2 3方案选择 第一种方案中 PWM 技术是采用脉宽调制技术 即占空比不同的方波电压产生不同的 平均电流使步进电机转动 通过调节占空比即可调节电机转速 虽然很精确 但设置较繁 琐 第二种方案中采用定时器定时中断的方式 只需要几条简单的指令就可以产生具有一 定 频率和数目的脉冲信号 而且在整个脉冲产生过程中 CPU 可用来处理其他工作 大大 提高了系统的实时处理能力 考虑到系统的实时性及程序的繁简程度我选择了第二种方案 3 硬件电路 3 1 硬件结构 1 EasyARM2138 开发板是广州周立功公司设计的 EasyARM 系列开发套件之一 采 用了 PHILIPS 公司基于 ARM7TDMI S 核 单电源供电 LQFP64 封装的 LPC2138 具有 4 JTAG 仿真调试 ISP 编程等功能 开发板上提供了一些键盘 LED 蜂鸣器等常用功能部件 还具有 RS232 接口电路 I2C 存储器电路 另外 用户也可以更换兼容的 CPU 进行仿真调试 如 LPC2132 LPC2138 LPC2142 等 灵活的跳线组合 开发板内使用的所有 I O 均可断开连接 还有用户 I O 接 口 极大地方便了用户进行 32 位 ARM 嵌入式系统的开发实验 2 定时器 3 中断 LPC2138 通过向量中断控制器 VIC 管理中断 外设中断信号需要经过 2 个开关才能 到达 ARM 内核 真正产生异常 逻辑示意图如下图所示 如果在 VIC 中使能了相应外 5 设的中断 外设中断才能到达 VIC 并向内核发送中断请求 只有使能了内核中断 IRQ 或者 FIQ 内核才能真正产生异常 硬件图如下 中断的过程示意图如下 4 按键的连接图 不按下时为高电平 按下时变为低电平 5 UART0 特性 6 管脚描述 6 步进电机接口 由于 LPC2138 的 GPIO 驱动能力有限 必须通过 ULN2003 达林顿集成驱动芯片驱动步 进电机 在步进电机和驱动电路间连接了电阻 防止控制紊乱而造成的电机损坏 3 2 器件连接说明 1 在 EasyARM2138 开发板上 当跳线 JP6 分别选择 TXD0 和 RXD0 端时方可进行 UART0 通信实验 2 KEY1 连接 P0 16 KEY2 连接 P0 17 KEY3 连接 P0 18 KEY4 连接 P0 19 KEY5 连接 P0 20 KEY6 连接 P0 21 3 步进电机的四个输入端口分别接 EasyARM2138 开发板上 P2 2 P2 5 四个端口 4 软件设计 系统软件采用 C 语言编程 程序详情请参见附录 程序的流程图如下 7 否 是 是 否 是 否 是 否 是 否 是 否 是 否 开始 初始化参数 设置 SPI 管脚连接 P0 30 连接到 AD0 3 P1 25 16 连接 GPIO 设置 bjdj qd 控制口为输出 初始化 SPI IRQ 中断使能 定时器 0 初始化 启动定时器 设置并启动定时器 0 中断 IRQ 步进电机进入最近一次设 定的模式 初始时为模式 0 是否有按键按下 KEY1 按 下 进入模式 0 八拍正转 在数码管上显示 0 同 时在上位机上显示转 速 KEY2 按 下 进入模式 1 八拍反转 在数码管上显示 1 同 时在上位机上显示转 速 KEY3 按 下 进入模式 2 双四拍正 转 在数码管上显示 2 同时在上位机上显 示转速 KEY4 按 下 进入模式 3 双四拍反 转 在数码管上显示 3 同时在上位机上显 示转速 KEY5 按 下 进行减速 在数码管 上显示 5 同时在上位 机上显示转速 KEY6 按 下 进行加速 在数码管 上显示 6 同时在上位 机上显示转速 8 4 调试 按照器件连接说明连接好 EasyARM2131 开发板上的跳线 然后将步进电机与 EasyARM2131 开发板连接上 运行程序 开始调试 在一开始的时候 由于用定时器设置 的中断时间太长导致看不见电机有明显的转动 通过修改定时时间 渐渐地电机转动变得 明显了 然后测试按键功能时发现 案件的检测不够灵敏 有时候需要按几下才能检测到 后来经过修改延时消抖的时间 将其变短且在每次按下按键时不急于松开而保持一会儿 这样按键检测变得较为灵敏了 在调试中发现 单双八拍和双四拍要比单四拍的转动更加 有效 单四拍模式的时候电机只是震动并没有转动 用肉眼观察不到转速的快慢 故最后 舍弃了这种模式 调试的最终结果是 程序开始时电机进入模式 0 如果没有按键按下则一直保持模式 0 当有按键按下时 且按键为 KEY1 KEY4 则电机根据不同按键的按下进入不同的转动 模式 KEY1 对应模式 0 八拍正转 KEY2 对应模式 1 八拍反转 KEY3 对应模式 2 双四拍正转 KEY4 对应模式 3 双四拍反转 当按键 KEY5 按下时 电机转速变慢 且 随着 KEY5 按下次数的增多电机逐渐变慢直至停止 当按键 KEY6 按下时 电机转速变快 且随着 KEY5 按下次数的增多电机逐渐变快 同时在上位机上可以看见当前的转速 5 课程设计体会 一方面 通过这几周的课程设计 我对课本上的知识有了更加深刻的理解 而且对其 用法掌握得更加熟练 在课程设计过程中 能够不断地发现问题 并想办法解决 如此提 高了我自己解决问题的能力 在编写程序方面 我对 ARM7 编程结构和技巧也有了深刻的 理解和领会 此次课程设计还让我知道什么是实时系统以及如何构建一个简单的实时系统 现在我已经基本掌握了构建实时系统的方法 还有我明白了流程图的重要性 以前在编程 的时候 我从不写流程图 直接开始写程序 这样出现了不该出现的问题 但这次课程设 计时 我试着先写出流程图然后按照流程图编写程序 结果错误少了很多 即使有错误只 要根据流程图一查就知道错在哪里 这让我节省了大量的时间和精力 所以我认识到 以 后要编写程序时 先写流程图是很有必要的 另一方面 我感觉这几周的课程设计我自己的效率太低 有时候被一些问题困惑了很 久 但经过查阅资料我才恍然大悟 原来只要换个方式思考问题就能想到很好的方法 6 参考文献 1 周立功 深入浅出 ARM7 LPC213X 214X 上册 M 北京 北京航空航天大学 出版社 2008 146 175 226 240 275 286 2 周立功 ARM 嵌入式系统实验教程 三 M 北京 北京航空航天大学出版社 2005 134 140 3 冷洪滨 邬义杰 基于计数器 定时器的步进电机可编程控制接口电路设计 J 北京 组合机 床与自动化加工技术 2004 4 周明德 微型计算机硬件软件及其应用 北京 清华大学出版社 1993 9 附录 实训程序 include config h define HC595 CS 1 29 P0 29 口为 74HC595 的片选 define LED1 1 18 P1 18 define LED2 1 19 P1 19 define LED3 1 20 P1 20 define LED4 1 21 P1 21 define bj qd 0 x0f 22 步进电机驱动脚 p1 22 p1 25 uint32 bj 8 1 22 3 22 1 23 3 23 1 24 3 24 1 25 9 22 0A 1AB 2B3BC4C 5CD 6D7DA const uint32 KEY1 1 16 P0 16 连接 KEY1 const uint32 KEY2 1 17 P0 17 连接 KEY1 const uint32 KEY3 1 18 P0 18 连接 KEY1 const uint32 KEY4 1 19 P0 19 连接 KEY1 const uint32 KEY5 1 20 P0 20 连接 KEY1 const uint32 KEY6 1 0 dly for i 0 i 80 x 0 y 函数名称 MSPI Init 函数功能 初始化 SPI 接口 设置为主机 入口参数 无 出口参数 无 void MSPI Init void PINSEL0 PINSEL0 SPCCR 0 x52 设置 SPI 时钟分频 SPCR 0 3 CPHA 0 数据在 SCK 的第一个时钟沿采样 1 4 CPOL 1 SCK 为低有效 1 5 MSTR 1 SPI 处于主模式 0 6 LSBF 0 SPI 数据传输 MSB 位 7 在先 0 7 SPIE 0 SPI 中断被禁止 函数名称 MSPI SendData 函数功能 向 SPI 总线发送数据 入口参数 data 待发送的数据 出口参数 返回值为读取的数据 uint8 MSPI SendData uint8 data IOCLR HC595 CS 片选 74HC595 SPI SPDR data 12 while 0 SPI SPSR 等待 SPIF 置位 即等待数据发送完 毕 IOSET HC595 CS return SPI SPDR 此表为 LED0 F 以及 L P 的字模 uint8 const DISP TAB 10 0 1 2 3 4 5 6 7 8 9 0 xC0 0 xF9 0 xA4 0 xB0 0 x99 0 x92 0 x82 0 xF8 0 x80 0 x90 函数名称 qudong 函数功能 驱动步进电机转动 入口参数 无 出口参数 无 void qudong IO1SET 0 x0f 22 不输出 switch bj mod case 0 八拍正转 IO1CLR bj cnt 8 break case 1 八拍反转 IO1CLR bj 7 cnt 8 break case 2 双四拍正转 IO1CLR bj cnt 4 2 1 break case 3 双四拍反转 IO1CLR bj 7 cnt 4 2 break default break T0IR 0 x01 清除中断标志 VICVectAddr 0 x00 通知 VIC 中断处理结束 函数名称 IRQ Timer0 函数功能 定时器 0 中断服务程序 定时调用 qudong 程序 使步进电机 按节拍转动 入口参数 无 出口参数 无 void irq IRQ Timer0 void 13 t cnt qudong MSPI SendData DISP TAB i 发送显示 T0IR 0 x01 清除中断标志 VICVectAddr 0 x00 通知 VIC 中断处理结束 函数名称 main 函数功能 程序初始化 AD 采样和按键调节电机转速 通过串口向上位 机发送显示数据 调试说明 需要将跳线 JP6 分别选择 TXD0 和 RXD0 端 KEY1 KEY6 连接 P0 16 P0 21 步进电机四个输入端分别接 P1 22 P1 25 uint8 rcv data int main void uint32 ADC Data temp zhuansu 100 zhuansu1 100 zhuansu2 200 uint32 bapaizhengzhuan bapaifanzhuan shsipaizhengzhuan shsipaifanzhuan char str 20 PINSEL0 0 x00005505 设置 SPI 管脚连接 PINSEL1 0 x10000000 PINSEL1 1 28 P0 30 连接到 AD0 3 IODIR HC595 CS PINSEL2 PINSEL2 P1 25 16 连接 GPIO IO1DIR bj qd 设置 bjdj qd 控制口为输出 UART0 Init MSPI Init 初始化 SPI IRQEnable IRQ 中断使能 定时器 0 初始化 T0TC 0 定时器设置为 0 T0PR 0 时钟不分频 T0MCR 0 x03 设置 T0MR0 匹配后复位 T0TC 并产生中断标志 T0MR0 Fpclk zhuansu 0 5 秒钟定时 T0TCR 0 x01 启动定时器 设置定时器 0 中断 IRQ VICIntSelect 0 x00 所有中断通道设置为 IRQ 中断 VICVectCntl0 0 x20 0 x04 设置定时器 0 中断通道分配最高优先级 VICVectAddr0 uint32 IRQ Timer0 设置中断服务程序地址 VICIntEnable 1 0 x04 使能定时器 0 中断 while 1 14 if IO0PIN if IO0PIN i 0 MSPI SendData DISP TAB 0 发送到数码管显示 bapaizhengzhuan 3 zhuansu 20 sprintf str bapaizhengzhuan 4d bapaizhengzhuan 发送到上位机显示 ISendStr 0 4 0 x30 str while IO0PIN if IO0PIN if IO0PIN i 2 MSPI SendData DISP TAB i 发送到数码管显示 bapaifanzhuan 3 zhuansu 20 sprintf str bapaifanzhuan 4d bapaifanzhuan 发送到上位机显示 ISendStr 0 6 0 x30 str while IO0PIN if IO0PIN if IO0PIN i 3 MSPI SendData DISP TAB i 发送到数码管显示 shsipaizhengzhuan 3 zhuansu 10 sprintf str shsip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公设施维修费合同协议
- 合同徒弟协议书合集模板
- 公交疫情集体协商协议书
- 保姆护理协议合同书模板
- 2025情侣同居协议书
- 光伏设备维护合同协议书
- 合同变更收款方协议范本
- 加盟合伙开餐馆合同范本
- 产权代为保管协议书范本
- 三个月以后退的合同范本
- 招标代理招标服务实施方案
- 垃圾清运合同范本模板建筑
- 合伙开公司必签的五份协议
- 八年级地理实验室使用计划
- 公司信息安全知识培训模版课件
- 2024LNG储罐焊缝X射线数字成像检测规范
- DB5117T 22-2020 地理标志产品 米城大米
- 设计概论讲课课件(第三版杨晓琪)
- 小学数学分数四则混合运算200题带答案
- 小学音乐跨学科教学的常见问题与应对策略
- 小红书食用农产品承诺书示例
评论
0/150
提交评论