基于单片机控制的直流电机调速系统设计内容摘要:

制的直流电机调速 系统 设计 9 图 35 LCD1602 正反面 1602LCD 的特性  +5V 电压,对比度可调  内含复位电路  提供各 种控制命令 ,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能  有 80 字节显示数据存储器 DDRAM  内建有 160 个 5X7 点阵的字型的字符发生器 CGROM  8 个可由用户自定义的 5X7 的字符发生器 CGRAM 本设计采用 16X2双行显示模式,不显光标。 直流电机 本设计使用通用 24V 直流电机,最高转速 600n/min 电路设计 CPU 单元原理图 如 图 35: P101P112P123P134P145P156P167P178RST9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL118XTAL019GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE30EA31P0732P0633P0534P0435P0336P0237P0138P0039VCC40CPU单片机123P1控制端子VCC12345678161514131211109R112345678161514131211109RVCCVCC123P2编码器C1C212345678161514131211109R12YXTAL12345678161514131211109R3GND 图 36 CPU 控制器原理图 基于单片机控制的直流电机调速 系统 设计 10 单片机使用 5V 电源供电,晶振为 12MHz。 双列 24 个引脚分别引出并接到 排针上方便引出接线。 由原理图可知,单片机 所有 I/O引脚接上拉电阻,所以 接受信号低电平有效,可有效避免 干扰 输入。 按键单元 原理图 如 图 36: ,本设计使用 SW8, SW12, SW16, SW20, SW9, SW13, SW17, SW21,分别对应按键为 SET, 左移, EXIT,加 1,右移光标,减 1 键。 当按键按下时,则向对应端口输入低电平信号。 图 37 4*4 矩阵键盘 L298N 驱动部分 原理图 如 图 37: EN A6EN B11IN15IN27IN310IN412OUT12OUT23OUT313OUT414ISEN A1ISEN B15VS4VSS9GND8U1L298N1KR11KR21KR31KR41KR51KR6C1POWERD11N4044D21N4044D31N4044D41N4044D51N4044D61N4044D71N4044D81N4044POWER1234P1电机接线端子100pFC2cap100pFC3cap100pFC4cap100pFC5cap123P1控制端子123P2控制端子 图 38 L298N 驱动原理图 电路中 为 保护 L298N 芯片 不被 电机产生的 感应电压 击穿 或烧坏,以 并联 的方式接入八个续流二极管到电机 两端,并与其形成 回路 ,使其产生的高 电动势 在回路以续 电流 方式消耗,从而起到保护电路中的 L298N 芯片 不被损坏。 该驱动模块可同时驱动两个直流电机进行不同动作。 本设计只用其中一路。 从 P1 端输入单片机控制信号,电机接在电机接线端子 2端口。 该模块可实现电机正反转及调速;启动性能好,启动转矩大;工作电压可达到 36V, 4A。 其功能对应如 下表 基于单片机控制的直流电机调速 系统 设计 11 信号 电机运行状态 1高电平, 2高 电平, 3低电平 正转 1低电平, 2高 电平, 3高电平 反转 1高电平, 2低 电平, 3低电平 不转 1低电平, 2低 电平, 3高电平 不转 液晶接口电路 如 图 38: 图 39 LCD1602 原理图 液晶显示屏显示两行,上行显示设定转速,下行显示实时转速。 电路板焊接 本设计单片机与 L298N 驱动部分需焊接, LCD1602 与单片机采用插槽插线连接 ,电机用导线接到驱动的电机接线端子,编码器使用插线插入 CPU 板的插槽上。 连接个单元,用万用表测试 各个连线是否有短路,虚焊,断路情况,即使排除。 单片机程序编写及烧录 程序设计软件简介 本设计使用的编程语言为单片机汇编语言,编译软件为 Keil uVision3 ( 1) Keil uVision3 简介 KeilSoftware 公司推出的 uVision3 是一款可用于多种 8051MCU 的集成开发环境 (IDE),该 IDE 同时也是 PK51 及其它开发套件的一个重要组件。 除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外, uVision3 还提供了一个 基于单片机控制的直流电机调速 系统 设计 12 配置向导功能,加速了启动代码和配置文件的 生成。 此外其内置的仿真器可模拟目标 MCU,包括指令集、片上外围设备及外部信号等。 uVision3 提供逻辑分析器,可监控基于 MCUI、 O引脚和外设状态变化下的程序变量。 uVision3 提供对多种最新的 8051 类微处理器的支持,包括 AnalogDevices的 ADuC83x 和 ADuC84x,以及 Infineon 的 XC866 等。 为最新汉化版,全中文环境,支持 PA51 中文单片机汇编,可实现全中文编程、动态子程序库调用、自动汉字字模生成、自动图像数据生成等诸多强大功能。 ( 2) Keil uVision3 使用 Keil uVision3 创建一个工程的一般步骤为 (假如电脑上已经安装 Keil uVision3 软件,如尚未安装,则按安装说明正确安装) : 第一步: 双击打开 Keil uVision3 开发软件; 第二步: 单击菜单栏“ Project”下拉菜单找到“ New Project”,在对话框中输入项目名 “基于单片机的直流电机调速系统 ” 及要存储的路径; 第三步:选择单片机类型,本设计使用 STC89C52RC(如找不到则需另外下载STC 类型单片机的补丁); 第四步:单击“ File”下拉菜单找到“ New” ,新建文本框, 输入单片机汇编语言,输入完毕后保存文件 ,命名为基于单片机的直流电机调速系统程序 ,格式为 ASM; 第五步:鼠标右击“ Project Workspace ”区域的“ Source Group 1”,在弹出的菜单中选择 Add Files To Group ‘ Source Group 1’ ,选中上面一步保存的文件,确定; 第六步:鼠标右击“ Project Workspace ”区域的“ Target 1” 在弹出的菜单中选中 “ Option For Target 1” ,在弹出的对话框中将“ Target” 中“ Xtal( MHz)”改为 12MHz,将“ Output”中 “ Create Executable”栏“ Create HEX Fi”勾选,以便将编写的程序转换成单片机的机器语言,方便将程序烧写入单片机中 第七步:单击“ Project”找到“ Build Target”,或者直接按下 F7 键,编译程序,会产生一个以项目名命名的格式为 HEX 的文件,此文件是单片机可以识别执行的文件。 基于单片机控制的直流调速系统 程序 设计 本程序使用的编程语言为 C51,是 C 语言在 8051 系列单片机上的实现,使用特定的编译器,抛弃 C语 言中不适合 51 的一些特性,而加入对 51 单片机的“本地 基于单片机控制的直流电机调速 系统 设计 13 化”适应。 程序流程图如 图 310: 初 始 化 系 统 变 量 ;给 定 定 时 器 初 值 并启 动 中 断。 初 始 化 屏 显扫 描 设 定 转 速 并 显示 更 改 , 若 无 修 改则 跳 过 此 步比 较 设 定 转 速 与 实时 转 速 得 出 差 值中 断 扫 描 由 编 码 器传 送 的 脉 冲 计 算 实时 转 速 并 屏 显 此 时转 速中 断 读 取 转 速 差值 , 调 节 固 定 频 率脉 冲 的 占 空 比 图 310 程序流程图 程序说明 如下: 启动调速系统, CPU 内部初始化系统全局变量并对相应定时器计数器赋值。 初始化屏显,使 LCD1602 显示为两行,第一行为“ SET_N: 000 n/M”即设定速度为000 转 /分钟,第二行显示“ NOW_N: 000 n/M”即实时转速为 000 转每分钟。 进入循环扫描模式。 扫描设定速度,如设定速度改变则改变屏显显示当前设定转速 ,如当前屏显的设定转速为 0 n/min,想要设定转速为 311 n/MIN,则,首先按下 SET 键,进入按键输入模式,单击↑按钮增加百位数数值,单击三次则屏显设定转速变为“ 300” ; 单击→按钮一次,右移一位到十位,单击↑按钮一次,则屏显设定转速变为“ 310” ; 再次单击→一次,右移一位到个位,单击↑一次,则屏显设定转速变为“ 311”。 如不按下 SET 键则跳过屏显设定转速变更,进入实时转速扫描。 本设计使用定时器 0 作为脉冲输入采集端口,采集旋转编码器输出的脉冲信号;使用定时器 1 作为中端源,每过 250 s 系统内部的一个计数器就会加 1,同时判断此计数器是否等于 1000,等于一千则到 ,采集定时器 0此时段接收。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。