• 大小: 141KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: PID  单片机  控制  C  

资源简介

PID控制直流电机调速(含proteus仿真)

资源截图

代码片段和文件信息

/*****************************************************************************************
*文件名:pid.c
*文件描述:PID控制电机转速
*作者:
*创建日期:2015/6/17
*****************************************************************************************/

#include 
#include 

sbit plus_10=P1^3;     //对各个按钮进行位定义
sbit minus_10=P1^4;
sbit plus=P1^5;
sbit minus=P1^6;
sbit enter=P1^7;
sbit PWM_OUT1=P1^1;
sbit PWM_OUT2=P1^0;
sbit dir=P1^2;

struct PID          //定义PID结构体
{
int SetValue;    //设定值
// long SumError;  //误差
double Proportion;  //比例系数
double Integral;  //积分系数
double Derivative;  //微分系数
int LastError;
int PrevError;
}sPID*sptr= &sPID;

int PWMPWM_temp=1count0=0Speed_SetSeep_Measurecounter_100mscounter_10ms;
bit flag_100msflag_10msstartplus_10_lock=1minus_10_lock=1plus_lock=1
    minus_lock=1enter_lock=1;
char num[] = {0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f};//0~9 对应数码

/*****************************************************************************************
*函数名:void delayms(unsigned char x)
*函数功能:简单延时 支持0~255ms
*函数参数:x 延时时间
*****************************************************************************************/
void delayms(unsigned char x)
{
unsigned char i ;
while(x--)
for(i = 0 ; i < 120 ; i++) ;
}
/*****************************************************************************************
*函数名:void display(void)
*函数功能:显示函数
*函数参数:无
*****************************************************************************************/
void display(void)
{
P2 =0x7f; P0 = num[Speed_Set/100];delayms(2); 
P2 =0xbf; P0 = num[Speed_Set % 100 / 10];delayms(2); 
P2 =0xdf; P0 = num[Speed_Set % 10];delayms(2); 
P2 =0xfb; P0 = num[Seep_Measure / 100];delayms(2);  
P2 =0xfd; P0 = num[Seep_Measure % 100/10];delayms(2); 
P2 =0xfe; P0 = num[Seep_Measure % 10]; delayms(2);
if(start&&dir)
{
P2=0xf7;P0=0x40;delayms(2);
}
}
/*****************************************************************************************
*函数名:void keyscan(void)
*函数功能:按键扫描
*函数参数:无
*****************************************************************************************/
void keyscan(void)
{
static unsigned char plus_10_delayminus_10_delayplus_delayminus_delayenter_delay;
if(plus_10==0)
{
if(plus_10_lock&&++plus_10_delay>=2)
{
plus_10_lock=0;
if(Speed_Set<170)
Speed_Set+=10;
else Speed_Set=10;
}
}
else 
{
plus_10_lock=1;
plus_10_delay=0;
}   
if(minus_10==0)
{
if(minus_10_lock&&++minus_10_delay>=2)
{
minus_10_lock=0;
if(Speed_Set>10)
Speed_Set-=10;
else Speed_Set=170;
}
}
else
{
minus_10_lock=1;
minus_10_delay=0;
}
if(plus==0)
{
if(plus_lock&&++plus_delay>2)
{
plus_lock=0;
if(Speed_Set<170)
Speed_Set+=1;
else Speed_Set=0;
}
}
else
{
plus_lock=1;
plus_delay=0;
}
if(minus==0)
{
if(minus_lock&&++minus_delay>2)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     126777  2015-06-18 19:00  PID仿真.JPG

     文件     125152  2015-06-18 18:52  PID.DSN

     文件      13765  2015-06-18 18:46  pid\output\pid

     文件       7902  2015-06-18 18:46  pid\output\pid.hex

     文件         66  2015-06-18 18:46  pid\output\pid.lnp

     文件      13838  2015-06-18 18:46  pid\output\pid.lst

     文件      18210  2015-06-18 18:46  pid\output\pid.m51

     文件      13586  2015-06-18 18:46  pid\output\pid.obj

     文件      29520  2015-06-18 18:46  pid\output\pid.plg

     文件      14138  2015-06-17 15:33  pid\output\STARTUP.lst

     文件        815  2015-06-17 15:33  pid\output\STARTUP.obj

     文件       2920  2015-06-02 17:28  pid\pid.plg

     文件      55226  2015-06-17 20:21  pid\pid.uvopt

     文件      13239  2015-06-17 16:59  pid\pid.uvproj

     文件      55224  2015-06-17 17:26  pid\pid_uvopt.bak

     文件      13411  2015-06-02 17:15  pid\pid_uvproj.bak

     文件       6567  2015-06-18 18:52  pid\src\pid.c

     文件       6376  2009-05-07 14:37  pid\STARTUP.A51

     目录          0  2015-06-18 19:08  pid\output

     目录          0  2015-06-18 19:08  pid\src

     目录          0  2015-06-18 19:08  pid

----------- ---------  ---------- -----  ----

               516732                    21


评论

共有 条评论