资源简介
本实例采用51单片机,AD,DA设计,采用单片机C语言编程,并且通过Proteus软件仿真。第一次上传资料,请大家多多指教
代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define KP 100
#define TI 2
#define TD 1
#define T 1
sbit start=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
float y_cur;
float y_pre;
float e_cur;
float e_pre;
float e_last;
float u_cur;
float u_pre;
float u_aug;
uchar AD;
uint INPUT=3;
uint r;
void pid_init()
{
r=INPUT;
y_cur=0;
y_pre=0;
u_pre=0;
e_pre=0;
e_last=0;
}
float pid_process()
{
float q0 q1 q2;
e_cur=r-y_cur;
q0=(float)( KP*(1+T/TI+TD/T));
q1=-KP-2*KP*TD/T;
q2=KP*TD/T;
u_aug=q0*e_cur+q1*e_pre+q2*e_last;
u_cur=u_aug+u_pre;
u_pre=u_cur;
e_last=e_pre;
e_pre=e_cur;
y_pre=y_cur;
return u_cur;
}
void dac1()
{
uint idata out;
out=(int)(pid_process());
P0=out;
}
void delayms()
{
int ij;
for(i=0;i<1000;i++)
{
for(j=0;j<10;j++);
{
;
}
}
}
void ad_0808( )
{
start=1;
start=0;
while(EOC==0)
{
OE=1;
}
AD=P2;
OE=0;
}
void adc()
{
ad_0808();
y_cur=AD;
}
void main()
{
pid_init();
while(1)
{
delayms();
dac1();
adc();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 119499 2010-01-07 22:54 数字PID\Last Loaded PID ok.DBK
文件 1078 2010-01-07 22:54 数字PID\PID ok.PWI
文件 119499 2010-01-07 22:54 数字PID\PID 控制器.DSN
文件 1296 2010-01-07 22:41 数字PID\PID 控制器.c
文件 2178 2010-01-07 18:52 数字PID\PID 控制器.Uv2
文件 6376 2005-03-22 15:22 数字PID\STARTUP.A51
文件 14063 2010-01-07 22:54 数字PID\STARTUP.LST
文件 758 2010-01-07 22:54 数字PID\STARTUP.OBJ
文件 3844 2010-01-07 22:54 数字PID\Text1.LST
文件 7682 2010-01-07 22:54 数字PID\Text1.OBJ
文件 7670 2010-01-07 22:54 数字PID\wo wo
文件 3646 2010-01-07 22:54 数字PID\wo wo.hex
文件 43 2010-01-07 22:54 数字PID\wo wo.lnp
文件 10354 2010-01-07 22:54 数字PID\wo wo.M51
文件 1034 2010-01-07 22:54 数字PID\wo wo.Opt
文件 1008 2010-01-07 22:54 数字PID\wo wo.plg
....... 1041 2010-01-07 22:06 数字PID\wo wo_Opt.Bak
....... 0 2010-01-07 17:57 数字PID\wo wo_Uv2.Bak
目录 0 2010-01-07 22:55 数字PID
----------- --------- ---------- ----- ----
301069 19
- 上一篇:随机生成汉字的小程序
- 下一篇:FIR滤波器的C语言实现
相关资源
- 模糊PID控制C语言程序.doc
- Project1.rar
- 模糊PID的C语言程序
- 自适应模糊PID代码 C++实现
- 控制方法的C语言实现
- VS2010版c++PID控制算法详尽注释
- PID算法Matlab仿真程序和C程序
- 模糊pid算法c语言
- C++实现获取win7系统端口号IP状态和P
- ABB机器人的socket通信UDPRapid代码
- RapidJson解析JSON文件C++ vs2017亲测可完美
- C++ rapidjson 对类序列化(完美二次封装
- 专家PID与模糊PID的C语言实现
- 模糊+PID C语言实现
- PID控制小车程序
- ABB机械臂与PC通讯(socket),附RAPID和
- 基于PID的汽车防抱死控制系统(ABS)
- PID控制简明教程
- PID 控制算法实现(fuzzy-PID-controller)
- 倒立摆控制代码
- 基于51单片机的直流电机PID调速
- 51单片机的PID温度自动控制
- PID控制算法的C语言实现(完整版)
- 51单片机采集PT100温度PID加热温度控制
- 基于C++的PID调节
- C语言增量式PID 代码
- 基于DSP的积分分离的PID控制算法
- 模糊自适应PID控制器
- 自适应模糊pidC代码
评论
共有 条评论