用AT89S52单片机控制驱动电路设计一个基于PWM的直流电机调速控制系统。

之前看到你曾帮人回答过 不知道有答案么?我的邮箱是doushibeibidea@163.com如果有的话 麻烦了

#include "reg52.H"
#include "MyType.h"

//=============L298端口定义===============
sbit ENA = P3^6; //左轮驱动使能
sbit IN1 = P0^3; //左轮黑线(-)
sbit IN2 = P0^4; //左轮红线(+)
sbit IN3 = P0^5; //右轮红线(-)
sbit IN4 = P0^6; //右轮黑线(+)
sbit ENB = P3^7; //右轮驱动使能
//=============PWM================
#define PWM_COUST 100 //PWM细分等份100
uchar MOTO_speed1; //左边电机转速
uchar MOTO_speed2; //右边电机转速
uchar PWM_abs1; //左边电机取绝对值后占空比
uchar PWM_abs2; //左边电机取绝对值后占空比
uchar PWM_var1=20; //左边电机直走速度 (不同的电机,此参数不同)
uchar PWM_var2=20; //右边电机直走速度
uchar PWMAnd = 0; //PWM自增变量
/******************************************************************
名称:motor(char speed1,char speed2);
功能:同时调节电机的转速
参数:speed1:电机1的PWM值;speed2:电机2的PWM值
speed>0.正转;speed<0.反转(-100~100)
调用:extern int abs(int val); 取绝对值
返回:
/******************************************************************/
void motor(char speed1,char speed2)
{
//==============左边电机=============
if (speed1>0)
{
IN1 =0;IN2 =1;//正转
}
else if (speed1<0)
{
IN1 =1;IN2 =0;//反转
}

//==============右边电机=============
if (speed2>0)
{
IN3 =1;IN4 =0;//正转
}
else if (speed2<0)
{
IN3 =0;IN4 =1;//反转
}
}
/******************************************************************
名称:motor_PWM();
功能:PWM占空比输出
参数:无
调用:无
返回:无
/******************************************************************/
void motor_PWM ()
{
uchar PWM_abs1;
uchar PWM_abs2;

PWM_abs1=MOTO_speed1;
PWM_abs2=MOTO_speed2;

if (PWM_abs1>PWMAnd) ENA=1; //左边电机占空比输出
else ENA=0;
if (PWM_abs2>PWMAnd) ENB=1; //右边电机占空比输出
else ENB=0;
if (PWMAnd>=PWM_COUST) PWMAnd=0; //PWM计数清零
else PWMAnd+=1;
}

/******************************************************************
名称:void TIME_Init ();
功能:定时器初始化
指令:
调用:无
返回:无
/******************************************************************/
void TIME_Init ()
{
//=========定时器T2初始化 PWM==================
TCON = 0x00;
TMOD = 0x00;
RCAPH = 0xff; //定时0.1ms
RCAPL = 0x47;
TH0 = 0xff;
TL0 = 0x47;
ET0 = 1; //定时器2中断开
TR0 = 1; //PWM定时器关,PWM周期为10ms

}

/******************************************************************
名称:void PWM_Time2 () interrupt 5
功能:T2中断,PWM控制
参数:
调用:motor_PWM();//PWM占空比输出
返回:
/******************************************************************/
void PWM_Time2 () interrupt 5
{
TR2 = 0;
TF2 = 0;
ET2 = 0; //定时器0中断禁止

motor_PWM();//PWM占空比输出

ET2 = 1; //定时中断0开启
TR2 = 1;
}

