首页 > 其他分享 >基于51单片机的锅炉控制【热电偶,数码管,PID】(仿真)

基于51单片机的锅炉控制【热电偶,数码管,PID】(仿真)

时间:2024-04-02 23:29:58浏览次数:25  
标签:delay uchar 51 1602 PID write 数码管 uint com

1、使用N型热电偶测量锅炉内部温度

2、设置温度值,温度低于设定值则启动加热

3、加热过程使用PID控制,PID参数固定

4、数码管显示温度

5、温度过限报警

#include "lcd1602.h"

void delay_uint(uint i)
{
	while(i--);
}
/********************************************************************
* 名称 : write_com(uchar com)
* 功能 : 1602命令函数
* 输入 : 输入的命令值
* 输出 : 无
***********************************************************************/
void write_com(uchar com)
{
	e=0;
	rs=0;
	rw=0;
	P0=com;
	delay_uint(20);
	e=1;
	delay_uint(20);
	e=0;
}

/********************************************************************
* 名称 : write_data(uchar dat)
* 功能 : 1602写数据函数
* 输入 : 需要写入1602的数据
* 输出 : 无
***********************************************************************/
void write_data(uchar dat)
{
	e=0;
	rs=1;
	rw=0;
	P0=dat;
	delay_uint(20);
	e=1;
	delay_uint(20);
	e=0;	
}

/********************************************************************
* 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下
	 	 write_string(1,5,"ab cd ef;")
* 输入 : 行,列,需要输入1602的数据
* 输出 : 无
***********************************************************************/
void write_string(uchar hang,uchar add,uchar *p)
{
	if(hang==1)   
		write_com(0x80+add);
	else
		write_com(0x80+0x40+add);
		while(1)
		{
			if(*p == '\0')  break;
			write_data(*p);
			p++;
		}	
}

/********************************************************************
* 名称 : init_1602()
* 功能 : 初始化1602液晶 
* 输入 : 无
* 输出 : 无
***********************************************************************/
void init_1602()
{
	write_com(0x38);						//数据总线为8位,显示2行,5x7点阵
	write_com(0x0c);						//开显示,有光标,光标闪烁
	write_com(0x06);						//光标自动右移
	delay_uint(1000);						//等待设置完成
}

资料借鉴于此纷传

标签:delay,uchar,51,1602,PID,write,数码管,uint,com
From: https://blog.csdn.net/qq_63964231/article/details/137297644

相关文章

  • 基于51单片机的波形发生器【矩形波,三角波,锯齿波,固定频率,】(仿真)
    #include"lcd1602.h"voiddelay_uint(uinti){ while(i--);}/*********************************************************************名称:write_com(ucharcom)*功能:1602命令函数*输入:输入的命令值*输出:无*********************************......
  • 点阵LED数码管显示驱动IC VK16K33 A/B/C/BA/AA 驱动电流大 质量稳定 适用于计量插座,数
    VK16K33是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED显示面板。最大支持13×3的按键。内置上电复位电路,整体闪烁频率可......
  • 蓝桥杯单片机速成2-动态数码管数码管显示
    一、原理图段选给1是选中,该数码管是共阳极的数码管,位选输入0才会电亮一位二、代码分析/*************本地常量声明**************/u8codet_display[]={//标准字库//0123456789ABC......
  • C51 单片机(STC89 C52RC)#笔记3
    Task1:基于51核心板设计一个按键计数器。要求:判断KEY1按下,每次按下按键后记录按动次数加1,并且能在数码管上显示,能够从0计数至99。#include<STC89C5xRC.H>voidDelayNums(unsignedintxms) //@11.0592MHz{ while(xms--) { unsignedchari,j; i=2; j=199;......
  • C51 单片机(STC89 C52RC)#笔记2
    Chapter4独立按键输入4.1按键检测原理当按键未按下时,输入芯片引脚的电平为高电平;按键按下时,输入芯片引脚上的电平为低电平。sbitKEY1=P3^2;//位定义P3^2;//判断是否被按下if(0==KEY1){......//按键按下处理}4.2按键软件去抖原理抖动:核心部件为弹性金属弹簧......
  • 基于51单片机智能手腕计步器步数体温检测OLED显示设计20-418
    20-418、51手腕计步器设计-ADXL345-DS18B20-OLED-BELL产品功能描述:本系统由STC89C52单片机+ADXL345加速度传感器+DS18B20温度检测电路+0.96寸OLED液晶显示屏电路+蜂鸣器报警电路+电源电路组成。1、通过ADXL345检测步数,通过DS18B20检测温度。2、0.96寸OLED液晶实时显示步数......
  • 基于STM32单片机智能PID温度控制系统OLED显示设计定制20-408
    20-408、基于STM32智能温度控制系统设计功能:本设计由STM32F103C8T6单片机核心板电路+OLED液晶显示屏电路+DS18B20温度检测电路组成。产品功能描述:1、OLED液晶屏第一列显示目标温度和加热时间。第二列显示实时温度和制冷时间。2、如果当前温度低于目标温度,则系统开始加热,否......
  • [题解]P2516 [HAOI2010] 最长公共子序列——求LCS个数
    P2516[HAOI2010]最长公共子序列总的来说,这道题确实很精妙,难度也不小,耗费了不少时间去调。本来想过用容斥的思想,却因为当时理解不深没有继续思考就放弃了。学会了思路后对\(LCS\)有了更深层次的理解。题意简述给定\(A,B\)两个字符串(以.结尾),求它们的最长公共子序列的长度和个数......
  • NodeJS 高校学业预警系统 毕业设计-10551
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,教育行业当然也不能排除在外。高校学业预警系统是以实际运用为开发背景,运用软件工程开发方法,采用Node.JS技术构建的一个管理系统。整个开发过程首先对软件系......
  • 基于51单片机的雨刮器【雨量,速度,手动自动,点动,数码管】(仿真)
    #include"DHT11.h"unsignedchardht11_dat1[5];//湿度高低+温度高低+和校验unsignedchardht11_dat2[5];voiddelay1ms(unsignedinti)//延时函数{unsignedcharj;while(i--){ for(j=0;j<110;j++);}}voiddht11_recive1()//接收{unsignedch......