TA的每日心情 | 开心 2023-5-30 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
//PID算法温控C语言2008-08-17 18:58; U9 F. l0 ?$ T, U0 u% K
#include<w77e58.h>
* g8 O2 {! L9 d/ X" o( C#include<intrins.h> ' l+ e( r9 t/ L" x. t
#include<math.h>
' P: g& A' i. N#include<string.h> ' {' d' ^$ t: D" q
struct PID { 3 I! ?; {; v, C v" M; b; F: i
unsigned int SetPoint; // 设定目标 Desired Value
1 m" M! Q% t- P0 x' W- zunsigned int Proportion; // 比例常数 Proportional Const
# E) J' b2 Z, ]: n6 b6 Iunsigned int Integral; // 积分常数 Integral Const
& }0 M; @( w: ^% b# ]unsigned int Derivative; // 微分常数 Derivative Const
( o( \6 R7 }+ g( iunsigned int LastError; // Error[-1] ' r) ~" w* U: } F! c/ S) u J
unsigned int PrevError; // Error[-2] : j4 u+ p& V5 z
unsigned int SumError; // Sums of Errors 4 o! z( e4 S/ Y0 d' c' s C
};
( V+ Z" W9 [+ ^% _1 E& s6 |struct PID spid; // PID Control Structure , ~# @ T8 T5 c6 k
unsigned int rout; // PID Response (Output) 1 Q* g* ] W' _+ y5 Z! Y
unsigned int rin; // PID Feedback (Input) ; y d. R8 _$ N5 P: s7 W- k' S
sbit data1=P1^0;
: V. R1 `7 g' ^0 s# N( |sbit clk=P1^1;
4 w2 I4 Y) b7 s" ssbit plus=P2^0;
# m# z( w& s$ V, E7 \% H7 \sbit subs=P2^1;
D1 B' p" }0 j( j: }) tsbit stop=P2^2; 2 t* k) e9 v5 m# F0 X
sbit output=P3^4;
$ N+ x: S( O) V! j4 j+ [sbit DQ=P3^3; 7 l5 N4 l% X6 D- k7 f; Y* E z2 l
unsigned char flag,flag_1=0;
1 ^- ]+ g6 _1 @, wunsigned char high_time,low_time,count=0;//占空比调节参数 ; @6 U9 k F+ g+ a
unsigned char set_temper=35; 2 C# Q$ a/ ^' o* r: ?
unsigned char temper; / J! X; o3 v& S8 G+ w- V W
unsigned char i; / g7 [. B9 @# T; S2 A `+ W# M8 l
unsigned char j=0; . V5 u8 U2 a$ n( `6 x5 f
unsigned int s; 6 f" R! }9 J, b" E
/*********************************************************** ) G2 m& _$ k4 [7 k5 w
延时子程序,延时时间以12M晶振为准,延时时间为30us×time
4 ?3 e/ p" N+ u5 m1 z***********************************************************/ 4 u4 L: c/ b3 X$ f3 J
void delay(unsigned char time)
9 z" ~3 v5 Z/ A2 Z0 ?" n: ?2 I& q{
y9 \* J' l# h5 l. r& R" junsigned char m,n;
% r# K( F6 K+ |% E# X$ C3 f/ ?for(n=0;n<time;n++) , _, P+ o$ {: t
for(m=0;m<2;m++){}
+ X6 c$ {- c* j( W1 m" _+ f}
5 y5 J- @$ {; T% ^ f/*********************************************************** % r) `+ ?, C2 v5 [/ z( ?
写一位数据子程序 % b& `/ E1 \2 y$ u& g
***********************************************************/
. Q1 W8 m7 Z' v- m, l* y
4 Y3 w1 E$ y# M8 y* `' ^' ~1 E1 P; M+ j0 ]
|
|