找回密码
 注册
关于网站域名变更的通知
查看: 967|回复: 7
打印 上一主题 下一主题

51单片机温控器PID程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-6 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
/*****************************************************/
1 B: ]( l# u0 y. B8 K; g( v/*采用AT89C51为主控制芯片*/
$ d( K& K( l; M/*P0口为数码管的段选口,P2.4~P2.7为位选口*/
: i9 z  o; T% R. _8 B; L/*DS18B20的DQ接P2.3,12MHZ晶振*/9 v1 y+ g1 _; T% R& R; {$ [
/*P2^2,PWM控制脚*/, {- R0 e; L. x5 c; O) b! E$ A
/*****************************************************/
, V# G% E" F: Z% p( R6 L#include<reg51.h>
# }  l. B- P; Y#define Kp 1        //比例系数
) i, k1 X1 }  B& x5 x, L9 Z4 `#define Ki 0.25 //积分系数. o7 _* q' o" l# t, N( a
#define Kd 1        //微分系数, ?7 F/ d* P8 O# ^. ?! D7 I; c1 s3 p

! m3 _, Z6 M8 Q" c& x0 k0 o! Uunsigned char m,n,p;                          //温度的十位 个位 小数
9 G4 p: T! [+ D2 Funsigned char test_temp;                //温度检定标志
- s& h& }; W$ }unsigned char key_set_flag;                //按键设定进入标志7 z$ D- g* |" A/ Z# q2 ?3 q" f
unsigned char key_hold;                        //按键保持标志
) a0 F3 }0 e( m# w! Z% ?6 m% Hunsigned char Change_step=1;        //温度设置步进5 C8 {3 X5 g2 ]8 T( t/ P$ F
int Real_temp;                //实际温度值
+ y  z7 _' v6 k: T) g* Vint Set_temp;                //设置温度
( v0 ]0 ~& n" k( q! H+ wint Disp_temp;                //显示温度
, ^+ C3 H4 ^% f! j( m( Aint last_error;                //上次误差+ Z, Y4 r9 }0 y6 e, S$ D3 D
float I_term;                //前面温差和
$ X( N" a+ L% r; I$ K4 y1 l' H
# _% B; u! u% @& T1 @int PID_MAX;7 G0 A- C6 J; A$ i( Z
unsigned int out,PWMT,counter;% n2 g  x) V1 r  G+ v  \
int time;        //可控硅脉冲触发时刻
7 u! k+ }6 h4 M2 u/ b3 X# ~  Y# i9 e
sbit DQ=P2^3;        //定义DS18b20的管脚5 W; \* Q' [1 ?) ^% r+ a0 C
sbit L1=P2^7;        //定义控制数码管的管脚
0 F2 d( ^- [, Msbit L2=P2^6;
5 i8 t7 N5 o6 y% l6 M4 fsbit L3=P2^5;
- _) u0 Y" i# h4 k. G3 Hsbit L4=P2^4;
$ ?( U% X6 y2 M! [* y% ]4 v$ ]# `sbit PWM=P2^2;        //PWM控制脚
7 ]$ {6 ~' P4 m6 b* X
& G1 `5 G8 I# O* ~; v( funsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,+ V1 j" M1 U$ ^' o: s9 s
0x82,0xF8,0x80,0x90,0x7F,0xbF,0xC6};//0-9数字,后面为". - C"
  {6 p$ e' I- R5 w
游客,如果您要查看本帖隐藏内容请回复

# K! j# H$ N. k' L$ _; {- R
) ?0 V2 w" c: ^7 g

该用户从未签到

2#
发表于 2020-1-6 18:33 | 只看该作者
不错的算法!

该用户从未签到

7#
发表于 2021-7-17 08:02 | 只看该作者
哈哈哈。。看看学习学习+ W+ `% Y/ E/ p% f4 x% r" w3 e% y

该用户从未签到

8#
发表于 2021-7-24 11:30 | 只看该作者
不错的算法!, u, K, `" A8 s8 B2 l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 23:22 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表