基于单片机的直流电机控制设计性实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目:直流电机控制电路设计
一设计目得
1掌握单片机用PWM实现直流电机调整得基本方法,掌握直流电机得驱动原理。
2学习模拟控制直流电机正转、反转、加速、减速得实现方法. 二设计要求
用已学得知识配合51单片机设计一个可以正转、反转或变速运动得直流电机控制电路,并用示波器观察其模拟变化状况。
三设计思路及原理
利用单片机对PWM信号得软件实现方法.MCS一51系列典型产品8051具有两个定时计数器。因为PWM信号软件实现得核心就是单片机内部得定时器,所以通过控制定时计数器初值,从而可以实现从8051得任意输出口输出不同占空比得脉冲波形。从而实现对直流电动机得转速控制。
.AT89C51得P1、0—P1、2控制直流电机得快、慢、转向,低电平有效.P3、0为PWM波输出,P3、1为转向控制输出,P3、2为蜂鸣器。PWM控制DC电机转速,晶振为12M,利用定时器控制产生占空比可变得PWM波,按K1键,PWM值增加,则占空比增加,电机转快,按K2键,PWM值减少,则占空比减小,电机转慢,当PWM值增加到最大值255或者最小值1时,蜂鸣器将报警
四实验器材
DVCC试验箱导线若电源等器件
PROTUES仿真软件KRIL软件
五实验流程与程序
#include 〈 reg51、h >
sbitK1 =P1^0;增加键
sbit K2 =P1^1 ; 减少键
sbit K3 =P1^2;转向选择键
sbit PWMUOT =P3^0; PWM波输出ﻩﻩ
sbitturn_around =P3^1 ;ﻩ转向控制输出
sbit BEEP =P3^2 ;蜂鸣器
unsigned int PWM;
void Beep(void);
void delay(unsigned int n);
void main(void)
{
TMOD=0x11;//设置T0、T1为方式1,(16位定时器) TH0=0 ; 65536us延时常数{t=(65536—TH)/fose/12} ﻩTL0=0;
TH1=PWM; //脉宽调节,高8位
ﻩ TL1=0;
EA=1;ﻩ //开总中断
ET0=1; //开T0中断ﻩ
ET1=1;ﻩﻩ//开T1中断
TR0=1 ;//T0定时允许
while(1)
{ﻩ
if(K3==0&&K1==1&&K2==1) // 转向
ﻩ{
turn_around=!turn_around;ﻩﻩﻩﻩﻩ}
ﻩ while(K3==0); //检测K3就是否释放
ﻩdo{
PWM++ ;
ﻩif(PWM>0xfe)//防止PWMS计数溢出ﻩﻩ{
ﻩﻩﻩPWM=0xff;
ﻩﻩﻩ}
ﻩﻩﻩif(PWM==0xff)Beep() ; 响
ﻩﻩdelay(3000);
}
while(K1==0&&K2==1);
do{
ﻩPWM—- ;
ﻩﻩﻩﻩif(PWM<1)
ﻩﻩﻩﻩﻩﻩ{
ﻩﻩﻩﻩPWM=1;
ﻩﻩﻩﻩﻩ}
ﻩﻩif(PWM==1)Beep() ;
ﻩﻩﻩﻩdelay(3000);
}
while(K1==1&&K2==0);
}
}
void timer0()interrupt 1 using2 // 定时器0中断服务程序
{
TR1=0 ; ﻩ //T1禁止
ﻩTH0=0 ;//置T0定时常数
ﻩTL0=0 ;
TH1=PWM ; //置T1定时常数
ﻩﻩTL1=0;
ﻩTR1=1 ;ﻩ//T1允许
ﻩﻩPWMUOT=0 ;// PWM波输出0
}
void timer1() interrupt 3 using 3 //定时器1中断服务程序
{
TR1=0;ﻩ//T1禁止ﻩ
PWMUOT=1 ; //PWM波输出1
}
void Beep(void) //蜂鸣器子程序{
unsigned char i;
for (i=0;i<100;i++) {
delay(100);
BEEP=!BEEP;
}
BEEP=1;
delay(100);
}
void delay(unsigned int n)ﻩ{
while(n--);
}
六Proteus仿真截图
此次试验通过仿真系统进行了仿真,按下相应得开关,可实现控制直流电机得加速、减速及转向。
八实验结论与心得
通过软件得设计及运行,实验达到了预期得结果,实现了电机得正转、反转,加速与减速设计。设计过程中遇到了很多得问题,但就是我们没有半途而废,加深了对知识得理解,一点一点得分析.总而言之,这次课程设计让我受益匪浅。在摸索该如何设计电路使之实现所需功能得过程中,培养了我得设计思维,增加了实际操作能力,也让深深地体会到了自己学习知识得不足之处,对于知识得理解程度不够深,自己以为明白得实际上不明白.在以后得学习过程中,我会重视这些问题,逐渐改变自己得学习习惯,不断得进步!