10087-基于单片机的智能燃气灶控制系统设计(仿真+原理图+源代码工程+详细介绍说明书)
功能描述:
本次设计的题目是智能燃气灶控制系统。系统需要实现的功能有:防干烧、温度监测、火力调节、语音播报等功能。使用的到的主控制芯片是51单片机;液晶显示器作为系统的显示单元展示控制信息;按键控制气阀大小与防干烧的定时设置;语音播报当前智能燃气灶的火力大小信息;温度传感器检测燃气灶运行时的温度大小,如果温度超过设定温度将关闭气阀保证燃气灶的使用安全,实现智能化。系统完成硬件、软件设计,并通过仿真的方式实现系统的功能测试,完成系统设计。
资料摘要:
燃气灶是家里常用的设备,家里常用的是传统的通过机械阀门控制燃气灶的开关。机械方式开关容易出现老化的问题。在燃气灶使用的时候还会容易忘记燃气灶开着会导致一系列的问题,甚至是火灾的发生。当前的科技已经融入到了生活中的方方面面,已经可以实现智能燃气灶控制系统,保证家庭使用的安全。
本次设计的题目是智能燃气灶控制系统。系统需要实现的功能有:防干烧、温度监测、火力调节、语音播报等功能。使用的到的主控制芯片是51单片机;液晶显示器作为系统的显示单元展示控制信息;按键控制气阀大小与防干烧的定时设置;语音播报当前智能燃气灶的火力大小信息;温度传感器检测燃气灶运行时的温度大小,如果温度超过设定温度将关闭气阀保证燃气灶的使用安全,实现智能化。系统完成硬件、软件设计,并通过仿真的方式实现系统的功能测试,完成系统设计。
在设计中考虑到了系统的定位精度、稳定性、抗干扰能力等,保证设计是一个可以经历市场验证的控制系统。
资料包含:
1、详细设计说明书-17684字
2、仿真工程文件
3、原理图工程文件
4、源代码工程文件
5、流程图
6、任务书
#include<reg52.h> //头文件
#include<intrins.h>//头文件
#include <stdlib.h> //包含产生随机数用到的rand()函数。
#include <stdio.h> // 为使用KEIL自带的库函数printf而加入
#define FOSC 11892396L //System frequency
#define BAUD 9600 //UART baudrate
void UART_init(void);
void printf_char_int_long(void);
void printf_float(void);
void printf_String(void);
#define uint unsigned int //宏定义
#define uchar unsigned char//宏定义
#define datlcd P0
sbit lcdrs = P2^0; //液晶读
sbit lcdrw = P2^1; //液晶写
sbit lcden = P2^2;//液晶选择
sbit k1=P1^1; //设置
sbit k2=P1^2; //加
sbit k3=P1^3; //减
sbit k4=P1^4; //开关
sbit k5=P1^5; //火力强
sbit k6=P1^6; //火力弱
sbit led1=P2^3; //火力大小
sbit led2=P2^4;
sbit led3=P2^5;
sbit led4=P2^6; //工作指示灯
sbit DSPORT=P1^0;
int Ds18b20ReadTemp();
int DS_temp;
float tp;
char shi,fen=1,miao=10,num1;
char shi1,fen1=1,miao1=10;
uchar flag,gqflag; //关气标志位
uchar i,j,ii,jj;
uchar khflag; //开火标志位
void Delay1(uint j)
{
uchar i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void Delay_10us(void)
{
uchar i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void delay(uint xms) //延时
{
uint xx,yy;
for (xx=xms;xx>0;xx--)
for(yy=110;yy>0;yy--);
}
unsigned char Ds18b20Init() //温度传感器初始化
{
unsigned int i;
DSPORT=0;
i=70;
while(i--);
DSPORT=1;
i=0;
while(DSPORT)
{
i++;
if(i>5000)
return 0;
}
return 1;
}
void Ds18b20WriteByte(unsigned char dat) //温度传感器写字节函数
{
unsigned int i,j;
for(j=0;j<8;j++)
{
DSPORT=0;
i++;
DSPORT=dat&0x01;
i=6;
while(i--);
DSPORT=1;
dat>>=1;
}
}
unsigned char Ds18b20ReadByte() //温度传感器读字节函数
{
unsigned char byte,bi;
unsigned int i,j;
for(j=8;j>0;j--)
{
DSPORT=0;
i++;
DSPORT=1;
i++;
i++;
bi=DSPORT;
byte=(byte>>1)|(bi<<7);
i=4;
while(i--);
}
return byte;
}
void Ds18b20ChangTemp() //温度传感器获取温度并转换函数
{
Ds18b20Init();
delay(1);
Ds18b20WriteByte(0xcc);
Ds18b20WriteByte(0x44);
}
void Ds18b20ReadTempCom() //读取温度命令
{
Ds18b20Init();
delay(1);
Ds18b20WriteByte(0xcc);
Ds18b20WriteByte(0xbe);
}
![请添加图片描述](https://i-blog.csdnimg.cn/direct/16126a4354cc40a990db5d9595f7695d.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/5ee830b4d6fd42fdadc1fa86303c748d.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/85be89d9bedf4bf4a0cd8d424bfb2f14.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/41ab4b505539489580cb6d2c784882a9.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/529138f929b840b190508d680e1d57af.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/ebc1270482d14b618a19564030d3f9da.png)
![请添加图片描述](https://i-blog.csdnimg.cn/direct/1aed0388d5254f78b8a310b7daecfec3.png)