×
单片机 > 单片机程序设计 > 详情

单片机模拟空调温度控制器,按键设定温度和控制风力

发布时间:2021-12-06 发布时间:
|

空调温度控制器,LCD1206显示,按键设定温度和控制风力,流水灯模拟风力,红色LED指示灯代表加热电机工作,蓝色LED指示灯代表制冷电机工作。

单片机源程序如下:

/*用于QX—mini5学习板*/


#include

#include "LCD1602.h"

#include "DS18B20.h"

//#include "uart.h"


sbit jdq = P0^0; //用蜂鸣器代替继电器


sbit key1=P3^5; //设定温度加

sbit key2=P3^4; //设定温度减

sbit key3=P3^3; //设定风力加

sbit key4=P3^2; //设定风力减


uint num=260; //设定温度初始值

uchar num1=0; //设定风力初始值


uchar code table[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//风级

//

//void uart_init(void)

//{

// TMOD=0x20; //用定时器设置串口波特率

// TH1=0xfd;

// TL1=0xfd;

// TR1=1;

// REN=1; //串口初始化

// SM0=0;

// SM1=1;

// EA=1; //开启总中断

// ES=1; //开启串口中断

//}


void keyscan() //设定温度按键扫描函数

{

if(key1==0)

{

delay(10);

if(key1==0)

{

while(!key1);

num++;

}

}

if(key2==0)

{

delay(10);

if(key2==0)

{

while(!key2);

num--;

}

}

}


void keyscan1() //设定风级按键扫描函数

{

if(key3==0)

{

delay(10);

if(key3==0)

{

while(!key3);

num1++;

P1=table[num1];

if(num1==9)

{

num1=0;

P1=0xff;

}

}

}

if(key4==0)

{

delay(10);

if(key4==0)

{

while(!key4);

num1--;

P1=table[num1];

if(num1==255)

num=0;

}

}

}


void main(void) //主函数

{

uint temp;

LCD_init( ); //LCD初始化

// uart_init();

string(0x80,"TE:");

string(0x80+0x40,"SE:");

string(0x80+0x0a,"WP:");

while(1)

{

tmpchange(); //开始转换温度

temp = tmp(); //读取到温度赋给temp


keyscan(); //设置温度

keyscan1(); //设置风级

if(temp/10 > num/10) //读取温度大于设定温度

{

jdq = 0; //蜂鸣器报警(继电器吸合)

}

if(temp/10 < num/10) //读取温度小于设定温度

{

jdq = 1; //蜂鸣器关闭(继电器断开)

}

write_command(0x80+0x03); //第一行第四位开始显示

write_data(0x30+temp/100);

write_data(0x30+temp/10%10);

write_data('.');

write_data(0x30+temp%10);

write_data(' ');

write_data('C');


write_command(0x80+0x43); //第二行第四位开始显示

write_data(0x30+num/100);

write_data(0x30+num/10%10);

write_data('.');

write_data(0x30+num%10);

write_data(' ');

write_data('C');

write_command(0x80+0x0d); //第一行第13位开始显示

write_data(0x30+num1%10);

// SBUF = temp;

}

}




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析