基于51单片机的智能空调控制系统设计(仿真+代码+原理图+报告+视频讲解)
家庭能耗统计:智能系统提供详细用电报告,便于管理 #生活技巧# #家居装修建议# #智能家居配置#
基于51单片机的智能空调控制系统
1 开发环境
仿真图:proteus8.9以上
程序代码:KEIL4/KEIL5
原理图/PCB:AD
设计编号:A0003
讲解演示视频
视频
2 功能说明介绍
基于51单片机的空调温度控制系统
由STC89C51单片机+LCD1602液晶显示屏+L298N控制模块+直流电机+DS18B20温度传感器构成
具体功能:
(1)实现L298N对电机的控制,利用LCD1602直接、清晰明了的显示温度;
(2) 基于测得的温度实现对电机转速的控制(利用电机模拟空调变频系统);
(3)在自动模式下,温度越高,占空越高,转数越快。手动模式下,通过按键可以实现电机转速的控制。
3 仿真图
4 程序
4.1 工程文件
4.2 代码
主函数
#include<REG52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int uchar num=0; bit flang; sbit IN1=P3^5; sbit IN2=P3^6; sbit PWM1 =P3^7;//风扇控制引脚 uchar xianshi1[] ="TEMP 00.0C";// 内容 uchar xianshi2[] ="000% ";// 内容 uint wendu=0; uchar count; uchar jd=5; bit work;//开关标志 sbit k1=P1^0; // sbit k2=P1^1; // sbit k3=P1^2; // sbit DQ=P2^0; //定义DS18B20总线I/O //Port Definitions********************************************************** sbit LcdRs= P2^5; sbit LcdRw= P2^6; sbit LcdEn= P2^7; sfr DBPort= 0x80;//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口void delay(uint z) { uint a,b; for(a=z;a>0;a--) for(b=120;b>0;b--); } //向LCD写入命令或数据************************************************************ #define LCD_COMMAND0 // Command #define LCD_DATA1 // Data #define LCD_CLEAR_SCREEN0x01 // 清屏 #define LCD_HOMING0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) {LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();//注意顺序LcdEn=1;_nop_();//注意顺序LcdEn=0;_nop_(); delay(1); } //设置显示模式************************************************************ #define LCD_SHOW0x04 //显示开 #define LCD_HIDE0x00 //显示关 #define LCD_CURSOR0x02//显示光标 #define LCD_NO_CURSOR0x00 //无光标 #define LCD_FLASH0x01 //光标闪动 #define LCD_NO_FLASH0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) {LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式************************************************************ #define LCD_AC_UP0x02 #define LCD_AC_DOWN0x00 // default #define LCD_MOVE0x01 // 画面可平移 #define LCD_NO_MOVE0x00 //default void LCD_SetInput(unsigned char InputMode) {LCD_Write(LCD_COMMAND, 0x04|InputMode); } //初始化LCD************************************************************ void LCD_Initial() {LcdEn=0;LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵delay(5);LCD_Write(LCD_COMMAND,0x38);delay(5);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标delay(5);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏delay(5);LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动delay(5); } //液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) {if(y==0)LCD_Write(LCD_COMMAND,0x80|x);if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40)); } //将字符输出到液晶显示 void Print(unsigned char *str) {while(*str!='\0'){LCD_Write(LCD_DATA,*str);str++;delay(1);} } void init()// 定时器初始化 {TMOD=0x01; TH0=TL0=(256-200); ET0=1;//开定时器0中断TR0=1;EA=1;//开总中断 } void Delay_DS18B20(int num); /*****初始化DS18B20*****/ //探头1 void Init_DS18B20() { unsigned char x; DQ=1; //DQ复位 Delay_DS18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低 Delay_DS18B20(80); //精确延时,大于480us DQ = 1; //拉高总线 Delay_DS18B20(14); x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败 Delay_DS18B20(20); } /*****延时子程序*****/ void Delay_DS18B20(int num) { while(num--) ; } /*****写一个字节*****/ void WriteOneChar(unsigned char dat) { unsigned char i=0; for (i=8; i>0; i--) { DQ = 0; DQ = dat&0x01; Delay_DS18B20(5); DQ = 1; dat>>=1; } } /*****读一个字节*****/ unsigned char ReadOneChar(void) { unsigned char i=0; unsigned char dat = 0; for (i=8;i>0;i--) { DQ = 0; // 给脉冲信号 dat>>=1; DQ = 1; // 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); } return(dat); } /*****读取温度*****/ unsigned int ReadTemperature(void) //读取温度并转换 { unsigned char a=0; unsigned char b=0; unsigned int t=0; unsigned int tempb20; float f_temp=0; Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0x44); //启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作 WriteOneChar(0xBE); //读取温度寄存器 a=ReadOneChar(); //读低8位 b=ReadOneChar(); //读高8位 tempb20=b;tempb20<<=8;tempb20=tempb20|a;if((b&0xfc)==0xfc)//负温度 { flang=1;tempb20=((~tempb20)+1); f_temp=tempb20*0.0625;tempb20=f_temp*10+0.5; } else//正温度 {flang=0;f_temp=tempb20*0.0625;tempb20=f_temp*10+0.5; } return tempb20; } main() {uchar k;LCD_Initial();PWM1=0;IN1=0;IN2=1;init(); while(1) { if(k==0){EA=0; wendu=ReadTemperature();//读取温度数据EA=1; }if(k++>25) k=0;if(k1){if(wendu>=270){ jd=(wendu/10)-27;}else jd=0;}else{ if(k2==0)//PWM+ { delay(10); jd++;if(jd>=10)jd=10; while(k2==0);}if(k3==0)//PWM- { delay(10); if(jd>0) jd--; while(k3==0);}}if(flang==1)xianshi1[10]='-';elsexianshi1[10]=' '; xianshi1[11]=wendu/100+0x30; xianshi1[12]=wendu/10%10+0x30; xianshi1[14]=wendu%10+0x30; xianshi2[0]=jd/10+0x30; xianshi2[1]=jd%10+0x30;GotoXY(0,0);Print(xianshi1);GotoXY(0,1);Print(xianshi2); } }
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832845 原理图
原理图由AD绘制,原理图和仿真图有出入,原理图需要电源,电源开关模块。此设计资料详细,硬件手册资料图片详细,不对硬件调试负责,做实物需要一定的基本功。
6 元器件清单
万用板9*15
DC电源插口
自锁开关
2.2K电阻*1
STC89C51单片机
40脚IC座
DC电源线
L298N驱动芯片
LCD1602液晶显示屏
10K排阻(103)
10K电阻*2
10uF电容
按键*2
单刀双掷开关
12M晶振
30Pf瓷片电容*2
3.3V直流电机
导线
焊锡
DS18B20温度传感器
万用板一块
7 视频讲解
代码讲解+仿真讲解+仿真演示+原理图讲解
8 资料清单
下载地址:看文章最上面的视频。
网址:基于51单片机的智能空调控制系统设计(仿真+代码+原理图+报告+视频讲解) https://www.yuejiaxmz.com/news/view/615810
相关内容
基于51单片机空气质量监测报警仿真LCD1602液晶显示( proteus仿真+程序+设计报告)32、基于51单片机红外智能垃圾桶系统设计(程序+原理图+仿真+元件清单+开题报告+参考论文等)
基于51单片机的智能照明控制系统设计(本科)毕业论文中期报告.doc全文
基于51单片机的智能照明控制系统
基于51单片机无线蓝牙智能家居控制系统设计
基于51单片机的教室智能照明控制系统(程序+原理图+PCB+Proteus)
基于51单片机DHT11的加湿器Proteus仿真程序设计:打造智能环境控制新体验
基于51单片机的居家环境智能监测系统设计.docx
基于51单片机的智能家居系统
72、基于51单片机智能避障吸尘扫地车 定时清洁车系统设计(程序+原理图+PCB图+Proteus仿真+程序流程图+参考论文+开题报告+任务书+元器件清单等)