本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成家电远程控制的整个系统,其中包含中控部分、输入部分和输出部分。中控部分采用了STC89C52单片机,其主要作用是获取输入部分数据,经过内部处理,控制输出部分。输入由四部分组成,第一部分是蓝牙模块,通过JDY-31蓝牙与手机配对连接,通过手机远程控制加热、制冷、空调的开关、热水器的开关、空气净化器的开关;第二部分是DS18B20温度检测模块,用于获取当前温度值;第三部分是独立按键,通过三个独立按键切换自动/手动模式标志位、控制空调开关、空调打开时,控制加热、制冷、停止、控制热水器开关、控制空气净化器开关等;第四部分是供电电路,给整个系统进行供电。输出由六部分组成,第一部分是LCD1602显示模块, 通过该模块可以显示当前的温度、自动/手动模式、空调状态、空调的加热和制冷状态、热水器状态、空气净化器状态;第二部分是继电器控制加热片,当温度小于设置最小值时,加热继电器闭合,进行加热;第三部分是继电器控制制冷片,当温度大于设置最大值时,制冷片工作,进行制冷;第四部分是继电器控制空调,当温度不在设定的阈值之内,则继电器闭合,打开空调;第五部分是继电器控制热水器,在需要时打开或关闭;第六部分是继电器控制空气净化器,在需要时打开或关闭。
【资料】下载地址:点击下载(1623) 百度网盘
uchar flag_relay_zl = 0; //制冷继电器标志位
uchar flag_relay_rsq = 0; //热水器继电器标志位
uchar flag_relay_jhq = 0; //空气净化器继电器标志位
uchar flag_temp = 0; //温度控制标志位
uint temp_value = 0; //温度值
uint temp_max = 30; //温度最大值值
uint temp_min = 15; //温度最小值
extern uchar uart_num; //串口接收数据
/**********************************
函数声明
**********************************/
void Delay_function(uint x); //延时函数
void Key_function(void); //按键函数
void Monitor_function(void); //监测函数
void Display_function(void); //显示函数
void Manage_function(void); //处理函数
/****
******* 主函数
*****/
void main()
{
Lcd1602_Init(); //LCD1602初始化
Delay_function(50); //延时50ms
lcd1602_clean(); //清屏
Delay_function(50); //延时50ms
Ds18b20_Init(); //DS18B20初始化
Delay_function(50); //延时50ms
Uart_Init(); //串口初始化
Delay_function(50); //延时50ms
while(1)
{
Key_function(); //按键函数
Monitor_function(); //监测函数
Display_function(); //显示函数
Manage_function(); //处理函数
本设计以STC89C52单片机为核心控制器,加上其他的模块一起组成家电远程控制的整个系统,其中包含中控部分、输入部分和输出部分。中控部分采用了STC89C52单片机,其主要作用是获取输入部分数据,经过内部处理,控制输出部分。输入由四部分组成,第一部分是蓝牙模块,通过JDY-31蓝牙与手机配对连接,通过手机远程控制加热、制冷、空调的开关、热水器的开关、空气净化器的开关;第二部分是DS18B20温度检测模块,用于获取当前温度值;第三部分是独立按键,通过三个独立按键切换自动/手动模式标志位、控制空调开关、空调打开时,控制加热、制冷、停止、控制热水器开关、控制空气净化器开关等;第四部分是供电电路,给整个系统进行供电。输出由六部分组成,第一部分是LCD1602显示模块, 通过该模块可以显示当前的温度、自动/手动模式、空调状态、空调的加热和制冷状态、热水器状态、空气净化器状态;第二部分是继电器控制加热片,当温度小于设置最小值时,加热继电器闭合,进行加热;第三部分是继电器控制制冷片,当温度大于设置最大值时,制冷片工作,进行制冷;第四部分是继电器控制空调,当温度不在设定的阈值之内,则继电器闭合,打开空调;第五部分是继电器控制热水器,在需要时打开或关闭;第六部分是继电器控制空气净化器,在需要时打开或关闭。
【资料】下载地址:点击下载(1623) 百度网盘
uchar flag_relay_zl = 0; //制冷继电器标志位
uchar flag_relay_rsq = 0; //热水器继电器标志位
uchar flag_relay_jhq = 0; //空气净化器继电器标志位
uchar flag_temp = 0; //温度控制标志位
uint temp_value = 0; //温度值
uint temp_max = 30; //温度最大值值
uint temp_min = 15; //温度最小值
extern uchar uart_num; //串口接收数据
/**********************************
函数声明
**********************************/
void Delay_function(uint x); //延时函数
void Key_function(void); //按键函数
void Monitor_function(void); //监测函数
void Display_function(void); //显示函数
void Manage_function(void); //处理函数
/****
******* 主函数
*****/
void main()
{
Lcd1602_Init(); //LCD1602初始化
Delay_function(50); //延时50ms
lcd1602_clean(); //清屏
Delay_function(50); //延时50ms
Ds18b20_Init(); //DS18B20初始化
Delay_function(50); //延时50ms
Uart_Init(); //串口初始化
Delay_function(50); //延时50ms
while(1)
{
Key_function(); //按键函数
Monitor_function(); //监测函数
Display_function(); //显示函数
Manage_function(); //处理函数