单片机课程设计报告完美版_第1页
单片机课程设计报告完美版_第2页
单片机课程设计报告完美版_第3页
单片机课程设计报告完美版_第4页
单片机课程设计报告完美版_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

江南大学 物联网工程学院 课程设计报告 课程名称 单片机原理及应用 设计题目 基于单片机的步进电机控制器设计 班 级 姓 名 学 号 指导教师 评 分 2013 年 6 月 30 日 目录目录 设计报告要求设计报告要求 1 设计目的 2 设计要求 3 仪器设备 4 硬件线路图及主要芯片说明 5 系统工作原理 6 程序框图 7 程序清单 8 设计体会 9 参考文献 设计目的设计目的 通过具体小型测试系统设计 实践单片机系统设计及调试的全过程 以 加深对单片机内部结构 功能和指令系统的理解 并进一步学习单片机开 发系统的应用及一些外围芯片的接口和编程方法 初步掌握单片机系统的 硬 软件设计技术及调试技巧 设计要求设计要求 1 电机转速可以平稳控制 2 通过键盘和显示器可以设置电机的转速 3 显示电机的速度趋势 仪器设备仪器设备 1 STC89C51 单片机芯片 一片 2 ULN2003 驱动芯片 一片 3 MT03641BR 八位共阳数码管芯片 一片 4 8550PNP 四个 5 不同阻值电阻 若干 6 30pF 电容 两个 7 12M 晶振 一个 8 按键 四个 9 28BYJ 48 电机 一个 10 5V 电源 一个 硬件线路图及主要芯片说明硬件线路图及主要芯片说明 28BYJ 48 四相八拍步进电机四相八拍步进电机 步进电机是一种将电脉冲转化为角位移的执行机构 通俗一点讲 当步 进驱动器接收到 一个脉冲信号 它就驱动步进电机按设定的方向转动一个 固定的角度 及步进角 您可以通过控制脉冲个来控制角位移量 从而达 到准确定位的 主要技术参数主要技术参数 相数 四相 电压 5VDC 电流 92mA 电阻 130 步距角 5 625 空载牵出频率 800pps 空载牵入频率 500pps 减速比 1 64 牵入转矩 78 4mN m ULN2003 ULN2003 是大电流驱动阵列 多用于单片机 智能仪表 PLC 数字量输出 卡等控制电路中 可直接驱动继电器等负载 输入 5VTTL 电平 输出可达 500mA 50V ULN2003 是高耐压 大电流达林顿陈列 由七个硅 NPN 达林 顿管组成 该电路的特点如下 ULN2003 的每一对达林顿都串联一个 2 7K 的基极电阻 在 5V 的工作电压下它能与 TTL 和 CMOS 电路 直接相连 可以 直接处理原先需要标准逻辑缓冲器来处理的数据 ULN2003 是高压大电流 达林顿晶体管 阵列系列产品 具有电流增益高 工作电压高 温度范围宽 带负载能力强等特点 适应于各类要求高速大功率驱动的系统 ULN2003芯片引脚图 引脚 1 CPU 脉冲输入端 端口对应一个信号输出端 引脚 2 CPU 脉冲输入端 引脚 3 CPU 脉冲输入端 引脚 4 CPU 脉冲输入端 引脚 5 CPU 脉冲输入端 引脚 6 CPU 脉冲输入端 引脚 7 CPU 脉冲输入端 引脚 8 接地 引脚 9 该脚是内部 7 个续流二极管负极的公共端 各二极管的正极分别 接各达林顿管的集电极 用于感性负载时 该脚接负载电源正极 实现续 流作用 如果该脚接地 实际上就是达林顿管的集电极对地接通 引脚 10 脉冲信号输出端 对应 7 脚信号输入端 引脚11 脉冲信号输出端 对应6脚信号输 入端 引脚12 脉冲信号输出端 对应5脚信号输入端 引脚13 脉冲信号输出端 对应4脚信号输入端 引脚14 脉冲信号输出端 对应3脚信号输入端 引脚15 脉冲信号输出端 对应2脚信号输入端 引脚16 脉冲信号输出端 对应1脚信号输入端 ULN2003 的输出端可达 500mA 50V 输出端的二极管学名续流二极管 英文 freewheel diode 如果 ULN2003 的达林顿管输入端输入低电平使其截 止 其驱动的元件是感性元件 则电流不能突变 此时会产生一个高压 如果没有二极管 达林顿管会被击穿 所以这个二极管主要起保护作用 由于 ULN2003 是集电极开路输出 为了让这个二极管起到续流作用 必须 将 COM 引脚 pin9 接在负载的供电电源上 只有这样才能够形成续流回 路 ULN2003 是一个非门电路 包含 7 个单元 单独每个单元驱动电流最大可 达 350mA 9 脚可以悬空 STC89C51 89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压 高性 能 CMOS8 位微处理器 俗称单片机 单片机的可擦除只读存储器可以反复 擦除 100 次 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工 业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪烁 存储器组合在单个芯片中 ATMEL 的 89C51 是一种高效微控制器 89C 单片 机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 主要特性如下 1 增强型 1T 流水线 精简指令集结构 8051 CPU 2 工作电压 3 4V 5 5V 5V 单片机 2 0V 3 8V 3V 单片机 3 工作频率范围 0 35 MHz 相当于普通 8051 的 0 420MHz 实 际工作频率可达 48MHz 4 用户应用程序空间 12K 10K 8K 6K 4K 2K 字节 5 片上集成 512 字节 RAM 6 通用 I O 口 27 23 个 复位后为 准双向口 弱上拉 普通 8051 传统 I O 口 可设置成四种模式 准双向口 弱上拉 推挽 强上拉 仅为输入 高阻 开漏 每个 I O 口驱动能力均可达到 20mA 但整个芯片最大不得超过 55mA 7 ISP 在系统可编程 IAP 在应用可编程 无需专用编程器 可通过串口 P3 0 P3 1 直接下载用户程序 数秒即可完成一片 8 EEPROM 功能 9 看门狗 10 内部集成 MAX810 专用复位电路 外部晶体 20M 以下时 可 省外部复位电路 11 时钟源 外部高精度晶体 时钟 内部 R C 振荡器 用户在下 载用户程序时 可选择是使用内部 R C 振荡器还是外部晶体 时钟 常温 下内部 R C 振荡器频率为 5 2MHz 6 8MHz 精度要求不高时 可选 择使用内部时钟 因为有温漂 请选 4MHz 8MHz 12 有 2 个 16 位定时器 计数器 13 外部中断 2 路 下降沿中断或低电平触发中断 Power Down 模 式可由外部中断低电平触发中断方式唤醒 14 PWM 4 路 P C A 可编程计数器阵列 也可用来再实现 4 个定时器或 4 个外部中断 上升沿中断 下降沿中断均可支持 15 STC89Cc516AD 具有 ADC 功能 10 位精度 ADC 共 8 路 16 通用异步串行口 UART 17 SPI 同步通信口 主模式 从模式 18 工作温度范围 0 75 40 85 19 封装 PDIP 28 STC89C51 芯片引脚图 MT03641BR 八位共阳数码管八位共阳数码管 主要参数 工作电压 2V 工作电流 5 10mA 数码管显示原理 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一 动态 驱动是将所有数码管的 8 个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共极 COM 增加位元选通控制电路 位元选通由各 自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同 的字形码 但究竟是那个数码管会显示出字形 取决于单片机对位元选通 COM 端电路的控制 所以我们只要将需要显示的数码管的选通控制打开 该位元就显示出字形 没有选通的数码管就不会亮 透过分时轮流控制各 个 LED 数码管的 COM 端 就使各个数码管轮流受控显示 这就是动态驱 动 在轮流显示过程中 每位元数码管的点亮时间为 1 2ms 由于人的视 觉暂留现象及发光二极体的余辉效应 尽管实际上各位数码管并非同时点 亮 但只要扫描的速度足够快 给人的印象就是一组稳定的显示资料 不 会有闪烁感 动态显示的效果和静态显示是一样的 能够节省大量的 I O 口 而且功耗更低 段码表 根据表中所给的段码 只需要送入相应的数码管即可 硬件线路图硬件线路图 0123456789 0 xc00 xf90 xa40 xb00 x990 x920 x820 xf80 x800 x90 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 RST 9 P3 0 10 P3 1 11 P3 2 12 P3 3 13 P3 4 14 P3 5 15 P3 6 16 P3 7 17 XTAL2 18 XTAL1 19 VSS 20 P2 0 21 P2 1 22 P2 2 23 P2 3 24 P2 4 25 P2 5 26 P2 6 27 P2 7 28 PSEN 29 ALE 30 EA 31 P0 7 32 P0 6 33 P0 5 34 P0 4 35 P0 3 36 P0 2 37 P0 1 38 P0 0 39 VCC 40 U1 STC89C52 1H 12 A 11 F 10 2H 9 3H 8 B 7 E 1 D 2 DP 3 4H 6 G 5 C 4 U2 3641 VCC VCC C1 30pF C2 30pF Y1 12M Q3 PNP Q1 PNP Q2 PNP Q4 PNP R3 150R4 150 R5 150R6 150 R7 150 R8 150 R2 150 R1 150 R14 4 7K R15 4 7K R13 4 7K R16 4 7K 1 2 3 4 5 6 7 8 9 U4 10K K1 SW PB K2 SW PB VCC A B C D E F G DP R9 1K R10 1K R12 1K R11 1K 4 3 2 1 1234 VCC 1H2H3H4H 1H AF2H3H B E DCG 4HDP 1R 1 Q1 16 2R 2 Q2 15 3R 3 Q3 14 4R 4 Q4 13 5R 5 Q5 12 6R 6 Q6 11 7R 7 Q7 10 GND 8 VCC 9 U3 ULN2003 VCC VCC 1 2 3 4 5 U5 STEP MTR VCC M4 M3 M2 M1 M1 M2 M3 M4 1R 2R 3R 4R 1R 2R 3R 4R K3 SW PB K4 SW PB 1 2 U6 CON2 VCC 系系统工作原理统工作原理 本程序包括按键处理程序 显示处理程序 中断处理程序 数据处理 程序四个主要部分 按键处理程序按键处理程序 按键处理安排在主程序当中 使其处于不断检测状态 当有按键按下能够 及时对其进行相应的处理 同时 对于按键还应该进行消抖处理 避免系 统误动作 中断处理程序中断处理程序 中断程序中安排对 P1 口赋值及对定时器重新装入初值 每次进入中断 程序时 先判断是否执行反转 如是 则送反转编码 否则 送正转编码 显示处理程序显示处理程序 显示程序则通过对相应数码管的通断 然后送段码 以这种方式来控 制其动态显示 同时需要主要每个数码管都应该延时亮一段时间 并且要 对其消隐 以获得较好的显示效果 数据处理程序数据处理程序 通过对数据进行处理来获得电机的转速 可以先计算出 1ms 时电机的 速度 然后通过改变时间间隔来计算电机的转速 STC89C51 数据处理 中断 处理 按键处理 显示 系统基本框架 根据以上四个主要部分来把整个系统划分成相应模块 有利于提高系统的 抗干扰能力 能较好的保证系统运行的可靠 程序框图程序框图 初始化 电机运转 上电 按 键 按 下 否 是 判 断 加 速 停止 处 理 中 断 处 理 定时时间到 正 常 运 转 减 速 显 示 调用 中断返回 等 待 按 键 相应 动作 作用 电机 程序清单程序清单 本程序采用 STC89C51 单片机 以 3641 八位共阳数码管显示步进 电机的转速 趋势 步进电机采用 28BYJ 48DC5V 型号 采用四相八拍方式 采用 ULN2003 驱 动 数码管则直接采用 PNP 三极管驱动 电机的调节则通过按键控制 include 头文件 define uint unsigned int 宏定义 define uchar unsigned char 宏定义 uchar code ZF 8 0 x01 0 x03 0 x02 0 x06 0 x04 0 x0c 0 x08 0 x09 正转编 码表 uchar code FF 8 0 x09 0 x08 0 x0c 0 x04 0 x06 0 x02 0 x03 0 x01 反转编 码表 uchar code SM 10 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 数码表 sbit k1 P3 2 定义 K1 为启动 停止按键 sbit k2 P3 3 定义 K2 为加速按键 sbit k3 P3 4 定义 K3 为减速按键 sbit k4 P3 5 定义 K4 为正 反转按键 uchar j 0 uint time 12000 time 为每两拍之间的间隔时间 uint temp2 uchar temp1 h w p q f 1ms 延时函数 12M 晶振下 void delay uchar z uchar s v for s 0 s z s for v 0 v 125 v 一个 for 循环 8 个机器周期 125 8 1us 1ms 显示函数 void display uchar a uchar b uchar c uchar d if f 2 P2 0 xfe P0 0 xbf f 为奇数时代表反转 则第一个数码管显示 否则 不显示 delay 1 P0 0 xff 消隐 P2 0 xfd P0 SM a 显示十位 delay 1 P0 0 xff 消隐 P2 0 xfb P0 SM b 显示个位 带小数点 delay 1 P0 0 xff 消隐 P2 0 xf7 P0 SM c 显示小数点后第一位小数 delay 1 P0 0 xff 消隐 P2 0 xef P0 SM d 显示小数点后第二位小数 delay 1 P0 0 xff 消隐 数值处理函数 void dispose temp1 14648 time h temp1 10 十位 w temp1 10 个位 temp2 14648 time p temp2 1000 小数点后第一位小数 q temp2 1000 10 1000 小数点后第二位小数 主函数 void main uchar k TMOD 0 x01 定义定时器 0 工作方式 1 EA 1 开总中断 ET0 1 开定时器 0 中断 TH0 65536 time 256 TL0 65536 time 256 装定时器初值 TR0 1 开定时器 0 while 1 if k1 0 delay 5 延时消抖 if k1 0 TR0 TR0 k 启动 停止 while k1 等待按键释放 if k2 0 delay 5 延时消抖 if k2 0 time time 150 加速 while k2 等待按键释放 if k3 0 delay 5 延时消抖 if k3 0 time time 150 减速 while k3 等待按键释放 if k4 0 delay 5 延时消抖 if k4 0 f 正 反转 while k4 等待按键释放 dispose if k 2 display 0 0 0 0 停止时显示 00 00 else display h w p q 正常运转时调用显示函数 定时器 0 中断处理函数 void timer0 interrupt 1 if f 2 P1

温馨提示

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

评论

0/150

提交评论