单片机直流电机设计报告.docx
- 文档编号:10482084
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:10
- 大小:64.16KB
单片机直流电机设计报告.docx
《单片机直流电机设计报告.docx》由会员分享,可在线阅读,更多相关《单片机直流电机设计报告.docx(10页珍藏版)》请在冰豆网上搜索。
单片机直流电机设计报告
单片机系统作品设计报告
直流电机的设计
专业:
电子信息科学与技术
学生姓名:
蒋贵川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、让我了解到单片机技术对当今人们生活的重要性。
同时这次做设计的经历也使我受益匪浅,让我知道做任何事情都应脚踏实地,刻苦努力地去做,只有这样,才能做好。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 直流电机 设计 报告