基于单片机温湿度控制(Protel图+visio图) 联系客服

发布时间 : 星期三 文章基于单片机温湿度控制(Protel图+visio图)更新完毕开始阅读

外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解!学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。

但因为我们的水平有限,此设计中也存在一定的不足。就比如说对湿度的控制方面,由于温度时刻都在发生着变化。而湿度的变化又大体上取决于温度。因而对于湿度的控制有点困难。同时由于湿度变化波动比较大。造成报警频繁,为湿度限值的设定也带来了不小的麻烦。

温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经发展成为一种必然。随着世界经济的发展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的办法、既节省了人力资源,更体现了与时俱进的思想、世界在进步、而这种进步就该体现在各个方面。

五、参考文献

[1]于海生.计算机控制技术[M].北京:机械工业出版社,2007.

[2]韩志军.单片机应用系统设计-入门向导与设计实例[M].北京:机械工业出版社,2005.

[3]雎丙东.单片机应用技术与实例[M].北京:电子工业出版社,2005. [4]靳达.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003. [5]戴佳.51单片机应用系统开发典型实例[M].北京:中国电力出版社,2005. [6]孙传友.测控系统原理与设计[M].北京:北京航空航天大学出版社,2002. [7]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2003.

[8] 陈明荧.8051单片机课程设计实训教材[M]. 北京:清华大学出版社,2003. [9] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M]. 北京:清华大学出版社,2002.

[10] 张毅刚.MCS-51单片机应用设计[M]. 哈尔滨工业大学出版社,2004.

16

附录1 运行程序 #include #include #include

typedef unsigned char U8; /* defined for unsigned 8-bits integer variable

#define lcd_H #include

#define HIGH 1 #define LOW 0 #define TRUE 1 #define FALSE 0 #define ZERO 0 #define MSB 0x80 #define LSB 0x01

//********液晶屏部分 **** #define LINE1 0 #define LINE2 1

#define LINE1_HEAD 0x80 #define LINE2_HEAD 0xC0 #define DATA_MODE 0x38 #define OPEN_SCREEN 0x0C #define DISPLAY_ADDRESS 0x80

#define CLEARSCREEN LCD_en_com(0x01)

#define LCDIO P1

sbit LCD1602_RS = P2^4; //定义端口 sbit LCD1602_RW = P2^3; sbit LCD1602_EN = P2^2;

17

无符号8位整型变量 */ 无符号16位整型变量 */

typedef unsigned int U16; /* defined for unsigned 16-bits integer variable

//----------------------------------------------// //----------------IO口定义区--------------------// //----------------------------------------------// sbit P2_0 = P2^0 ; sbit SPK=P0^7; int t1,t2,ss;

//----------------------------------------------// //----------------定义区--------------------// //----------------------------------------------// U8 U8FLAG; U8 U8count,U8temp;

U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8

U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp; U8 U8comdata;

unsigned char str1[]={'s','h','i','d','u',':'}; unsigned char str2[]={'w','e','n','d','u',':'}; LCD_init();

void Delay(U16 j) { U8 i;

} }

void Delay_10us(void) { U8 i; i--;

for(;j>0;j--) {

for(i=0;i<27;i++);

18

i--; i--; i--; i--; i--; }

void COM(void) {

U8 i;

for(i=0;i<8;i++)

{

U8FLAG=2;

Delay_10us(); Delay_10us(); U8temp=0;

while((!P2_0)&&U8FLAG++);

Delay_10us();

if(P2_0)U8temp=1;

U8FLAG=2;

while((P2_0)&&U8FLAG++);

//超时则跳出for循环 if(U8FLAG==1)break;

//判断数据位是0还是1

// 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1;

U8comdata|=U8temp; //0 }//rof

19