【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
电机定位控制系统介绍:
本微电机驱动电路装置是以H桥驱动电路为核心,使用两个S9013三极管作为前级驱动,H桥采用两个TIP42和两个TIP41功率三极管,每个时刻是两个功率管导通,从而实现微电机的正反转,以及停止电机,同时在电机两端并联瓷片电容,避免谐波的影响,是电机稳定运行。用LM317将12V调至5V,给单片机供电,同时采用51单片机STC89C52的IO口来控制微电机的正反转和停止,本装置还可以实现任意位置定位,将电位器与电机轴同轴捆绑,变阻器两端接5V,触头送入单片机AD采集,通过PID算法,实现微电机的精准定位,而且本电机还加入的电流电压保护电路,实现最整个装置的保护。
#include<reg52.h> #include"12864.h" #include"tlv2543.h" #define N 30; sbit a=P1^5; sbit b=P1^6; sbit K1=P3^2; sbit K2=P3^3; sbit K3=P3^4; sbit K4=P3^5; sbit K5=P3^6; sbit K6=P3^7; sbit K7=P2^7; uint du,U4,U5; int n=0,flag,flag1,k1,flag2; uint U1=2000; uint D; //PWM控制输入值 uint U2,U3; //AD读取值 float Kp=1.09; //定义比例系数 float Ki=0.00; //定义积分系数 float Kd=0.000; //定义微分系数 xdata unsigned table[24]={824,3785,3244,2728,2214,1697,1192,4179,3630,3104,2586,2068, 1554,1044,2000,3480,984,1452,1920,2394,2870,3352,3844,4352 }; //刻盘角度对应电压值 void delay_us(uchar t) { uint j,k; for(k=t;k>0;k--) for(j=36;j>0;j--); } int PID() { int err1=0,err2=0,err3=0; err1=U1-U2; err3=err2; err2=err1; return(Kp*err1+Ki*err2+Kd*err3); }