文档详情

51单片机PID控制直流电机实验报告

大米
实名认证
店铺
DOC
407.50KB
约13页
文档ID:405233169
51单片机PID控制直流电机实验报告_第1页
1/13

基于51单片机的1=直流电机PID控制一、试验器件选择1、控制芯片的作用主要是与L289相连接驱动直流电机,以及与八位数码管相连显不1) 、AT89C51是一种带4K自己FLASH存储器的低压、高性能CMOS8为微处理器单片机的可擦除只读存储器可以反复擦除1000次该器件釆用ATMEL高密度非易失真存储制造技术制造,与工业标准的MCS-51指令集和输出关键相兼容由于将多功能8位CPU和闪存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器AT89C51单片机为很多嵌入式控制系统提供了一种灵活性奥高且廉价的方案2) 、AT89C51引脚图如下:19XTAL1PO.O/ADOXTAL2P0.1/AD1PO.2/AD2P0.3/AD3RSTP0.4/AC4P0.5/AD5P0.6/AD6PO.7/AD7PSENP2.0/A8P2.1/A9P2.2/A10P2.3/A11ALEP2.4/A12秋P2.5/A13P10P2.6/A14P2.7/A15P30/RXDP11P3.1fTXDP12P32/INT0P13P33/INT1P14P34JT0P15P35JT1P1.6P3.6/WRP1.7P3.7/RD-18929303938373635343332212223242526272810111213141516仃2、电机驱动芯片(1)、电机驱动芯片选择L298。

其主要功能是作为单片机与直流电机中间的过度链接,单片机输出的信号通过L298加载到直流电机上驱动直流电机运行其引脚图如下:(2)、主要工作原理:1、15脚分别是两个H桥的电流反馈脚,不用时可以直接接地;2、3为一对输出端口,13、14为一对输出端口;4为驱动电压输入,最小值必须比输入的低电平高2;5、7—对输入端口,10、12—对输入端口,TTL电平兼容6、11使能端,低电平禁止输出;8、9分别为接地和逻辑电源3、直流电机在protues中选择motor-encoder直流电机,引脚图如下:上方左右的两个引脚在点击运转时输出频率相同的方波,但是在相位上相差90而且在正转和反转是相反,因此可以根据这两个引脚的输出情况判断点击的转向上方中间的引脚每当电机转一圈就输出一个正脉冲,可以据此册数点击的转速左右两个引脚是电机的电压输入端4、74HC74o当D触发器的D和CLK输入端分别接电机上方的左右两个输出端口时可以根据D触发器的输出情况判断点击的转速5、八位数码管用以显示二、系统硬件设计连接1、系统的器件连接图如下:2、单片机与数码管通过P0口和P2口相连,其中P2口选择点亮哪一个数码管,P0口则控制被点亮的数码管显示的数据。