main()
{
TIME_Init () ;
motor(50,50);//左右电机的转速都是50
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-01
由来要现成的,现成的别来这里要啊,有些文库或论坛上或许有的。
你有具体的问题可以问我,我尽力。不过很久没碰这些了,不知还记得多少来自:求助得到的回答
第1个回答  2011-01-01
我的课程设计题目就是那个,有的话给我点资料。cw0806@163.com
第2个回答  2010-12-25
楼主有电路吗?
第3个回答  2010-12-25
我有啊。。。。

如何用单片机AT89S52控制直流电机最好有实际电路图和程序
对基于MCS-51系列单片机实现直流电机调速系统进行研究和设计,能够在不同按钮的作用下分别实现电机的启动、停止、正转、反转、加速、减速控制;能够实现对直流电机的PWM的调速设计。增大占空比,增加转速,减小占空比,减小转速。通过按键的输入,对控制器发出指令,由此来输出电机的启停、正反转、以及加减速和...

关于at89s52单片机PWM控制直流电机
1、上拉电阻是为了保证输出可靠,这款单片机I\/O引脚在输出状态下是漏极开路,可以认为单片机内部有一个NPN三极管,基极受寄存器控制(如写0给高电平,写1给低电平),集电极接引脚,发射极接地。这样寄存器写0,基极给高,基射极正偏,三极管导通,引脚(集电极)出地电压;寄存器写1,基极给低,三极管...

用AT89S52怎么实现PWM信号的输出啊?
PWM输出经滤波后,形成一直流电压,驱动功率输出,可控制直流电机

求太阳能路灯电路图与接线图
1、设计中采用AT89S52单片机,并将其作为智能核心模块。外围电路主要包括太阳能电池电压采样模块、蓄电池电压采样模块、键盘电路模块、LED显示模块、充放电控制模块等。 2、图1是太阳能路灯控制器结构设计图。 3、太阳能路灯控制器选择ATMEL公司的8位单片机AT89S52为核心的智能控制模块,在整体上具有低功耗、性能高的特点。

基于单片机的风扇调速系统设计毕设会问什么问题及其回答?
回答:为了保证风扇转速的精确控制,我采用了PWM技术的原理。通过改变PWM信号的占空比,可以实现风扇转速的无级调节。在硬件设计方面,我选择了具有PWM输出功能的单片机,并设计了合理的驱动电路和PWM信号发生电路。在软件方面,我编写了相应的程序来控制PWM信号的占空比,从而实现对风扇转速的精确控制。问题四...

详解太阳能路灯电路图
LED驱动电路<\/:通过PWM信号的精确控制,LED的亮度随电压的增减而变化,实现节能且舒适的照明效果。整个电路的接线顺序至关重要:首先连接电池,接着是控制器,随后是太阳能板,最后是负载,务必确保正负极的正确连接,如同搭建一座稳固的光之桥梁。这个太阳能路灯电路图的每一个细节,都精心设计,旨在为...

急求,大学生电子设计竞赛控制类论文
驱动电路为贴片,使用面积较小,主要受18V电源和PWM控制脚的影响,综合考虑优先PWM,所以放在单片机右边。2.6综合线路 电源线是整个系统供电的主动脉,所以线宽为50mil,电路板采用覆铜,这样有利于提高电路的抗干扰性能。三、软件设计 3.1程序设计 根据技术指标的要求,本程序实现的功能包括通过按下POWER...

光伏发电系统中buck电路适用于哪些范围
该太阳能充电器由多晶硅太阳能电池将光能转换为电能,通过Buck变换器变换为稳定的直流输出,利用锂离子电池充当储能单元。应用AT89S52单片机设计充电电路的控制管理系统并通过调节PWM波形的占空比来控制电路输出。 关键词:太阳能电池;AT89S52单片机;智能充电;Buck变换器 引言 由于能源问题的日益紧张,引起人们...

基于单片机at89s52的课设C语言编程可以用单片机stc12c5608实现不?急...
现在网上有很多用51做的数控电源了,大部分都是PWM调制 只要有ADC功能 PWM功能的单片机都可以做 这篇文章可以参考一下,用的跟你的单片机型号差不多的,也是STC。http:\/\/www.eeworld.com.cn\/mcu\/2013\/0206\/article_12059_2.html

单片机实验箱的系统组成
可实现闭环调速) 17 8250实验模块 37 四相步进电机模块(带驱动电路) 18 16*16点阵实验模块 38 接触式IC卡实验模块(标配一块IC卡) 19 可调电压模块 39 标配超强DICE-Keil51仿真器(USB接口) 20 直流电源模块(提供+5V、+12V、-12V、GND) 40 配套附件实验接插线,...

相似回答