1、1 项目设计报告 项目名称: 直流电机的控制 课 程 名 称: 单片机原理与接口技术 学 院: 机 电 学 院 专 业: 机械工程及自动化 学 号: 2010090301331 2010090301323 姓 名: 刘亚东 宋吉鹏 成 绩: 2013 年 5 月 29 日 2 直流电机的控制 1、 设计任务与要求 1.1 设计任务: 设计基于 51 单片机的直流电机测控系统。 基本功能:可 6 键控制直流电机的启动 /停止、加速 /减速和正转 /反转。 扩展功能:可在 LED 显示器上实时显示直流电机的运行状态。 1.2 设计要求: 基本功能: ( 1)利用 2 按键控制直流电机的启停与停止。
2、系统上电后,等待启动命令;按“启动”键后,直流电机开始正转(默认转向和转速);在转动过程中,按“停止”键后直流电机停止转动,程序回到上电状态。要求按键作消抖处理。 ( 2)利用 2 按键改变直流电 机的转动方向,使其在转动过程中按“正转”键时直流电机正转;按“反转”键时直流电机反转,要求按键作消抖处理。 ( 3)利用 PWM 控制直流电机的转速,通过改变 PWM 信号的占空比可改变直流电机的转速。设 PWM 信号的周期为 8ms, PWM 的占空比可在 8ms 的 1/16 15/16 范围内选择。利用 2 按键设定 PWM 的占空比,改变直流电机的转速,使其在转动过程中按“加速”键时 PWM
3、 的占空比增加 1/16,按“减速”键时 PWM 的占空比减少1/16。占空比默认值为 8/16。 扩展功能: ( 1) 电机运行后,在 LED 显示器上实时显示直流电机的 占空比值。 1.3 材料清单 序号 数量 直流电机的控制 规格 1 1 直流电机 2 1 直流电机驱动器 3 6 独立式按键 4 1 128*64 带汉字库 点阵 LCD 显示器 ST7920 3 2、总体方案设计 对基于 MCS-51 系列单片机实现直流电机调速系统进行研究和设计,能够在不同按钮的作用下分别实现电机的启动、停止、正转、反转、加速、减速控制;能够实现对直流电机的 PWM 的调速设计。增大占空比,增加转速,减
4、小占空比,减小转速。 通过按键的输入,对 控制器发出指令,由此来输出电机的启停、正反转、以及加减速和 LED 的显示。 3、硬件设计 3.1 各单元模块功能及电路设计,绘制电路原理图; 1)按键设计 该系统中运用到六个控制按钮,即正转、反转、启动、停止、加速、减速,由于按钮较少,所以采用独立键电路,这种按键电路的按键结构相对行列式按键电路更简单,更使人易懂。 2)显示设计 使用 LED 实时显示直流电机的占空比, 方法简单,容易控制,成本低。 按键 控制器 电机及驱动 LED 显示器 4 3.2 电路参数的计算及元器件的选择。 电路晶振频率为 12MHz 4、软件设计 4.1 阐述程序设计思路
5、 及程序架构,详细说明各程序功能; 本项目主要任务是完成对直流电机的正反转,启停,以及调速控制,应用的方法是 PWM脉冲调速。 在主程序里,首先对计时器初值,计时器控制寄存器,输出口,PWM控制计算,正反转标志位进行初始化设置。然后跳入 LED显示子程序,根据 PWM 控制相关数据在 LED 上显示占空比。返回后跳入按键扫面子程序,根据 P3 口的按键状态,进入所对应的按键控制标志位,经延时消抖实现相关控制,然后返回子程序。 启动定时器后,主程序循环调用按 键状态扫描子程序和 LED 显5 示子程序,等待定时器中断。 当定时器 T0 溢出,进入 T0 中断程序,进行占空比计数,利用占空比的计算
6、进行高电平输出。如果高电平输出未完,返回主程序,继续步骤 .如果过高电平输出完毕,则关闭定时器 T0,打开定时器T1.返回主程序,继续步骤 。 当定时器 T1 溢出,进入 T1 中断程序,控制低电平输出进行剩余占空比计数,利用占空比的数值判断进行低电平输出。如果低电平输出未 完,返回主程序,继续步骤 。如果低电平输出完毕,则关闭定时器 T1,打开定时器 T0。返回主程序,继续步骤 。 4.1.2 直流电机 PWM调速原理 方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个 us。 方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有
7、一定的误差。,故采用方案一。 本项目应用两个定时器定时,定时器 T0 和定时器 T1 分别对高电平和低电平进行定时。 4.1.3 利用两个 定时器实现 PWM脉冲调款 对 R1设初值为 16,41H 设初值 8,在高电平计时中, T0 每中断一次, R1 减 1,并与 41H比较,不等则返回主程序,继续 T0 计时,相等则关闭定时器 T0,打开定时器 T1 返回子程序,完成高电平定时,并等待 T1 中断。利用 T1 中断,每中断一次,对剩余的 R1 里的数进行减 1,并与 0 比较,不等则返回主程序,继续 T1 计时,相等则关闭定时器 T1,打开定时器 T0,并对 R1重新赋初值 16 完成低
8、电平定时。 如此循环, 便 实现高电平与低电平的一定比例,完成占空比的定时。 4.1.4 LED 显示程序 6 因为占空比 为两位数,分为个位和十位,本程序分别对各位和十位进行输出数字。 首先,利用 41H 的值调用表 1 的个位字形,并输出 P2 口,然后向P1 口输出 #01H,只开放个位字位。 然后,利用 41H 的值调用表 2 的十位字形,并输出 P2 口,然后向P1 口输出 #02H,只开放十位字位。 因主程序大部分时间都在调用显示程序和按键扫描程序,所以就可以频率很高的向 LED 输出占空比数值,利用人眼的滞留效应,就可使展示出占空比的 LED的显示。 4.1.5 延时防抖程序 利
9、用软件延时,进行延时,对 R6 设置初值 250,对 R7 设置初值24,并循 环进行对 R6 和 R7 的减 1 比较,直到完成 24*250 次扫描程序,完成延时,这段时间足够完成按钮的按下并放开,在按键程序里检测按键是否放下,如没放下则一直在按键程序循环,直到放下按钮继续运行按键程序。 4.2 程序中重要参数(控制字、定时器初值等)的计算及说明; 定时器基本时间: t=500ms 计算计数初值: X=216-0.5*10-3*12*106/12=65036=0FE0CH 定时器初值为: TH1=0FEH TL1=0CH 4.3 程序流程图。 7 图 1.主程 序流程 图 2.LED显示程
10、序流程图 8 图 3.T0计时器流程图 9 图 4.T1计时器流程图 5、系统调试及结果 5.1 列出 调试内容、调试方法以及具体步骤; 调试内容及具体操作控制方法如下: 1、当按电机启动按键时,直流电机根据制定默认状态开始转动; 2、当按电机停止按键时,直流电机停止转动; 3、当按电机加速按键时,直流电机 PWM 的占空比增加 1/16继续转动; 4、当按电机减速按键时 ,直流电机 PWM 的占空比减少 1/16继续转动; 5、当按电机反转按键时,直流电机反转; 6、当按电机正转按键时,直流电机正转; 5.2 说明调试中出现的问题及解决方法 。 ( 1)第一次完成的设计程序不能进行停止操作。
11、 10 解决办法:通过单步调试,跟踪 P0 口的输出值,发现按下停止按钮后 P0 口没变化,证明按下停止按钮后并没有改变 P0 的清零,在停止程序里加上对 P0 口的清零,问题解决。 ( 2) 程序只能进行初始的转向,不能进行正反转的切换。 解决办法:通过单步调试, 跟踪正反转标志位的变化,发现 ”SETB 30H”并没有对 30H 置 1,通过网上询问,知道了可以通过将位地址赋给制定符号,可以解决这个问题,于是对 30H 位地址赋给制定符号“ FLAG” ,再进行对“ FLAG”置 1,问题解决。 ( 3)程序无法完成加减速控制。( T0 与 T1 共用一个中断子程序返回命令) 解决办法:通
12、过单步调试,跟踪程序扫描位置,发现当完成 1 次高电平计时,直接进入低电平计时,并重复利用 T1 进行低电平计时控制。解决办法, T0 和 T1 分别加一个中断子程序返回指令,问题解决。 ( 4) 程序在输入正确的情况下只能进行反向旋转,不能正向旋转。 解决办法:通过单步调试,发现当程序第一次 T0 定时完成后,进行高电平输出时,判断完成正转程序后,调用返回指令直接跳到了翻转程序,当时利用的是 ”ACALL T0_END”,通过查找 ACALL 指令的功能发现,调用返回时直接返回的是 ”ACALL”的下一条,即逆转程序,如此循环,则不能输出正转。将 ”ACALL”换成 ”SJMP”后问题解决。 ( 5) 在 LED 输出时,加速按键下 LED 数值减小。 解决办法:通过跟踪调用表格进行个位和十位,发现当占空比为9 时,显示为 7,当占空比为 10 时,占空比为 6,减速情况下输 出亦是相反。于是仔细考虑一下, 41H 调用表格方式不应该按正常顺序从 1至 15 的调用字形。应该是逆向的设置表格。于是根据 41H 与占空比的关系对表 1 和表 2 进行了字形的顺序重新安排,问题解决。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。