硬件设计

(末尾附文件)

代码设计

#include <REGX51.H>
#define Kp 5    //比例系数
#define Ki 2    //积分系数
#define Kd 1    //微分系数unsigned char m,n,p;              //温度的十位 个位 小数
unsigned char test_temp;        //温度检定标志
unsigned char key_set_flag;     //按键设定进入标志
unsigned char flag=1;          //按键保持标志
unsigned char Change_step=1,e; //温度设置步进
unsigned char T0_H = 0,T0_L = 0,T1_H=0,T1_L=0;
int Real_temp;      //实际温度值
int Set_temp;       //设置温度
int Disp_temp;      //显示温度
int last_error;     //上次误差
float I_term;       //前面温差和
bit key_hold;
int PID_MAX;
unsigned int out,PWMT,counter,kk,outp,dz;
int time;   //脉冲触发时刻sbit DQ=P2^4;  //定义DS18b20的管脚sbit RS = P2^0;   //定义液晶屏定义端口
sbit RW = P2^1;      //定义液晶屏定义端口
sbit EN = P2^2;      //定义液晶屏定义端口 sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit PWM=P2^7; //PWM控制脚
sbit led1=P3^5;
sbit led2=P3^6;
sbit led3=P3^7;
sbit beep=P1^3;#define RS_CLR RS=0
#define RS_SET RS=1#define RW_CLR RW=0
#define RW_SET RW=1#define EN_CLR EN=0
#define EN_SET EN=1unsigned char aa[]={' ',' ','S','e','t','u','p',':',' ',' ','.',' ',' ',' ',' ',' '};     //Distance
unsigned char bb[]={' ',' ',' ',' ',' ',' ',' ','.',' ',' ',' ',' ',' ',' ',' ',' '};  void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s);
void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data);
void init();            //初始化
/*------------------------------------------------uS延时函数,含有输入参数 unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编,大致延时长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   while(--t);
}
/*------------------------------------------------mS延时函数,含有输入参数 unsigned char t,无返回值unsigned char 是定义无符号字符变量,其值的范围是0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{while(t--)         //大致延时1mS{DelayUs2x(245);DelayUs2x(245);}
}/*****延时子程序*****/
void delay(unsigned int t)
{for(;t>0;t--);
}
void delay_50us(unsigned int t)
{unsigned char j;for(;t>0;t--)for(j=19;j>0;j--);
}/*****初始化DS18B20*****/
unsigned char Init_DS18B20(void)
{unsigned char x=0;DQ = 1;      //DQ复位delay(8);    //稍做延时DQ = 0;      //单片机将DQ拉低delay(80);   //精确延时,大于480usDQ = 1;      //拉高总线delay(8);x = DQ;      //稍做延时后,如果x=0则初始化成功,x=1则初始化失败delay(4);return x;
}/*****读一个字节*****/
unsigned char ReadOneChar(void)
{unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0;     // 给脉冲信号dat>>=1;DQ = 1;     // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);
}/*****写一个字节*****/
void WriteOneChar(unsigned char dat)
{unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(4);DQ = 1;dat>>=1;}delay(4);
}/*****读取温度*****/
int ReadTemperature(void)
{unsigned char a=0;unsigned char b=0;unsigned int t=0;t=Init_DS18B20();if(t) return Real_temp;WriteOneChar(0xCC);  //跳过读序号列号的操作WriteOneChar(0x44);  //启动温度转换t=Init_DS18B20();if(t) return Real_temp;WriteOneChar(0xCC);  //跳过读序号列号的操作WriteOneChar(0xBE);  //读取温度寄存器a=ReadOneChar();     //读低8位b=ReadOneChar();     //读高8位t=b;t<<=8;t=t|a;if(t<=0||t>0x900) return Real_temp;t=t*0.625+0.5;return(t);
}void key_set(void)
{if(k1==0){delay(10);while(!k1);key_hold=~key_hold;}if(key_hold==0){if(k2==0){delay(10);while(!k2);Set_temp=Set_temp+1;if(Set_temp>99)Set_temp=99;}if(k3==0){delay(10);while(!k3);Set_temp=Set_temp-1;if(Set_temp<1)Set_temp=1;}aa[8]=10*Set_temp/100+'0';aa[9]=10*Set_temp/10%10+'0';aa[11]=10*Set_temp%10+'0';LCD_Write_String(0,0,aa);}
}int PID(int Set_value,int Real_value) //标准PID温度控制算法
{

链接:https://pan.baidu.com/s/1-7jPWHbmqp0_LqZ1gxaXDg
提取码:70ux

基于51单片机的pid算法温度控制系统protues仿真相关推荐

  1. 基于51单片机的全自动智能洗衣机控制系统Proteus仿真(仿真+源码+全套资料)

     资料编号:108 设计功能: 1.对水温实时显示 2.显示滚筒转速 3.显示运行倒计时 4.能通过按钮分别设置洗涤时间和脱水时间 5.运行过程为:加热--洗涤--脱水 具体功能请看下方演示视频 10 ...

  2. 基于51单片机的汽车灯光报警控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.模拟汽车灯光控制系统,支持双闪,转向灯光控制 2.上锁后,非法进入,灯光双闪,喇叭报警,报警电路采用的LED和蜂鸣器组成的声光报警系统 3.本系统 ...

  3. 基于51单片机智能IC卡水表控制系统(仿真+源程序+全套资料)

    资料编号:200 功能介绍: 采用51单片机作为主控CPU,使用按键进行模拟冲卡(模拟缴费冲卡),通过按键来控制当前是否使用自来水,并且LCD1602实时显示当前自来水可用量剩余多少,当自来水余额不足 ...

  4. 基于51单片机的恒温箱水温温度控制系统报警器方案原理图设计

    硬件电路的设计 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+数字温度传感器DS18B20电路+按键电路+蜂鸣器报警电路+继电器控制电路+LCD1602液晶 ...

  5. 基于51单片机的衣柜鞋柜湿度控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前湿度值 2.当湿度超过设定湿度阈值范围时,启动加热和风机控制继电器,否则关闭 3.按键可设定湿度阈值 4.采用D ...

  6. 基于51单片机的水箱水位监测控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.通过传感器监测水位,当水位低于水位下限时,接通加水水泵,直到水位达到水位上限,停止加水 2.水位低于水位下限时,声光报警 3.可按键手动加水, ...

  7. T027基于51单片机的智能窗帘窗户控制系统proteus仿真原理图PCB

    功能: 0.本系统采用单片机STC89C52作为系统的主控芯片 1.系统采用LCD1602液晶实时显示当前时间/窗帘状态/光照强度 2.系统具有四个功能按键,支持手动按键/定时/遥控三种模式控制窗帘 ...

  8. 基于51单片机的两相步进电机控制系统proteus仿真

    硬件设计 (末尾附文件) 代码设计 #include "MAIN.H" #include "LCD1602.h" #include "PCF8591. ...

  9. 基于51单片机自动数字电压表PCF8591 TLC2543 TL548 proteus仿真汇编程序设计

    硬件设计1 基于51单片机+PCF8591 ADC的仿真电路图: A. 基于51单片机和PCF8591的电压表,具有仿真图/源程序: B. 由数码管作为显示器: C.测试电压范围为0~5V,精度约为0 ...

  10. 基于51单片机的智能加湿器设计。 有仿真,程序,原理图,原文

    基于51单片机的智能加湿器设计. 有仿真,程序,原理图,原文. 可做实物. 通过DHT11实时监测环境温湿度,按键设定温湿度阈值,超限加湿器工作. 有水位检测电路,水位不足时候,报警提醒,防止干烧. ...

最新文章

  1. NTU课程 CE7454 回归与分类
  2. python tkinter 弹窗_tkinter主窗口和子窗口同时弹出该怎么办?
  3. 【WEB API项目实战干货系列】- WEB API入门(一)
  4. 团队作业3——需求改进系统设计
  5. hihoCoder 1114 小Hi小Ho的惊天大作战:扫雷·一 最详细的解题报告
  6. windows和linux存储float,C语言float型数据在内存中的储存方式
  7. php树菜单转化为一维菜单,php树型菜单 - iturtle的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. python提供两个对象身份比较操作符_标准类型对象比较操作符
  9. html表单的首要标记是form,关于html中表单form标记的介绍
  10. 按钮固定在页面底端html,css实现按钮固定在底部
  11. 测试用例-其他相关知识
  12. 再起航,我的学习笔记之JavaScript设计模式13(装饰者模式)
  13. 华硕计算机u盘启动不了怎么办,华硕笔记本、台式机无法从U盘启动安装系统的终极解决办法-网络教程与技术 -亦是美网络...
  14. 125KHz 100cm ID 读卡电路_二维码门禁读卡器动态二维码扫描器二维码刷卡读头介绍...
  15. HotSpot的新生代三区划分好在哪?
  16. 【线性代数】6-1:特征值介绍(Introduction to Eigenvalues)
  17. R语言基础(用最简单的方式了解学习R语言)
  18. c语言tab什么意思_我的C语言入门笔记。
  19. 报错解决:expected START_TAG or END_TAG not TEXT (position: TEXT seen
  20. words and sentences

热门文章

  1. 【f1c200s/f1c100s】屏幕背光驱动适配
  2. 回归分析常数项t值没有显著异于零怎么办_SPSS线性回归|太方便了,别人不想告诉你的其他操作我都总结好了(中)...
  3. 数据清洗挑战Day1 | 手把手教你处理数据集中的缺失值
  4. 名老中医经验继承研究现状及“中医处方智能分析系统”应用前景
  5. 高级计算机程序员实操题,国家计算机软考高级程序员历年真题1990.doc
  6. yolov3详细讲解
  7. 牛逼,在浏览器中解锁加密的音乐文件
  8. dagger2简单使用与理解笔记
  9. 这位985名校的教授火了!当了10年博导,竟无一博士毕业?
  10. 软件盗版受害者解决方法