基于单片机的空调温度控制器设计设计_第1页
基于单片机的空调温度控制器设计设计_第2页
基于单片机的空调温度控制器设计设计_第3页
基于单片机的空调温度控制器设计设计_第4页
基于单片机的空调温度控制器设计设计_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的空调温度控制器基于单片机的空调温度控制器设计要温度采集电路(DS18B20)、键盘、显示电路、输出控制电路及其他辅助电路组成;软件采用8051C语言编程;该系统可以完成温度的显示、温度的设定、空调的控制等多 91设计目的及要求1.1设计目的和意义1.2设计任务与要求92硬件电路设计2.1总体方案设计D从而实现空调的智能化。另外,键盘输入方面,采用了软件来修正误操作输入,即输入的统的可靠性,体现了人性化的系统设计原则。92.2功能模块电路设计2.2.1单片机的选型B行升级、维护的潜在功能。程序存储器具有三级加密保护。256字节的内部RAM。中断结构具有5级(6级)中断源和两个优下级。可编程全双工串行通讯。空闲维持低功耗和掉电状态保护存储数据。AT89C52引脚图如图2所示。9VCC:+5V电源输入输入作,某时刻该端口可以送出地址信号A0~A7,而另外的时刻该端口传送的是数据信号2.2.2振荡电路设计AT89C52内部有一个用于构成片内振荡器的高增益反相放大器,振荡器产生的信号送到CPU,作为CPU的时钟信号,驱动CPU产生执行指令功能的机器周期。引脚示,外接石英晶体或陶瓷谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容C1和C2的值虽然没有严格的要求,但电容的大小多少会影响振2.2.3复位电路设计U器周期(24个振荡周期),则CPU就可响应并且将系统复位。复位分为手动复位和上2.2.4键盘接口电路设计2.2.5温度测量电路设计总线”接口的温度传感器,它具有微型化、低功耗、9、易配微处理器等优点,可直接将温度转化成串行数字信独特的单线接口方式,它与微处理器连接时仅需一条口线即可实现微处理器与在使用中不需要任何外接元件,全部传感元件及转换电路集成在形如一只三极C2.2.6系统显示电路设计等4脚RS:数据/命令选择端(H/L)。5脚R/W:读写选择端(H/L)。16脚BL2:背光电源负极。2.2.7输出控制电路设计系统要求在当前室温低于设定温度时,能够自动驱动加热系统工作;在当前室温2.3总电路设计2.4系统所用元器件992115V电源插座1自锁开关1LCD16021WK电阻310K可调电阻1AT89C52112MHz晶振13软件系统设计3.1软件系统总体方案设计3.2软件流程图设计9图10系统软件流程图9995总结5.1本系统存在的问题及改进措施5.2心得体会以及许多同学的帮助,感谢那些提供过帮助的老师和同学。9国农业出版社,2007.C9#defineK_UP0X20//定义键值K_DOWNK_CLEARK_OKK_ONEK_FOURKSEVENK_POINTK_TWOK_FIVEK_EIGHTK_ZEROK_THREEK_SIXK_NINEK_SETexternfloatTEMP_NOW;externuintexternuintexternuintexternuintT_Count;NCountM_Count;externucharCurrent_Temp_Display_Buffer[];9rsbitlcden=P2^1;//液晶使能sbitlcdrs=P2^0;//液晶数据/命令选择端SBsbitXX=P2^5;//读写选择端sbitcold=P2^6;//输出信号sbitwarm=P2^7;//输出信号#endif#include"global.h"#include"key.h"udeBh#include"LCD.h"////////////////////全局变量/////////////////////////////floatTEMP_NOW=0.0;floatTEMP_SET=21.0;uintT_Count=0;uintS_Count=0;uintP_Count=0;uintN_Count=0;uintM_Count=1;ucharCurrent_Temp_Display_Buffer[]={"ayBufferintsel=0;"};"};voidComparison();//////////////////////定时///////////////////////////////voidtimer0_init(void){TMOD=0x00;//设置定时器0的工作方式9IE=0x82;}voidtimer0()interrupt1{{{}}}////////////////////主程序///////////////////////////////voidmain){init_lcd();timer0_init();{Print();}9}{if(N_Count&&M_Count){if(TEMP_NOW<TEMP_SET){warm}if(TEMP_NOW>TEMP_SET){warm}if(TEMP_NOW==TEMP_SET){warm=0;}}}#include"global.h"#include"global.h"#include"intrins.h"ucharCurrentT=0;ntx{whilex);}{{n--;}while(n);}{9Delay_INI(8);Delay_INI(90);Delay_INI(8);DelayINI100);turnstatus}{for(i=0;i<8;i++){if(DQ)}returndat;}{9uchari;for(i=0;i<8;i++){}}{{}}{{9}Display_Digit[1]=CurrentT%10;isplayDigitCurrentTempDisplayBuffer';Current_Temp_Display_Buffer[9]=Display_Digit[1]+'0';Current_Temp_Display_Buffer[8]=Display_Digit[2]+'0';Current_Temp_Display_Buffer[7]=Display_Digit[3]+'0';TEMP_NOW=Display_Digit[2]*10+Display_Digit[1]+Display_Digit[0]*0.1;if(Display_Digit[3]==0)Current_Temp_Display_Buffer[7]='';if(Display_Digit[2]==0&&Display_Digit[3]==0)Current_Temp_Display_Buffer[8]='';if(ng){TEMPNOWDisplayDigitDisplayDigitDisplayDigit]*0.1);if(Current_Temp_Display_Buffer[8]=='')Current_Temp_Display_Buffer[8]='-';elseifCurrentTempDisplayBuffer]=='')Current_Temp_Display_Buffer[7]='-';Current_Temp_Display_Buffer[6]='-';}}KEY.h:9KEYH#endifinsh#include"18B20.h"{};{uchari;for(i=0;i<200;i++);}{if((P3&0xf0)!=0xf0){if((P3&0xf0)!=0xf0){9for(k=0;k<4;k++){if((P3&0xf0)!=0xf0){NT}}}}return-1;}{9{if(K_CLEAR==key){M_Count=0;warm=0;}{{}{{}{{}{}}}}//if(K_DOWN==//{{}{{}{9{}{}}}}if(K_ONE==key){r}if(K_TWO==key){r}if(K_THREE==key){r}key{r}if(K_FIVE==key){r}if(K_SIX==key){r}{r}if(K_EIGHT==key){r}if(K_NINE==key){r}if(K_ZERO==key){r9}if(K_OK==key){erM_Count=1;}}{if(K_CLEAR==key){Countrm}key{r}9if(K_TWO==key){r}if(K_THREE==key){r}key{r}if(K_FIVE==key){r}if(K_SIX==key){r}{r}if(K_EIGHT==key){r}if(K_NINE==key){r}if(K_ZERO==key){r}}{if(K_CLEAR==key){Countrm}if(K_POINT==key){}}{if(K_CLEAR==key){Countrm}key{rr}if(K_TWO==key){rr}if(K_THREE==key){rr}key{rr}if(K_FIVE==key){rr}if(K_SIX==key){rr}{rr}if(K_EIGHT==key){rr}if(K_NINE==key){rr}if(K_ZERO==key){rr}}{if(K_CLEAR==key){9M_Count=0;warm=0;}if(K_OK==key){erM_Count=1;}}}/*{{MCount0;warm}9{}if(K_DOWN==key){}{}}*/LCD.h:ifndefLCDHmrnvoidinitlcdexternvoidPrint()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论