单片机直流电机控制实训报告.docx

上传人:b****6 文档编号:6095194 上传时间:2023-01-03 格式:DOCX 页数:10 大小:137.61KB
下载 相关 举报
单片机直流电机控制实训报告.docx_第1页
第1页 / 共10页
单片机直流电机控制实训报告.docx_第2页
第2页 / 共10页
单片机直流电机控制实训报告.docx_第3页
第3页 / 共10页
单片机直流电机控制实训报告.docx_第4页
第4页 / 共10页
单片机直流电机控制实训报告.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机直流电机控制实训报告.docx

《单片机直流电机控制实训报告.docx》由会员分享,可在线阅读,更多相关《单片机直流电机控制实训报告.docx(10页珍藏版)》请在冰豆网上搜索。

单片机直流电机控制实训报告.docx

单片机直流电机控制实训报告

单片机直流电机控制实训报告

基于AT89C51单片机的直流电动机控制器设计

实训报告

 

专业:

弹药工程与爆炸技术

班级:

弹药二班

学生姓名:

杨宁

指导教师:

佟慧艳

能源与水利学院

2实训任务及要求

2.1任务描述

一单片机为控制核心设计一款直流电机电机控制系统,可以实现直流电机的加速、正转、反转等控制方式。

2.2任务要求

1)用AT89C51单片机实现上述任务要求;

2)在KeilIDE中完成应用程序设计与编译;

3)在Proteus环境中完成电路设计、调试与仿真。

3系统硬件组成与工作原理

3.1单片机的控制器与最小系统

单片机的最小系统是指有单片机和一些基本的外围电路所组成的一个可以使单片机工作的系统,一般来说,它包括单片机、晶振电路和复位电路(如图一)。

图1最小系统设计截图

(一)控制器部分分析

AT89C51(如图2)是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C51提供以下标准功能:

4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下

一个硬件复位。

其优点是支持较为丰富而且简

图2AT89C51单的指令集,编程器通用且兼容性好,具有单片机的典型代表性。

因此,该系列单片机在自动控制中应用最为广泛。

3.2电机与驱动模块的工作原理与接口

3.2.1H桥驱动电路原理

在实际的直流电机驱动电路应用中,可以使用H桥(图3)来驱动直流电机,也可以使用相应的驱动芯片来驱动直流电机。

本次实训中我们采用H桥电路来驱动直流电机。

H桥采用4个功率MOSFET管两两组成一个桥壁,每个三极管旁边有一个续流二极管,当对角线上两个三极管打开时,电机朝一个方向运转;另一条对角线上的三极管打开时,电机反转。

功率MOSFET管可以将微弱的信号放大成幅值较大的电信号,是单片机系统中最常用的功率驱动器件。

图3H桥驱动电路截图

3.2.2PWM脉冲控制信号产生原理及控制

脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。

脉冲宽度调制是一种模拟控制方脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。

通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。

占空比在一段连续工作时间内脉冲占用的时间与总时间的比值。

例如:

脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。

采用定频调宽法,用单片机TOT1定时计数器,T0不变,改变T1计数时间来改变脉冲宽度,从而控制电机的加速与减速(如图4所示)

图4PWM脉宽调节示意图

3.3硬件系统设计.

 

图5硬件流程设

图6电路截图

4功能方案及软件设计

4.1功能设计

通电开机后,CPU得电,根据软件定义引脚功能,定时器工作方式等。

并进入键盘扫描子程序。

当检测到键盘动作时,经过延时子程序去抖,确定按键按下后,申请中断。

单片机读取键值,并根据软件调节PWM波形,向外输出,控制电机的加速、减速、反转。

4.2软件设计

流程图如下:

 

图7程序流程框图

具体程序代码如下:

#include

#include

sbitK1=P1^4;//加速键

sbitK2=P1^5;//减速键

sbitK3=P1^6;//正反控制键

sbitCLK=P0^0;//PWM输出控制信号

sbitZF=P0^1;//正反控制信号

unsignedcharPWMH=0x00;

unsignedcharPWML=0x0f;

voidtimer0()interrupt1using0//定时器0中断服务程序

{

TR1=0;

TH0=0x00;

TL0=0x00;

TH1=PWMH;

TL1=PWML;

TR1=1;

CLK=0;//启动输出

}

voidtimer1()interrupt3using0//定时器1中断服务程序

{

TR1=0;

CLK=1;//结束输出

}

voiddelay(unsignedcharm)//MS延时

{

unsignedchari;

while(m--)

{

for(i=0;i<5;i++);

}

}

voidmain()

{

CLK=0;

TMOD=0x11;

TH0=0x00;//65.535ms延时常数

TL0=0x00;

TH1=PWMH;

TL1=PWML;

EA=1;//CPU允许中断

ET0=1;//允许定时器T0中断

ET1=1;//允许定时器T1中断

TR0=1;//定时器T0计数

while

(1)

{if(K3==0)

{ZF=0;}

else

{ZF=1;}

if(K1==0)

{delay

(1);

PWML++;

if(PWML==0x00)

{PWMH++;}

if(PWMH==0xFF)

{PWMH=0xFE;}

}

if(K2==0)

{delay

(1);

PWML--;

if(PWML==0x00)

图8初始状态

图9加减速正转状态

图10反转状态

5.1.3问题分析与解决

1)一开始对单片机控制直流电机的工作原理完全没有头绪,PWM、H桥根本看不懂是什么东西,然后不断的XX查资料,看别人的毕业论文、XX百科等等才初步知道关于这个题目的大体原理和思路是什么,但也仅仅是皮毛;

2)在画图的时候不够仔细,绘制H桥电路的时候在细节方面出现了错误,导致电机任性地不转,仔细检查后改正了图中错误,电机转起来的时候很开心;

3)编写程序的时候本来是想自己试试能不能独立完成,还是知识欠缺的太多,流程图画完之后不知道该怎么编,还是借鉴了别人的程序才完成了编写。

别人的程序开始也不太看的明白,每天都会花时间看,到现在也不能保证每一个地方都能讲清楚,还是需要不断地研究和努力。

5.2主要工作与总结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1