TA的每日心情 | 开心 2023-5-30 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
//PID算法温控C语言2008-08-17 18:58
0 x, K/ g! n" K; L8 }5 b" H#include<w77e58.h> " R) [" s6 ?" Y3 y0 A- L
#include<intrins.h>
3 C1 ?9 T9 ~$ `2 }#include<math.h> * {+ r; j. F$ y3 _& g! T% i1 Q! @: u+ r
#include<string.h>
* s' O8 z. Y. r/ s5 x$ hstruct PID { 1 G8 C3 g& e( Z5 U* G! u' ]1 g
unsigned int SetPoint; // 设定目标 Desired Value 5 ^+ G. x0 u( B% t4 L
unsigned int Proportion; // 比例常数 Proportional Const 6 ^( j/ Z+ d- g9 F5 c) o# `; x
unsigned int Integral; // 积分常数 Integral Const 1 F) H J0 i# t6 y, e0 f1 O+ J! w2 d
unsigned int Derivative; // 微分常数 Derivative Const - Z& ~( `1 Q z/ x$ V+ V
unsigned int LastError; // Error[-1] ! S0 {: G( H8 ]1 t& H. u- u
unsigned int PrevError; // Error[-2]
, G8 W) f2 I$ V1 |9 J+ C: t Tunsigned int SumError; // Sums of Errors 6 M% R g+ e: ~# l* i0 a
};
3 l$ I/ S* ]4 P& P5 ]! `6 o, ~+ qstruct PID spid; // PID Control Structure
8 y- B& J9 _+ G7 Punsigned int rout; // PID Response (Output) ; Q5 A) C4 S0 j, I* W: {/ p8 P
unsigned int rin; // PID Feedback (Input) ! ?6 \' p6 G$ v( b* H4 r) c
sbit data1=P1^0; 1 c2 A! i* x7 M0 ~. b, U% \& E! Z
sbit clk=P1^1;
1 ?: N3 G. s Y* C+ ~' @sbit plus=P2^0; ) N' e4 y* d/ a# {* ?5 @9 Z: G
sbit subs=P2^1;
% E2 S* s: `0 J5 |sbit stop=P2^2; ' ^9 Q( K* k9 O1 l/ Y6 T' o( }4 [
sbit output=P3^4;
- D% p" k- f6 l$ T# E, F- `sbit DQ=P3^3;
. h. F; q8 t4 s& |& wunsigned char flag,flag_1=0; % r6 {/ t- j; r9 f6 Z
unsigned char high_time,low_time,count=0;//占空比调节参数 5 o! r7 {0 Q( S
unsigned char set_temper=35; ( w8 ~: r$ n- z( Q- B& h
unsigned char temper; . a* K( o2 e$ x- }
unsigned char i;
+ I8 D6 A! U+ p. l$ i. H0 ]unsigned char j=0; ; ^7 N* E* o6 A9 G4 `* l
unsigned int s; 3 a2 p. U1 y/ |8 H! S$ Z: J$ c
/***********************************************************
0 Z Z9 P$ ?8 \- g- U+ A+ B! x# O延时子程序,延时时间以12M晶振为准,延时时间为30us×time 1 O$ L: _! r' {7 i5 d- I) O
***********************************************************/
( l( g9 x% ~7 R* ?# D: P+ Cvoid delay(unsigned char time) 2 u1 W7 E/ D; `+ r8 ^4 s1 O
{ ! X6 H' e3 o. [2 `' B
unsigned char m,n; 3 X1 {' S- i% i2 z( b
for(n=0;n<time;n++)
8 Q0 k5 ^7 c. g4 f3 Sfor(m=0;m<2;m++){} / a; Y: A$ Q) j% s
}
- }8 V ?: v5 @8 m+ R/***********************************************************
9 }+ t, S( E' N# ?. v; M4 V% O写一位数据子程序
% g# Q& L; H/ G( l+ _2 {" g3 T- @$ ?, A***********************************************************/ 6 p8 R! ^7 f$ Y
6 U8 J' u1 S6 Z2 ?. J+ a/ C2 O- }( B4 r' x+ s$ N- s, d
|
|