单片机直流电机设计报告.docx

上传人:b****8 文档编号:10482084 上传时间:2023-02-13 格式:DOCX 页数:10 大小:64.16KB
下载 相关 举报
单片机直流电机设计报告.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

单片机直流电机设计报告

单片机系统作品设计报告

直流电机的设计

 

专业:

电子信息科学与技术

学生姓名:

蒋贵川201108059019

杨青松201108059018

指导教师:

杨保亮

 

完成日期:

2014年5月20日

 

1、实验内容

直流电机PWM控制系统的主要功能包括:

实现对直流电机的加速、减速以及电机的正转、反转和急停,并且可以调整电机的转速,能够很方便的实现电机的智能控制。

主体电路:

即直流电机PWM控制模块。

这部分电路主要由AT89C52单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。

其间是通过AT89C52单片机产生脉宽可调的脉冲信号并输入到ULN2003AN驱动芯片来控制直流电机工作的。

该直流电机PWM控制系统由以下电路模块组成:

设计输入部分:

这一模块主要是利用带中断的独立式键盘来实现对直流电机的加速、减速以及电机的正转、反转和急停控制。

设计控制部分:

主要由AT89C52单片机的外部中断扩展电路组成。

直流电机PWM控制实现部分主要由一些三极管极管、电机和ULN2003AN直流电机驱动模块组成。

设计显示部分:

LED显示部分,实现对加速、减速、正反转、停止。

2、硬件原理图

(1)单片机控制模块

(2)ULN2003AN电机驱动模块

(3)LED显示模块

(4)独立键盘控制模块

2.1.1单片机整个控制模块

2.2.2ULN2003AN电机驱动模块

2.2.3LED显示

为了让选手知道电机正反转、加速、减速以及停止,设计中在P2口连接了5个LED,平时P2口为高电平,LED熄灭,当有按键后,软件设计让相应的LED点亮,电路如下:

2.2.4独立式键盘控制模块

独立式键盘的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。

因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下

3、系统软件设计

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

/**********************************************************************

**********************************************************************/

sbitMOTOR_A_1=P2^6;

sbitMOTOR_A_2=P2^7;

sbitk1=P1^0;//定义k1为p1.0口

sbitk2=P1^1;//定义k2为p1.1口

sbitk3=P1^6;//定义k3为p1.2口

sbitk4=P1^7;//定义k4为p1.3口

ucharT=0;//定时标记

ucharW=0;//脉宽值0~100

ucharA=0;//方向标记0,1

uchark=0;//按键标记

/**********************************************************************

定时器变量定义

**********************************************************************/

voidinit(void)

{

//启动中断

TMOD=0x01;

EA=1;

ET0=1;

TR0=1;

//设置定时时间

TH0=0xff;

TL0=0xf6;

}

voidtimer0()interrupt1

{

//重置定时器时间

TH0=0xff;

TL0=0xf6;

T++;//定时标记加1

if(k==0)

{

if(T>W)

MOTOR_A_1=0;

else

MOTOR_A_1=1;

}

else

{

if(T>W)

MOTOR_A_2=0;

else

MOTOR_A_2=1;

}

if(T==100)

T=0;

}

 

/**********************************************************************

独立按键检测

**********************************************************************/

voidkey(void)//按键判断程序

{

if(k1==0)//按键1按下

{

while(k1==0);//按键1抬起

if(A==0)

P2=0xfa;

else

P2=0xf6;

if(W==100)//如果脉宽为100

W=100;//脉宽置0

else

W+=5;

}

elseif(k2==0)//按键2按下

{

while(k2==0);//按键2抬起

if(A==0)

P2=0xf9;

else

P2=0xf5;

if(W==0)//如果脉宽为0

W=0;//脉宽设置成0

else

W-=5;//否则减5

}

elseif(k3==0)//按键3按下

{

while(k3==0);//按键3抬起

A=!

A;//方向标记取反

k=!

k;//按键标记取反

if(A==0)

P2=0xfb;

else

P2=0xf7;

}

elseif(k4==0)//按键4按下

{

while(k4==0);//按键4抬起

P2=0xef;

W=0;//脉宽清0

}

}

 

voidmain(void)

{

init();/////////系统初始化

while

(1)

{

if(k==0)

MOTOR_A_2=0;

else

MOTOR_A_1=0;

key();////////查询按键

}

}

/**********************************************************************

END

**********************************************************************/

4、心得体会

通过本次设计,使我学到了许多书本上无法学到的知识,也使我深刻体会到单片机技术应用领域的广泛。

不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。

在本次课程设计过程中,我学会了在网络上查找有关本设计的各硬件的资源,其中包括:

直流电机PWM调速、AT89C52单片机、ULN2003AN引脚图及其引脚功能等,LED显示,为本次设计提供了一定的资料。

在做设计的初期阶段,难度很大,没有头绪。

通过在图书馆里、网上查阅资料,攻克了设计中的道道难题。

通过本次科技创新实践,我学到了许多东西,知道光靠书本上的东西是不够的,需额外去查资料。

无论是在硬件还是软件设计上,我都遇到了不少的问题,在克服困难的过程中,我学到了许多,特别是在课堂上学不到的东西如(PWM)。

也锻炼了我的protel画图能力,以前学的时候元器件都是给定的只要到库里面找出名字就可以,只要连线就可以,而这次是根据自己的设计需要去画,感觉不同。

本次设计我能独立完成,算是有了很大的收获。

总的感受有以下几方面:

1、通过本次设计,我不但对单片机有了更为深入的了解,对一个课题如何画流程图,编程序等有了一定的认识。

2、进一步加强了我的动手能力和运用专业知识的能力,从中学习到如何去思考和解决问题,以及如何灵活地改变方法去实现设计方案。

特别是深刻体会到了软件和硬件结合的重要性,以及两者的联系和配合作用。

3、让我了解到单片机技术对当今人们生活的重要性。

同时这次做设计的经历也使我受益匪浅,让我知道做任何事情都应脚踏实地,刻苦努力地去做,只有这样,才能做好。

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

当前位置:首页 > 工程科技 > 电子电路

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

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