RPi--.••UZ-OVTIOVTIOUT20UT201TT?•心;IH1IM2朗IM<£NACMOI•."G.*XTAllTCJSACC甩.15CMXTA12里理0阿ra/tfso?1-bUW球gAltP2-3WDP23M1P2O1.1IIJ口咖rwW.1(T!D:生-4w--3、单片通过pro和pri和L298的第一对输入端IN1和IN2相连,然后乂L298的第一对输出端OUT1和OUT2与直流电机相连,己达到控制直流电机的目的4、从P「4到P「7分别接一个Button按钮来实现PID控制,P3飞和P3"7分别接Button按钮实现对电机的加速与减速控制5、双刀双掷开关SW1课实现点击的正转与反转,单刀双掷开关SW2可实现点击的开启与停止三、系统程序设计及功能实现1、程序流程图:开始voiddela^^ms(unsignedcharx)unsignedchari;while(x--)for(i二0;i<120;i卄);}(2)、数码管显示:ttincludettincludettincludevoiddisplay_lilun(doublenum)charcodetable[]二{0x3f,0x06,0x5b,0x7f,0x6f,0x77,longintn二num;P0二0;P2=0x7f;0x4f,0x66,0x6d,0x7d,0x07,//0、7对应数码0x7c,0x39,0x5e,0x79,0x71};//8、F对应数码P0二table[n%1000/100];delayms(2);〃百位delayms(2);〃十位加小数点P0=0;P2二Oxbf;P0二table[n%100/10];P0二0;P2二Oxdf;P0二table[n%10];delayms(2);//个位P0二0;//关闭显示器}voiddisplay(doublenum,intdir)longP0=小数点P0charcodetable[]二{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,intn二num*10;0;P2二Oxf7;P0二0x07,//0'7对应数码0x71};//8'F对应数码table[n/1000];delayms(2);//•白位加二0;P2P0=table[n1000/100];delayms(2);//百位加小数点P0=十位P0二0;P20;P2P0二if(dir=l)0;二Oxfd;二Oxfe;P0P0=table[n=table[n〃关闭显示器100/101+128;delayms(2);//10];delayms(2);//个位P0=0;P2=0xef;PO二0x40;delayms(2);//对各个按钮进行位定义//定义全局变量(3) 、按键扫描:ttincludesbitjiashi=Pl3;sbitjianshi=Pl"4;sbitjia=Pl5;sbitjian=Pl"6;sbitenter二Pl7externintnum_key[5];voidkeyscan(){if(jiashi==0){while(!jiashi);num_key[0J++;}一if(jianshi二二0){while(!jianshi);num_key[1]++;}一if(jia==0){while(!jia);num_key[2]++;}一if(jian==0){while(!jian);num_key[3]++;}一if(enter==0)while(!enter);num_key[4]++;}一}(4) 、PWM波输出:ttincludettinclude^includeexternintPWM;//赋初值externintstart,sudu_lilun:externdoubledis_count;sbitS2二P3飞;//PWM值减少键sbitS3=P3'7;//PW值增加键voidPWM_duty(){~if(start>=l)PW=sudu_lilun;do{if(PW!=0xff){PWM++;delayms(10);}}while(S3==0);do{if(PW>=0x02){PWM—;delayms(10);}}while(S2==0);}(5) 、中断服务程序:tiincludeexternintPWM,count,countl,dir,count20ms_flag;externdoubledis_count;sbitPWM_OUT1二P「l;sbitPWM_0UT2二P「0;voidtimerO()interrupt1longinti;TR1=O;dir=0;TLO二0x00;TH0=0xd8;//10msTL0=0xf0;TH1二PWM;TR1=1;PW_OUT1=0;//启动输出PW_0UT2=0;if(i++==492){count20ms_flag=l;i=0;dis_count=(double)(count+countl)/2;count二0;countl二0;}}voidtimerl()interrupt3{TR1=O;if(dir==0){PW_OUT1=1;〃结束输出PWM_0UT2二0;}else{PWM_OUT1二0;PW_0UT2=l;}}voidEIRQO(void)interrupt0EXO二0;count++;EXO=1;}voidEIRQ1(void)interrupt2{EX1=O;countl++;EX1=1;}(6) 、PID控制:ttincludettincludeintP,I,D;externintsudu_lilun;typedefstructPID//定义结构体intSetPoint:longSumError;〃目标〃误差doubleProportion;//比例系数doubleIntegral://积分系数doubleDerivative://微分系数intLastError;intPrevError:}PID;staticPIDsPID;staticPID*sptr二&sPID;voidIncPIDInit(){sptr-〉SumError=0;sptr-〉LastError二0;//Error[-1]sptr-〉PrevError二0;//Error[-2]sptr->Proportion二0.5;//比例系数sptr->Integral=0.3;//积分系数sptr-〉Derivative=0.3;//微分系数sptr-〉SetPoint二sudu_lilun;}~intIncPIDCalc(intNextPoint){registerintiError,ilncpid;//当前的误差值iError=sptr~>SetPoint-NextPoint;//计算增加量iln。

下载提示
相似文档
正为您匹配相似的精品文档