pid温度控制c语言程序,51单片机PID温度控制程序

该程序展示了如何使用C语言在51单片机上实现PID温度控制。通过DS18B20传感器读取温度,用户可以设定目标温度,并通过按键进行加减操作。程序包含按键扫描、数码管显示以及PID算法,以调节加热元件的占空比,保持温度在设定值附近。
摘要由CSDN通过智能技术生成

/***********************************************************************

PID温度控制程序

程序说明:

系统上电后显示 “--温度”

表示需要先设定温度才开始进行温度检测

温度设定完毕后程序才开始进行PID温控

***********************************************************************/

#include

#include

#include"DS18B20.H"

#include"PID.H"

#define uchar unsigned char

#define uint unsigned int

unsigned char code tab[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xBF

}

;

/*个位0~9的数码管段码*/

unsigned char code sao[]=

{

0x7f,0xbf,0xdf,0xef

}

;

//扫描码

uchar set=30,keyflag=1 ; //set初始化为30° keyflag为进入温度设定的标志位

//4个按键使用说明

sbit key_out=P1^0 ; //用于温度设定后的退出

sbit key_up=P1^1 ; //设定温度加

sbit key_down=P1^2 ; //设定温度减

sbit key_in=P1^3 ; //在程序的运行中如需要重新设定温度 按下此键才能进入设置模式并且此时是停在温度控制的,按下key_out键后才表示设定完毕

void Show_key();

/***********************************************************/

void delays(unsigned char k)

{

unsigned char i,j ;

for(i=0;i

for(j=0;j<50;j++);

}

/*********************************************************

//数码管显示函数

P0口 作为数据口

P2口的低四位作为扫描口

变量 x表示扫描

d表示是否要加小数点 为1是 为0不加

y表示传递的数值

*********************************************************/

LCD_disp_char(uchar x,bit d,uchar y)

{

P2=0XFF ;

P0=0xFF ;

if(d==0)

P0=tab[y];

else

P0=tab[y]&0x7f ; //与上0x7f表示是否要加小数点

P2=sao[x]; //打开扫描端号

}

/****************

  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值