单片机课程设计报告——单片机控制步进电机_第1页
单片机课程设计报告——单片机控制步进电机_第2页
单片机课程设计报告——单片机控制步进电机_第3页
单片机课程设计报告——单片机控制步进电机_第4页
单片机课程设计报告——单片机控制步进电机_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用课程设计报告 江西农大江西农大 单片机原理及应用单片机原理及应用 课程设计报告课程设计报告 设计课题 单片机控制步进电机单片机控制步进电机 专业班级 信工信工 091 班班 学生姓名 崔崔 指导教师 何老师何老师 2012 年年 5 月月 单片机原理及应用课程设计报告 21 目 录 目 录 1 1 设计任务书 2 1 1 基本设计要求 2 1 2 选作项目 2 2 设计阐明 3 2 1 设计内容 3 2 2 设计要求 3 2 3 设备及工作环境 3 3 系统方案整体设计 4 3 1 设计思路 4 4 硬件设计 6 4 1 系统硬件设计 6 4 1 1 最小单片机系统 6 4 1 2 键盘设计 6 4 2 系统工作原理论述 7 5 软件设计 9 5 1 分析论证 9 5 1 1 步进电机运行驱动模块 9 5 1 2 温度采集模块 9 5 1 3 主函数模块 9 5 1 4 整体功效 9 5 2 程序流程图 10 5 3 程序清单 11 6 调试过程及分析 18 7 设计总结 19 参 考 文 献 20 单片机原理及应用课程设计报告 2 1 设计任务书 1 1 基本设计要求 1 用万能板 主芯片 AT89S52 35BYJ412 步进电机 BLN2003 以及其 他周围原件芯片完成实验设计 2 程序的首地址应使目标机可以直接运行 即从 0000H 开端 在主程 序的开端部分必须设置一个合适的栈底 程序放置的地址须持续且靠前 不要 在中间留下大批的空间地址 以使目标机可以应用较少的硬件资源 3 采用单片机控制一个三相单三拍的步进电机工作 步进电机的旋转方 向由正反转控制信号控制 步进电机的步数由键盘输入 可输入的步数分别为 3 6 9 12 15 18 21 24 和 27 步 且键盘具有键盘锁功能 当键盘上锁 时 步进电机不接受输入步数 也不会运转 只有当键盘锁打开并输入步数时 步进电机才开始工作 4 电机运转的时候有正转和反转指示灯指示 5 电机在运转过程中 如果过热 则电机停止运转 同时红色指示灯亮 同时警报响 本题目的关键之处是 如何生成控制步进电机的脉冲序列 1 2 选作项目 1 用单片机 AT89S52 为主芯片设计电路来控制步进电机 2 设三个自锁按键 分别作开关键盘 左转 右转控制 3 设 9 个触电按键分别控制输入的步数为 3 6 9 12 15 18 21 24 和 27 步 4 设置一片 LCD12864 显示器实时显示步进电机工作状态 并提示用户步 操作 单片机原理及应用课程设计报告 3 2 设计阐明 2 1 设计内容 用 ZY15MCU12BD 型综合单片机实验箱仿真实现控制步进电机集采问过程 2 2 设计要求 1 采用单片机控制一个三相单三拍的步进电机工作 步进电机的旋转方 向由正反转控制信号控制 步进电机的步数由键盘输入 可输入的步数分别为 3 6 9 12 15 18 21 24 和 27 步 且键盘具有键盘锁功能 当键盘上锁 时 步进电机不接受输入步数 也不会运转 只有当键盘锁打开并输入步数时 步进电机才开始工作 2 电机运转的时候有正转和反转指示灯指示 3 电机在运转过程中 如果过热 则电机停止运转 同时红色指示灯 亮 同时警报响 4 上机调试程序 5 写出设计报告 2 3 设备及工作环境 1 硬件 AT89S52 单片机一片 35BYJ412 步进电机一台 ISP 下载器 一个 LCD12864 显示器 温度传感器 18B20 芯片 2 软件 Windows 操纵系统 Keil C51 软件 单片机原理及应用课程设计报告 4 3 系统方案整体设计 3 1 设计思路 步进电机的不同驱动方式 都是在工作时 脉冲信号按一定顺序轮流加到 三相绕组上 从而实现不同的工作状态 由于通电顺序不同 其运行方式有三 相单三相拍 三相双三拍和三相单 双六拍三种 注意 上面 三相单三拍 中 的 三相 指定子有三相绕组 拍 是指定子绕组改变一次通电方式 三拍 表 示通电三次完成一个循环 三相双三拍 中的 双 是指同时有两相绕组通电 1 三相单三拍运行方式 下页图所示为反应式步进电动机工作原理图 若通过脉冲分配器输出的第一个脉冲使 A 相绕组通电 B C 相绕组不通电 在 A 相绕组通电后产生的磁场将使转子 上产生反应转矩 转子的 1 3 齿将与定 子磁极对齐 如果图 a 所示 第二个脉冲到来 使 B 相绕组通电 而 A C 相绕组不通电 B 相绕组产生的磁场将 使转子的 2 4 齿与 B 相磁极对齐 如 图 b 所示 与图 a 相比 转子逆时针方向转动了一个角度 第三个脉冲 到来后 是 C 相绕组通电 而 A B 相不通电 这时转子的 1 3 齿会与 C 组对 齐 转子的位置如图 c 所示 与图 b 比较 又逆时针转过了一个角度 图 反应式步进电机工作原理图 当脉冲不断到来时 通过分配器使定子的绕组按着 A 相 B 相 C 相 A 相 的规律不断地接通与断开 这时步进电动机的转子就连续不停地一步步 的逆时 针方向转动 如果改变步进电动机的转动方向 只要将定子各绕组通电 的顺序改为 A 相 C 相 B 相 A 相 转子转动方向即改为顺时针方向 单三拍分配方式时 步进电动机由 A 相通电转换到 B 相同点 步进电动机 的转子转过一个角度 称为一步 这时转子转过的角度是 30 度 步进电动机每 一步转过的角度称为步距角 2 三相双三拍运行方式三相双三拍运行方式 每次都有两个绕组通电 通电方式是 AB BC CA AB 如果通电顺序改为 AB CA BC AB 则步 进电机反转 双三拍分配方式时 步进电动机的步距角也是 30 度 3 三相单 双六拍运行方式 三相六拍分配方式就是每个周期内有六个 通电状态 这六中通电状态的顺序可以使 A AB B BC C CA A 或者 A CA C BC B AB A 六拍通电方式中 有一个时刻两个绕组同时通电 单片机原理及应用课程设计报告 5 这是转子齿的位置将位于通电的两相的中间位置 在三相六拍分配 方式下 转 子每一步转过的角度只是三相三拍方式下的一半 步距角是 15 度 单三拍运行的突出问题是每次只有一相绕组通电 在转换过程中 一相绕 组断电 另一相绕组通电 容易发生失步 另外单靠一相绕组通电吸引转子 稳定性不好 容易在平衡位置附近震荡 故用的较少 双三拍运行的特点是每次都有两相绕组通电 且在转换过程中始终有一相 绕组保持通电状态 因此工作稳定 且步距角与单三拍相同 六拍运行方式转换时始终有一相绕组通电 且步距角较小 故工作稳定性 好 但电源较复杂 实际应用较多 单片机原理及应用课程设计报告 6 4 硬件设计 4 1 系统硬件设计 4 1 1 最小单片机系统 5V 电源 给系统供电 复位电路 程序跑飞时复位电路可以使程序从新执行 相当于电脑的重启 晶振 给单片机运行提供时钟 比如电脑的 2 2GHz 频率 EA 接高电平 表示运行内部程序存储器下载的程序 P0 口接排阻 P0 口开漏结构 使用时一般接排阻拉高电平 4 1 2 键盘设计 该电路中采用独立键盘工作方式 共设有 12 个按键 分别提供 3 6 9 12 15 18 21 24 布局选择功能 键盘锁功能以及步进电机转动 单片机原理及应用课程设计报告 7 方向选择功能 其中有程序决定起作用 4 2 系统工作原理论述 该系统的工作核心 CPU 为 ATMEL 公司生产的 AT89S52 芯片将多种功能 的 8 位 CPU 与 FPEROM 快闪可编程 擦除只读存储器 结合在一个芯片上 是 一种低功耗 高性能的 CMOS 控制器 为很多嵌入式控制应用提供了非常灵活而 又价格适宜的方案 其性能价格比远高于同类芯片 它与 MCS 51 指令系统兼容 片内 FPEROM 允许对程序存储器在线重复编程 也可用常规的 EPROM 编程器编程 可循环写入 擦除 1000 次 89S52 内含 4KB 的 FPEROM 一般的 EEPROM 的字节擦 除时间和写入时间基本上均为 10ms 对于任一个实时控制系统来说 这样长的 时间是不可能在线修改程序的 CPU 为 Atmel 公司生产的 89C51 89C52 89C55 等 出厂所配晶振频率为 11 0592MH 每个机器周期为 1 085us 用户更换晶振以提高速度 存贮器为 64K 前 4K 8K20K 在 CPU 内部 其它程序在 EPR0M27512 中 数据存贮器为 32K 62256 地址为 8000 FFFFH O 扩展 8155 片内 RAM 地址 200O 20FFH 8155 命令口地址为 2100H A 口地址 21O1H B 口地址 2102H C 口地址 2103H T 低八位 2104H T 高八位 2105H 多路模拟开关的使用 IN0 P1 0F8H IN4 P1 0FCH IN1 P1 0F9H IN5 P1 OFDH IN2 P1 0FAH IN5 P1 0FEH IN3 P1 0FBH IN7 P1 0FFH 不掉电数据存贮器为 500EH 507FH 控制板 160 x1O9 mm 供电 5V300mA 12V100mA 12V100mA AT89C51 是一种低功耗 高性能的片内含有 4KB 快闪可编程 擦除只读存储 单片机原理及应用课程设计报告 8 器 FPEROM Flash Programmable and Eraseable Read Only Memory 的 8 位 CMOS 微控制器 使用高密度 非易失存储技术制造 并且与 80C51 引 脚和指令系统完全兼容 主要性能 与 MCS 51 微控制器产品系列兼容 片内有 4KB 可在线重复编程的快闪擦写存储器 引脚简介 整体介绍 该系统采用的芯片还有 DS18B20 温度传感器 ULN2003A 以及 MP28GA 四相 五线步进电机 并且步进电机在双八拍的方式下工作 步矩为 5 625 步进 电机的旋转方向由正反转控制信号控制 步进电机的步数由键盘输入 可通过 独立键盘 S1 S9 输入的步数分别为 3 6 9 12 15 18 21 24 和 27 步对 应的角度为 16 875 33 725 151 875 且键盘 S10 具有键盘锁功 能 当键盘上锁时 步进电机不接受输入步数 也不会运转 只有当键盘锁打 开 选择运转方向并且输入步数时 步进电机才开始工作 电机运转的时候有正转指示灯 D2 和反转指示灯 D3 指示 电机在运转过程中用温度传感器采集步进电机外表温度 可设置 如果过 热 则电机停止运转 同时红色指示灯亮 同时蜂鸣器警报响 单片机原理及应用课程设计报告 9 5 软件设计 5 1 分析论证 此步进电机控制电路设计与实现 主要采用了 ULN2003A 驱动芯片 温度 传感器芯片 DS18B20 芯片 独立键盘等 包含步进电机运行驱动 温度采集 主函数三大功效模块 5 1 1 步进电机运行驱动模块步进电机运行驱动模块 由于该系统中没有完全使用 I O 端口 所以采用了独立键盘的工作方式 系 统工作时 键盘控制的 I O 口处于高电平状态 当按键按下时触发低电平 驱 动程序实时监测并立即响应执行相应工作 5 1 2 温度采集模块 该模块的重要功效是对步进电机的外表采集温度 并且对已设定好的数值 进行比较 从而确定机身温度是否过高 正常时电机正常转动 当温度过高时 电机不再转动 并且蜂鸣器报警 红灯点亮 5 1 3 主函数模块 该模块重要功效是调动温度采集函数 步进电机函数中函数 实现模块化 编程 5 1 4 整体功效 AT89S52 芯片控制 ULN2003A 芯片驱动步进电机 扫描键盘输入运行状态 以及运转步数 当电机外表温度超过 32 是电机停止转动 并且报警 单片机原理及应用课程设计报告 10 5 2 程序流程图 主程序流程图如图所示 是 否 是 否 否 图 2 程序流程图 开始 初始化程序 判断步进电机温 度是否过高 锁键盘 确定输入步数 步进电机运转 电机高温 等待开键盘 报警 红灯点亮 步 进电机停转 单片机原理及应用课程设计报告 11 5 35 3 程序清单程序清单 步进电机驱动函数 BJDJ h ifndef BJDJ H define BJDJ H include include define uchar unsigned char define uint unsigned int sbit k1 P1 0 sbit k2 P1 1 sbit k3 P1 2 sbit k4 P1 3 sbit k5 P1 4 sbit k6 P1 5 sbit k7 P1 6 sbit k8 P1 7 sbit k9 P0 0 sbit k10 P0 1 sbit k11 P0 2 sbit k12 P0 3 void key scan void motor turn void motor stop endif BJDJ c include BJDJ h uchar code FFW 8 0 xfe 0 xfc 0 xfd 0 xf9 0 xfb 0 xf3 0 xf7 0 xf6 uchar code REV 8 0 xf6 0 xf7 0 xf3 0 xfb 0 xf9 0 xfd 0 xfc 0 xfe uchar rate extern uchar i 0 延时 void delay uchar x uchar i j for i 0 i x i 单片机原理及应用课程设计报告 12 for j 0 j 110 j 步进电机正转 void motor ffw uchar x uchar i j for j 0 j x j 转 1 n 圈 for i 0 i 8 i 一个周期转 45 度 P2 FFW i 取数据 delay 150 调节转速 步进电机反转 void motor rev uchar x uchar i j for j 0 j x j 转 1 n 圈 退出此循环程序 for i 0 i 8 i 一个周期转 45 度 P2 REV i 取数据 delay 150 调节转速 键盘扫描 void key scan i 0 if k1 0 delay 5 单片机原理及应用课程设计报告 13 if k1 0 i 24 if k2 0 delay 5 if k2 0 i 46 if k3 0 delay 5 if k3 0 i 72 if k4 0 delay 5 if k4 0 i 96 if k5 0 delay 5 if k5 0 i 120 if k6 0 delay 5 if k6 0 i 144 if k7 0 delay 5 if k7 0 i 168 if k8 0 delay 5 if k8 0 i 192 if k9 0 delay 5 if k9 0 i 216 单片机原理及应用课程设计报告 14 电机转动 void motor turn if k10 0 delay 5 if k10 0 P2 P2 if k11 0 if k11 0 if k12 0 if k12 0 void motor stop motor rev 0 温度传感器 18B20 驱动函数 DS18B20 h ifndef DS18B20 H define DS18B20 H include include define uint unsigned int define uchar unsigned char extern uchar T sbit DQ P2 7 温度输入口 sbit bell P0 4 sbit led1 P0 7 void delay2 uint t void ow reset void 单片机原理及应用课程设计报告 15 void write byte uchar val void read temp void work temp endif DS18B20 c include DS18B20 h extern uchar data temp data 2 0 x00 0 x00 uchar flag char presence 1 uchar T 11 微秒延时函数 void delay2 uint t for t 0 t 18B20 复位函数 void ow reset void presence 1 while presence while presence DQ 1 nop nop DQ 0 delay2 50 550us DQ 1 delay2 6 66us presence DQ presence 0 继续下一步 delay2 45 延时 500us presence DQ DQ 1 18B20 写命令函数 void write byte uchar val uchar i for i 8 i 0 i 单片机原理及应用课程设计报告 16 DQ 1 nop nop DQ 0 nop nop nop nop nop 5us DQ val 最低位移出 delay2 6 66us val val 2 右移一位 DQ 1 delay2 1 18B20 读 1 个字节函数 uchar read byte void uchar i uchar value 0 for i 8 i 0 i DQ 1 nop nop value 1 DQ 0 nop nop nop nop 4us DQ 1 nop nop nop nop 4us if DQ value 0 x80 delay2 6 66us DQ 1 return value 读出温度函数 void read temp ow reset 总线复位 write byte 0 xCC 发 Skip ROM 命令 write byte 0 xBE 发读命令 temp data 0 read byte 温度低 8 位 temp data 1 read byte 温度高 8 位 ow reset write byte 0 xCC Skip ROM write byte 0 x44 发转换命令 单片机原理及应用课程设计报告 17 温度数据处理函数 void work temp T temp data 0 led1 0 bell 1 delay2 1000 else led1 1 bell 0 motor turn 单片机原理及应用课程设计报告 18 6 调试过程及分析 编写好的源程序在 Keil 编译后呈现很多错误 这些错误有很多时平时的 实验碰到过的 例如 字母开头忘加 0 零和字母 O 弄混杂了 有些标号用了 几次 CJNE 写成了 CJNZ 等等 幸好这些错误在平时的实验中碰到了 所以改 错误很轻易 除了常见的错误外 还有几条错误时在前几次实验都没有出现过 如 AJMP 跳转指令跳不回指定的地位 是由于跳转的长度大于 AJMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论