直流电机PWM波调速的设计与制作实验报告.docx
《直流电机PWM波调速的设计与制作实验报告.docx》由会员分享,可在线阅读,更多相关《直流电机PWM波调速的设计与制作实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
直流电机PWM波调速的设计与制作实验报告
《单片机原理与应用》课程设计报告
直流电机PWM波调速的设计与制作
要求:
一、功能要求
1、实现利用PWM波控制直流电机的转速;
2、用数码管显示PWM波的输出占空比;
3、用数码管显示直流电机的转速标志;
4、实现对直流电机的速度调制;
二、设计过程要求
1、查阅资料确定设计方案;
2、对设计方案进行仿真验证;
3、选择合适的元器件,搭建电路实验验证效果;
4、画出PCB图;
5、书写设计报告;
6、答辩。
三、设计报告要求
设计报告主要包括:
题目、内容和要求、总体方案和设计思路、仿真电路图、软件设计、仿真调试效果、实验测试效果图、PCB图、心得体会。
:
谭德兵
学号:
1886100112
专业:
电子科学与技术
班级:
10级 01 班
成绩:
评阅人:
安徽科技学院理学院物电系
一、实验设计目的
1、掌握脉宽调制的方法;
2、用程序实现脉宽调制,并对直流电机进行调速控制;
3、学习用LM339内部四个电压比较器产生锯齿波、直流电压、PWM脉宽;
4、掌握脉宽调制PWM控制模式;
5、掌握电子系统的一般设计方法;
6、培养综合应用所学知识来指导实践的能力;
7、掌握常用元器件的识别和测试,熟悉常用仪表,了解电路调试的基本方法进一步掌握制版、电路调试等技能。
二、实验设计设备
单片机开发板,单片机最小系统,驱动器,直流电机,连接导线等
三、实验设计原理
1)设计总体方案
总体设计模块
1、STC89C52
本设计运用单片机芯片STC89C52,通过控制单片机输出引脚P1.7输出的高低电平的延时时间长短来达到控制电机的目的,运用单片机定时器/计数器1对光电编码盘产生的冲进行计数,将所得到的数值送到P0口显示。
8051单片机引脚描述
·电源引脚Vcc和Vss:
Vcc:
电源端,接+5V,Vss:
接地端。
·时钟电路引脚XTAL1和XTAL2:
·XTAL1:
接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。
·XTAL2:
接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使
用外部TTL时钟时,该引脚为外部时钟的输入端。
·地址锁存允许ALE:
系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。
·外部程序存储器读选通信号PSEN:
PSEN是外部程序存储器的读选通信号,低电平有效。
·程序存储器地址允许输入端EA/VPP:
当EA为高电平时,CPU执行片内程序存储器指令,但当
·PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。
当EA为低电平时,CPU只执行片外程序存储器指令。
·复位信号RST:
该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。
·输入/输出端口引脚P0,P1,P2和P3:
~P0口(P0.0~P0.7):
该端口为漏极开路的8位准双向口,它为外部低8位地址线和8位数据线复用端口,驱动能力为8个LSTTL负载。
~P1口(P1.0~P1.7):
它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。
~P2口(P2.0~P2.7):
它为一个内部带上拉电阻的8位准双向I/O口,P2口的驱动能力也为4个LSTTL负载。
在访问外部程序存储器时,作为高8位地址线。
~P3口(P3.0~P3.7):
为内部带上拉电阻的8位准双向
~I/O口,P3口除了作为一般的I/O口使用之外,每个引脚都具有第二功能。
2、驱动电路
(1)、本实验用的是达林顿反相驱动器ULN2803;
ULN2803:
达林顿反相驱动器。
(元件图)
ULN2803:
达林顿反相驱动器
八路NPN达林顿连接晶体管阵系列特别适用于低辑电平数字电路(诸如TTL,CMOS或PMOS/NMOS)和较高的电流/电压要求之间的接口,广泛应用于计算机,工业用和消费类产品中的灯、继电器、打印锤或其它类似负载中。
所有器件具有集电极开路输出和续流箱位二极管,用于抑制跃变。
ULN2803的设计与标准TTL系列兼容,而ULN2804最适于6至15伏高电平CMOS或PMOS。
主要特点:
达林顿管驱动器
包含8个NPN达林顿管
高耐压,大电流
器件编号:
ULN2803
封装类型:
AP=DIP18,AFW=SOL18
无铅/RoHS认证
输出击穿电压:
50(V)
输出电流:
500(mA)
输入电阻:
2.7k(Ω)
推荐输入电压:
5(V)
温度范围:
-40℃~+85℃
包装规格:
AFW:
Tape&Reel|
不要超过每个驱动器的电流的限制[1]
3锁存器连接及数码管显示电路
(1)、74HC573锁存器
本实验利用此锁存器控制数码管的位选和段选;
74HC573:
八进制3态非反转透明锁存器
OE ̄
1
20
VCC
1D—
2
19
—1Q
2D—
3
18
—2Q
3D—
4
17
—3Q
4D—
5
16
—4Q
5D—
6
15
—5Q
6D—
7
14
—6Q
7D—
8
13
—7Q
8D—
9
12
—8Q
GND
10
11
LE
1脚三态允许控制端低电平有效
1D~8D为数据输入端
1Q~8Q为数据输出端
LE为锁存控制端
74HC573
74HC573引脚图
特性:
高性能硅门CMOS器件
· SL74HC573跟LS/AL573的管脚一样。
器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。
·当锁存使能端LE为高时,这些器件的锁存对于数据是透明
的(也就是说输出同步)。
当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。
·×\u36755X出能直接接到CMOS,NMOS和TTL接口上
×\u25805X作电压范围:
2.0V~6.0V;;×\u20302X输入电流:
1.0uA
×CMOS器件的高噪声抵抗特性
(2)、数码管显示
本实验用的是7SEG-MPX6-CC型号数码管;
数码管的第一位显示的是电机转速标识,第二、三位显示的是PWM波的占空比;
4.按键电路
加速按键、减速按键分别接单片机的P3.6和P3.7口以达到控制电机转速的目的;
两按键接到单片机上都是低电平有效;
2)实验设计思路
(1)PWM波
PWM(PulseWidthModulation)简称脉宽调制。
即通过改变输出脉冲的占空比,实现对直流电机进行调速控制。
PWM一种按规律改变的脉冲序列的脉冲宽度,调节输出量和波形的一种调制方式,常用的是矩形波PWM信号,在控制时需要调节PWM波的占空比。
占空比是指高电平(VH)持续时间在一个周期内的百分比。
控制电机转速时,占空比越大,速度越快,占空比达到100%,速度最快。
通过控制单片机上输出不同占空比的PWM波信号来控制直流电机的转速。
实验线路图:
3)实验元器件
AT89C52、74HC573锁存器、ULN2803达林顿反相驱动器、直流电机、电阻、电源(VCC)、数码管(7SEG-MPX6-CC)
四、实验设计程序
(一)、程序流程图
(二)、程序源代码(C语言)
#include
#defineucharunsignedchar
sbitdula=P2^6;//数码管显示段选i/0口定义
sbitwela=P2^7;//数码管显示位选I/O口定义
sbitdianji=P1^7;//控制电机I/O口定义
sbitjia_key=P3^6;//加速键
sbitjian_key=P3^7;//减速键
ucharnum=0,show_num=1,gao_num=1,di_num=3;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示数据表
voiddelay(uchari)//延时程序
{
ucharj,k;
for(j=i;j>0;j--)
for(k=500;k>0;k--);
}
voiddisplay()//数码管显示函数
{
dula=0;
P0=table[show_num];
dula=1;
dula=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[gao_num];
dula=1;
dula=0;
P0=0xfd;
wela=0;
wela=1;
delay(5);
P0=table[di_num];
dula=1;
dula=0;
P0=0xfb;
wela=0;
wela=1;
delay(5);
P0=table[0];
dula=1;
dula=0;
P0=0x3f;
wela=0;
wela=1;
delay(5);
}
voidkey()//按键检测处理函数
{
if(jia_key==0)
{
delay(5);//消抖
if(jia_key==0)
{
num++;//加速键按下速度标志加1
if(num==4)
num=3;//已经达到最大3,则保持
while(jia_key==0);//等待按键松开
}
}
if(jian_key==0)
{
delay(5);
if(jian_key==0)
{
if(num!
=0)//减速键按下,速度标志减1
num--;
else
num=0;//已经达到最小0,则保持
while(jian_key==0);}
}
}
voiddispose()//根据速度标志进行数据处理
{
switch(num)
{
case0:
show_num=1;//数码管第一位显示数据
gao_num=1;//PWM信号中高电平持续时间标志1
di_num=3;//PWM信号中低电平持续时间标志3,此时速度最慢
break;
case1:
show_num=2;
gao_num=2;
di_num=2;
break;
case2:
show_num=3;
gao_num=3;
di_num=1;
break;
case3:
show_num=4;
gao_num=4;
di_num=0;//此时速度最快
break;}
}
voidqudong()//控制电机程序
{
uchari;
if(di_num!
=0)
{
for(i=0;i{
dianji=0;//实现PWM信号低电平输出
display();//利用显示函数其延时作用,也不影响数码管
}
}
for(i=0;i{
dianji=1;//实现PWM高电平输出
display();
}
}
voidmain()
{
while
(1)
{
dianji=0;
key();
dispose();
qudong();
}
}
五、实验操作
(1)、利用实验时提供的单片机应用系统及直流电机驱动电路板,编制控制程序实现直流电机PWM调速控制。
(2)、连接实验电路,观察PWM调控速度控制,实现加速、减速调速控制。
实验硬件连接图(ISIS7Professional)
在单片机上验证的实物连接图
实验PCB图
六、实验设计心得体会
通过一学期的单片实验,学到了很多有用的东西。
特别是单片机综合实验,让我对单片机和c语言程序设计都有了新的理解。
首先,对MCS-52单片机的工作原理和具体的功能实现有了一个更高的认识。
对于硬件电路,以前只是大概了解,实验后,对单片机的各个端口,寄存器都有了一个比较系统的认识。
其次,学会了C语言的程序编写。
再次,单片机的功能很强大,所能实现的功能并不仅限于这些实验。
单片机还能实现更多更实用的功能,应该学会触类旁通,举一反三,在实验的基础上创新,开发自己的创造力。
最后,学习单片机实验不仅是学会其电路的工作原理和程序编写,更要学会一种学习的方法。
对待以后的课程,要有一种细心的态度,就如单片机实验,既要了解硬件电路,知道每一个元件的工作原理和作用,还要知道程序的流程和基本思路,使所掌握的知识系统化、体系化。