资源描述:
《基于pwm的电机调速系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、专业资料整理基于PWM的电机调速系统实验目的:1.学会并掌握可keil软件的使用;2.学会并掌握protues软件的使用;3.通过实验巩固单片机相关知识和检验自身动手能力实验要求:掌握单片机相关知识,利用调PWM占空比的方式来控制直流电机的转速,并且在led数码管上显示转速。实验设备和仪器:1.89c51单片机最小系统2.直流电机3.示波器实验内容:本次实验设计是由小组五个成员共同完成基于PWM的电机调速系统并完成实物搭建和撰写实验报告。本次实验小组共提供了两个方案,方案一和方案二,两个方案各自具有优缺点,详细内容会在下面给出。方案一实验步骤:1.利用protues画电
2、路图,电路图如图1所示:图1:方案一电路图2.根据电路图编写C语言代码:代码如下:#includesbitPWM=P2^7;完美WORD格式专业资料整理sbitCS3=P2^3;sbitCS2=P2^2;sbitCS1=P2^1;sbitCS0=P2^0;sbitkey1=P1^0;sbitkey2=P1^1;sbitkey3=P1^2;sbitkey4=P1^3;unsignedchartimer1;unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidTi
3、me1Config();voidmain(void){Time1Config();while(1){if(timer1>100)//PWM周期为100*0.5ms{timer1=0;}if(~key1){if(timer1<30)//改变30这个值可以改变直流电机的速度{PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[3];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key2){if(timer1<50){PWM=1;完美WORD格式专业资料整理
4、}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[5];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key3){if(timer1<80){PWM=1;}else{PWM=0;}CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[8];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}elseif(~key4){if(timer1<100){PWM=1;}else{PWM=0;}CS0=0;CS1=
5、1;CS2=0;CS3=0;P0=tab[1];完美WORD格式专业资料整理P0=0xff;CS0=0;CS1=0;CS2=1;CS3=0;P0=tab[0];P0=0xff;CS0=0;CS1=0;CS2=0;CS3=1;P0=tab[0];P0=0xff;}}}voidTime1Config(){TMOD
6、=0x10;//设置定时计数器工作方式1为定时器//--定时器赋初始值,12MHZ下定时0.5ms--//TH1=0xFE;TL1=0x0C;ET1=1;//开启定时器1中断EA=1;TR1=1;//开启定时器}voidTime1(void)interrupt3/
7、/3为定时器1的中断号{TH1=0xFE;//重新赋初值TL1=0x0C;timer1++;}3.实验仿真,部分仿真结果如图2图3所示:完美WORD格式专业资料整理图2:仿真结果图(1)完美WORD格式专业资料整理图3:仿真结果图(2)完美WORD格式专业资料整理4.实物验证结果如图4所示:图4:方案一实物验证结果实物验证可以明显感觉到电机转速的变化,由于每个开发板不同,相比仿真程序,对实物验证程序进行了略微的修改,最终能达到要求。完美WORD格式专业资料整理方案二实验步骤:1.利用protues画电路图,电路图如图5所示:图5:方案二protues电路图2.编写C语言
8、程序代码:代码如下:#include#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^1;sbitCLOCK=P2^4;sbitST=P2^5;sbitEOC=P2^6;sbitOE=P2^7;sbitPWM=P3^7;uinttemp,temp1;sbitCS3=P2^3;sbitCS2=P2^2;sbitCS1=P2^1;sbitCS0=P2^0;uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0