基于单片机的空调温度控制系统设计
致谢
在几个月的学习研究中,课题受到了许多老师和同学的热心关注和支持。他们对空调温度控制系统的研究开发提出了宝贵意见,并在物质和精神上给予了大力支持。在我即将结束对课题的研究时,整个系统的硬件和软件系统已初步成型,并通过了实验,这与支持我的老师和同学的关心是分不开的。
衷心感谢我的导师老师,正是因为黄宇老师的悉心指导和谆谆教诲,我的设计才得以顺利完成。黄老师渊博的知识、丰富科研经验、不计名利、兢兢业业的治学精神使我受益非浅。他无私奉献的高贵品质和平易近人的长者作风,使我在学习科学知识的同时也学会了做人的道理。至此论文完成之际,谨向老师表示由衷的感谢。
尤其感谢我的父母,无论我在顺境还是逆境,他们始终是我最坚强的后盾,感谢他们对我多年的培养和支持。
最后感谢所有曾经鼓励过我,帮助过我的人们。
-31-
基于单片机的空调温度控制系统设计
参考文献
[1] 姜志海,黄玉清,刘连鑫. 单片机原理及应用(第2版)[M]. 电子工业出版社, 2009.
[2] 魏泽鼎. 单片机应用技术与实例[M]. 电子工业出版社, 2005.
[3] 宋亚伟. 基于DS18B29的温度控制采集系统[J]. 机电工程技术, 2008, 37(09):89-91.
[4] 齐建家,胡天明. 基于DS18B20的数字温度设计及其应用[J]. 黑龙江工程学院学报,2001, 22(2):59-62.
[5] 张洪润,张亚凡. 单片机原理及应用[M]. 清华大学出版社,2005. [6] 李玉峰. MCS-51系列单片机原理与接口技术[M]. 人民邮电出版社, 2004.
[7] 马忠梅. 单片机的C语言应用程序设计[M]. 北京航空航天大学出版社, 2007.
-32-
基于单片机的空调温度控制系统设计
附件1 系统硬件电路图
-33-
基于单片机的空调温度控制系统设计
附件2 系统软件程序
/***********************************************
*文件名 :温度采集DS18B20.C *描述 :实现用温度传感器DS18B20对温度的采集 并用1602液晶显示 *创建人 :杨耀武 *老师 :黄 宇
***********************************************/ #include
#define uchar unsigned char #define uint unsigned int #define jump_ROM 0xcc #define start 0x44
#define read_EEROM 0xbe
sbit scl=P3^5; //24c02 SCL sbit sda=P3^6; //24c02 SDA sbit DQ=P2^3; //DS18B20数据口 sbit E=P2^7; //1602使能引脚 sbit RW=P2^6; //1602读写引脚 sbit RS=P2^5; //1602数据/命令 sbit beep=P3^7; //蜂鸣器报警 sbit s1=P3^2; //功能选择按键 sbit s2=P3^3; //温度加 sbit s3=P3^4; //温度减 sbit warm=P3^0; //升温继电器 sbit cool=P3^1; //降温继电器 uchar
TMPH,TMPL,Count1,Count2,T,xie,s1num,s2num,s3num,BusyC; uint temp,speed;
uchar code table1[] =
{\
uchar code table2[] = {%uchar code distab[] =
{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
uchar data display[]=
{0x00,0x00,0x00,0x00,0x00}; uchar code
F_Rotation[]={0x20,0x60,0x40,0xc0,0x80,0x90,0x10,0x30};//正转表格 uchar x24c02_read(uchar address); void x24c02_write(uchar address,uchar info);
void keyscan(void); //软件延时
/*********************************************** * 名称 : flash()
* 功能 : 延时大概为2US * 输入 : 无 * 输出 : 无
***********************************************/ void flash(void) { _nop_(); _nop_(); }
/***********************************************
*名称:delay_16us(uint A)单位us -34-
基于单片机的空调温度控制系统设计
*功能:当使用11.0592MHz晶振时候调用大概要耗时24 us,每次计数耗时约为16us *输入:要延时的时间(A x 16) *输出:无
***********************************************/ void delay_16us(uint N) { int i; for(i=0;i /*********************************************** *名称:delay_1ms(uint A)单位us *功能:当使用11.0592MHz晶振时候每次计数延时约1ms *输入:要延时的时间a ms *输出:无 ***********************************************/ void delay_1ms(uint a) { int i,j; for(i=a;i>0;i--) for(j=110;j>0;j--); } //定时器延时 /*********************************************** * 名称 : Time1_Init() * 功能 : 定时器的初始化,11.0592MZ晶振,10ms * 输入 : 无 * 输出 : 无 ***********************************************/ void Time1_Init() { TMOD = 0x10; IE = 0x88; TH0 = 0xb8; TL0 = 0x00; } /*********************************************** * 名称 : Time1_Int() * 功能 : 定时器中断,中断中实现 Count 加一 * 输入 : 无 * 输出 : 无 ***********************************************/ void Time1_Int() interrupt 3 { TH0 = 0xb8; TL0 = 0x00; Count2++; if(Count2==50) { Count2=0; xie=1; //20ms写一次 } } //DS18B20测温显示 /*********************************************** *名称:Reset() *功能:复位DS18B20 *输入:无 *输出:无 ***********************************************/ uchar Reset(void) -35-