资源简介
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
- 上一篇:将文件中的单词统计存入另一文件
- 下一篇:校园自助银行系统DELPHI
相关资源
- 基于遗传算法优化的模糊控制仿真研
- 基于单片机的流量控制器设计
- 51单片机PWM细分控制步进电机的研究初
- 基于单片机的智能灯光控制器的设计
- 52单片机控制TC35发短信程序
- Chen's混沌系统的同步控制
- 51系列单片机门禁源程序
- 51单片机超声波测距仪制作(电路,
- FPGA控制VGA输出实现乒乓球游戏_veril
- 电梯控制器VHDL程序与仿真
- s3c2440裸机按键控制小灯
- 单片机与手机WiFi通信
- 微机原理课程设计—交通灯设计
- Verilog语言设计电梯控制器文档
- 乐高pid巡线程序 mindstorms
- 超声波电子测距仪 单片机
- 基于89C51制作光控灯
- 全自动洗衣机PROTUES仿真+源程序+完整
- 三电平逆变器预测控制仿真模型
- labview控制步进电机的程序
- STM32无刷直流电机PWM控制
- 51单片机驱动DS1302时间模块+DS18B20温度
- 四按键控制四个LED亮灭的源程序和P
- 单片机测量占空比-代码
- protues 太阳能LED路灯充电控制器模拟充
- hmc5883l 与51单片机接线图
- 基于51单片机-智能红外遥控寻迹避障
- 基于51单片机-温度监控系统
- ESP8266模块 上传数据 到 乐联网和反
- 基于8051单片机的电机智能软启动器
评论
共有 条评论