当前位置:首页 > 基于AT89S52单片机的电机控制C语言程序设计 - 图文
第一章:设计任务
任务:了解电机的转动原理,能够对直流电机进行简单的控制;能够设计和使用简单的自动化闭环系统;提高多模块硬软件的综合应用能力。
功能主要包括: 1) 直流电机的正转; 2) 直流电机的反转; 3) 直流电机的加速; 4) 直流电机的减速; 5) 直流电机的停止;
6) 直流电机的转速在数码管上显示;
第二章:总体设计方案
总体设计方案的硬件部分详细框图如下图所示:
数码管显示模块 独立按键模块 AT89S52 基本模块 霍尔元件模块 电机驱动模块 第三章 系统的硬件介绍
一、电机驱动芯片L298N
L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。内
含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。 特点:
1、具有信号指示; 2、转速可调; 3、抗干扰能力强;
4、具有过电压和过电流保护; 5、可单独控制两台直流电机; 6、可单独控制一台步进电机; 7、PWM脉宽平滑调速; 8、可实现正反转; 9、采用光电隔离
L298N的输入输出逻辑关系表 ENA(B) H H H L
电机转速的控制主要是运用PWM波形输出实现。由逻辑关系表可知,我们可以用PWM波形控制ENA(B)端或者是IN1(IN3)和IN2(IN4)。
以ENA端控制为例,当输出为高电平时电机转动,输出为低电平时电机停止。由此我们可以改变高低电平的占空比,进而实现电机转速的调整。
注意:高电平和低电平的时间不能太长,否则电机不能够持续转动,启动时高电平时间也不能太短,否则电机启动较慢。
二、霍尔元件
霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。
IN1(IN3) H L IN2(IN4) L H 电机 正转 反转 快速停止 停止 IN1(IN3)与IN2(IN4)电平相同 X X
CS3020外形图
使用霍尔传感器获得脉冲信号,其机械结构也可以做得较为简单,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。
三、数码管显示模块:
数码管显示模块采用的是静态数码管。
第四章 系统框图
开始 初始化 设置定时器、计数器工作方式 设置转动方式 Y 设置转动方式 N 显示转速 中断入口开始 重置定时常数
计时一秒 N Y 统计转速 〈 〉 与设定转速比较 = 加速 保持 减速 中断返回 第五章 程序
#include
#define uchar unsigned char #define uint unsigned int sbit IN1=P1^0; sbit IN2=P1^1; sbit ENA=P1^2;
sbit K1=P3^0; //正转 sbit K2=P3^1; //反转 sbit K3=P3^2; //加速
共分享92篇相关文档