基于PWM的电机调速系统.doc

上传人:sk****8 文档编号:4319087 上传时间:2019-10-21 格式:DOC 页数:12 大小:874.62KB
下载 相关 举报
基于PWM的电机调速系统.doc_第1页
第1页 / 共12页
基于PWM的电机调速系统.doc_第2页
第2页 / 共12页
基于PWM的电机调速系统.doc_第3页
第3页 / 共12页
基于PWM的电机调速系统.doc_第4页
第4页 / 共12页
基于PWM的电机调速系统.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、 基于PWM的电机调速系统 实验目的:1.学会并掌握可keil软件的使用;2.学会并掌握protues软件的使用;3.通过实验巩固单片机相关知识和检验自身动手能力实验要求:掌握单片机相关知识,利用调PWM占空比的方式来控制直流电机的转速,并且在led数码管上显示转速。实验设备和仪器:1.89c51单片机最小系统2.直流电机3.示波器实验内容:本次实验设计是由小组五个成员共同完成基于PWM的电机调速系统并完成实物搭建和撰写实验报告。本次实验小组共提供了两个方案,方案一和方案二,两个方案各自具有优缺点,详细内容会在下面给出。方案一实验步骤:1.利用protues画电路图,电路图如图1所示: 图1:

2、方案一电路图2.根据电路图编写C语言代码:代码如下:#include sbit PWM=P27;sbit CS3=P23;sbit CS2=P22;sbit CS1=P21;sbit CS0=P20;sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;unsigned char timer1; unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void Time1Config();void main(void)Time1Config();while(

3、1) if(timer1100) /PWM周期为100*0.5mstimer1=0;if(key1)if(timer1 30)/改变30这个值可以改变直流电机的速度PWM=1;elsePWM=0;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab3;P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab0;P0=0xff; else if(key2) if(timer1 50)PWM=1;elsePWM=0;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab5;P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab0;P0=0xf

4、f;else if(key3) if(timer1 80)PWM=1;elsePWM=0;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab8;P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab0;P0=0xff;else if(key4) if(timer1 100)PWM=1;elsePWM=0;CS0=0;CS1=1;CS2=0;CS3=0;P0=tab1;P0=0xff;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab0;P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab0;P0=0xff; void Time1

5、Config()TMOD|= 0x10; /设置定时计数器工作方式1为定时器/-定时器赋初始值,12MHZ下定时0.5ms-/ TH1 = 0xFE; TL1 = 0x0C;ET1 = 1; /开启定时器1中断EA = 1;TR1 = 1; /开启定时器void Time1(void) interrupt 3 /3 为定时器1的中断号 TH1 = 0xFE; /重新赋初值TL1 = 0x0C;timer1+; 3.实验仿真,部分仿真结果如图2图3所示: 图2:仿真结果图(1)图3:仿真结果图(2)4.实物验证结果如图4所示:图4:方案一实物验证结果实物验证可以明显感觉到电机转速的变化,由于每个

6、开发板不同,相比仿真程序,对实物验证程序进行了略微的修改,最终能达到要求。方案二实验步骤:1.利用protues画电路图,电路图如图5所示:图5:方案二protues电路图2.编写C语言程序代码:代码如下:#include#define uchar unsigned char#define uint unsigned intsbit key1=P31;sbit CLOCK=P24;sbit ST=P25;sbit EOC=P26;sbit OE=P27;sbit PWM=P37;uint temp,temp1;sbit CS3=P23;sbit CS2=P22;sbit CS1=P21;sbi

7、t CS0=P20;uchar tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar start;void delayms(uint ms)uchar j;while(ms-)for(j=0;j0;x-)for(y=50;y0;y-);3.实验仿真,部分仿真结果如图6所示:图6:方案二仿真结果4.实物结果如图7所示:图7:方案二实物结果实验总结:本次实验提供了方案一和方案二两个方案,方案一是通过不同按键设定不同的PWM占空比从而实现对电机调速,其优点是可以设定我们自己需要的转速从而实现相对精确的调速;缺点便是只能调到设定的转速,

8、如需调制其它速度,需要对软件代码进行改写,相对而言比较繁琐。方案二是通过滑动变阻器改变电压值从而改变PWM占空比实现电机调速,其优点是可以直接从硬件调速,快速方便;缺点就是利用滑动变阻器难以精确控制PWM占空比从而精确控制转速。方案一和方案二各有优缺点,可以对自己的需求进行选择。心得体会:通过本次的实验,小组成员都发现自己的知识面还是非常的狭窄,缺少的东西也有很多,在网上查找一些相关的资料以及在图书馆借阅了几本关于单片机方面的书籍,慢慢的懂了一些关于编程和仿真方面的问题。通过这次实验,成员们都发现各自还是存在一些问题。这些不经意的东西虽然看起来不起眼,但是在试验中是不可忽视的问题。这次试验让我遇到的困难有很多,例如一开始在编程的时候,我们一直在重视如何获取电机的转速并在led上实时显示,失败之后吸取经验从PWM波形入手来显示数值。这次的实验,学习到的内容也有很多,不求在一个试验中就能让我学到很多的东西,但在以后的学习中,会慢慢的一点点改进,熟练的理解以及掌握相关的知识,希望能在这方面学到的越来越多。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 自然科学

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。