AT89C52与SHT10和1602液晶测温湿度的程序
基于89C52的数字温湿度检测系统

设计题目:粮库温湿度网络监控系统 系 别:电气工程与自动化系 专 业:自动化 班 级:B070301 日 期:2010 年 5 月 25 日
(3)温度变换由设计决定的 SHT71 温度传感器的线性非常好,故可用下列公式将温度数 字输出转化成实际温度值: 温度=d1+d2*SOT, 当电源电压为 5V、温度传感器的分辨率为 14 位时,d1=-40, d2=0.01;12 位时, d1=-40,d2=0.04
2、2网络实现
检测网络由 SHT71 传感器、AT89C52 单片机、上位机组成。如下图 1 所示:
4、状态寄存器操作:
图 4 通讯复位时序
图 5 状态寄存器写 图 6 状态寄存器读
图 7 测量时序: TS=传输开始;MSB=高有效字节,LSB=低有效字节,LSb=低有效位 5、输出信号转换: 测量数据处理为了将 SHT71 输出的数字量转换成实际物理量需进行相应的数据处理。 (1) 湿度变换 SHT71 的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获 取准确数据,可按如下公式修正湿度值。 RHlinear=c1+c2·SORH+c3·SORH2 式中 SORH 为传感器相对湿度测量值,系数取值如下: 12 位 SORH :c1=-4 c2=0.0405 c3=-2.8*10-6 8 位 SORH: c1=-4 c2=0.648 c3=-7.2*10-4
5
Generated by Foxit PDF Creator © Foxit Software For evaluation only.
(2)温度补偿上述湿度计算公式是按环境温度为 25℃进行计算的,而实际的测量温度则 在一定范围内变化,故只考虑温度变化系数即可。 按如下公式对环境温度进行补偿。 RH true=(T℃-25)·(t1+t2·SORH)+RHlinear 当 SORH 为 12 位时 t1=0.01;t2=0.00008,当 SORH 为 8 位时,t2=0.00128
基于AT89S52单片机的蔬菜大棚温湿度检测装置设计说明

目录摘要ABSTRACT1 绪论1.1 课题设计背景1.2 温度湿度检测技术现状1.3 预期目标2 设计方案的选择2.1 温度传感器的选择2.2 湿度传感器的选择2.3 显示模块的选择2.4 系统总体方框图3 系统硬件设计3.1 控制模块3.2 复位电路和时钟电路3.3 温度检测电路3.4 湿度检测电路3.5 显示电路3.6 按键及报警电路3.7 系统总电路4 系统软件设计4.1 主程序流程图4.2 温度检测子程序流程图4.3 按键扫描子程序流程图5 proteus仿真与调试5.1 proteus仿真图5.2 实物调试与总结参考文献附录致谢摘要随着大棚技术的普及,温室大棚数量不断增多,对于蔬菜大棚来说,最重要的一个管理因素是温湿度的控制。
温湿度太低,蔬菜就会被冻死或停止生长,同时,温湿度过高亦不行,所以要将温湿度始终控制在适合蔬菜生长的范围内,这就首先需要一个温湿度检测装置来正确检测温湿度。
现在,随着农业生产规模的提高,大部分蔬菜大棚,都对温湿度的检测装置提出了更高的要求。
为此,在现代化的蔬菜大棚管理中通常有温湿度自动检测装置,以检测蔬菜大棚温湿度,来适应生产需要。
本论文主要阐述了基于AT89S52单片机的蔬菜大棚温湿度检测装置的设计,主要包括硬件电路设计及软件设计等。
该系统采用AT89S52单片机作为控制器,DS18B20、HS1101分别作为温度湿度数据采集系统,温度湿度实现LCD数字实时显示,按键调整上下限设置,超限报警等功能。
通过软、硬件设计使得该款温湿度检测装置具有智能化、高精度、高可靠性等优势,具有广阔的应用前景。
关键词:AT89S52;DS18B20;HS1101;蔬菜大棚;温湿度检测ABSTRACTWith the popularization of trellis technology, the number of greenhouse trellis is continuously growing, for vegetable shed speaking; one of the most important management factor is the temperature and humidity control. Temperature is too low, the vegetables will freeze to death or stop growing, meanwhile, high temperature is also not good. So to always control temperature and humidity in a suitable vegetable growth range. A temperature and humidity detection devices to correct testing temperature and humidity is first needed. Now, with the improvement of agricultural industry scale, for most vegetable trellis, the detection device of temperature and humidity put forward higher request. Therefore, in modern vegetable shed management often has temperature and humidity automatic detection system, in order to detect the temperature and humidity, to adapt to the trellis vegetable production needs.This thesis mainly elaborated based on AT89S52 tomatoes canopy temperature and humidity control system design principle, main including circuit design and software design, this system uses AT89S52 single chip microcomputer as controller, DS18B20 and HS1101 as temperature and humidity data acquisition system separately. Temperature and humidity realize LCD digital real-time display, overrun alarm functions. Through the soft and hardware design makes it almost with intelligent humidity detection device, high precision, high reliability, etc advantages, and has wide application prospects.Key words:AT89S52; DS18B20; HS1101; Vegetable shed; Temperature andHumidity detection1 绪论1.1 课题设计背景随着科技的进步和现代生活的快速发展,在工农业生产、气象、环保、国防、科研等部门及日常生活中,经常需要对环境温度与湿度进行检测及控制。
基于AT89S52单片机的温湿度控制

目录1 绪论 (3)1.1 设计背景 (3)1.2 温、湿度检测技术的发展和现状分析 (3)1.2.1 温度检测技术 (3)1.2.2 湿度检测技术 (4)1.3 系统简介 (6)1.3.1 系统功能简介 (6)1.3.2 系统设计简介 (6)1.4 本章小结 (7)2 方案选择 (8)2.1 控制模块 (8)2. 2 输入模块 (8)2. 3 显示模块 (9)2. 4 数据采集模块 (9)2.4.1 温度采集模块 (9)2.4.2 湿度采集模块 (10)2.5 本章小结 (10)3 数字信号处理 (11)3.1 数字信号处理简介 (11)3.2 数字滤波技术简介 (11)3.2.1 数据滤波技术的实现意义 (11)3.2.2 数字滤波与模拟滤波的区别 (11)3.3 列举三种数字滤波技术及在本文中的使用 (12)3.3.1 递推平均滤波法 (12)3.3.2 限幅滤波法 (12)3.3.3 限幅平均滤波法 (12)3.4 本章小结 (13)4 硬件设计 (14)4.1 系统外围器件介绍 (14)4.1.1 74LS164 (14)4.1.2 74LS08与门 (15)4.1.3 CD4024 (15)4.1.4 AT24C02 (16)4.1.5 ADC0809 (17)4.2 硬件设计及原理图 (19)4.2.1 LCM1602液晶显示及驱动 (19)4.2.2 数据采集模块 (20)4.2.3 串口通信模块 (27)4.2.4 电源模块: (28)4.2.5 报警电路 (28)4.3 总设计硬件图 (29)4.4 本章小结 (30)5 系统软件设计 (31)5.1 系统软件框图 (31)5.2 系统各模块流程图及部分程序 (31)5.2.1 初使化程序 (31)5.2.2 矩阵键盘扫描 (32)5.2.3 温湿度报警值设置模块 (34)5.2.4 温湿度值采集、处理及显示模块 (37)5.2.5 与PC机通信模块 (39)5.2.6 报警状态判断模块 (42)5.3 系统中两种数字滤波软件实现流程图 (43)5. 4 本章小结 (44)6 理论公式推导及系统测试 (45)6.1 湿度的推导公式过程: (45)6.2 系统干扰处理及系统测试 (46)6.2.1 系统干扰处理 (46)6.2.2 系统测试 (46)6.2.3 测试工具 (47)7 总结和致谢 (48)7.1 系统设计总结 (48)7.2 致谢 (48)参考文献 (49)附录一系统设计过程中的调试工具 (50)附录二部分单片机程序及注释 (50)附录三 VB上位机通信平台程序 (60)1 绪论1.1 设计背景人类的生存和社会活动与温湿度密切相关。
DHT11测温湿度程序lcd1602显示

DHT11测温湿度程序lcd1602显示#include<reg52.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned int #define Data P0 //数据端口sbit RS=P2^4;sbit RW=P2^5;sbit E=P2^6;sbit DHT=P1^0;uchar FirstLine[] ="wen:00.00"; //第一行数据uchar SecondLine[]="shi:00.00"; //第二行数据unsigned char shiZ,shiX,wenZ,wenX,check;unsigned char tr_shiZ,tr_shiX,tr_wenZ,tr_wenX;unsigned char flag;unsigned int n=20,m;void delay_1ms(unsigned int i) {unsigned int j=88;for(;i>0;i--){while(j>0)j--;}}void delay_10us(){unsigned char i;i--;i--;i--;i--;i--;i--;}/******************************************/ /*************温湿度读取函数***************/ /******************************************/ char read_data(){unsigned char i,num,temp;num=0;for(i=0;i<8;i++){flag=2;while((!DHT)&&flag++);delay_10us();delay_10us();delay_10us();if(DHT==1){temp=1;flag=2;while(DHT&&flag++);}elsetemp=0;num<<=1;num|=temp;}return(num);}void delay(uchar ms) // 延时函数ms毫秒 { uchar i,j;for(i=ms;i>0;i--) for(j=100;j>0;j--); }void DelayUs(unsigned char us) //--延时函数 { unsigned char uscnt;uscnt=us>>1; /*12MHz频率*/while(--uscnt); }void DelayMs(unsigned char ms){while(--ms){DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);}}void lcd_write_com(uchar c) //写命令 { DelayMs(5);//操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}void lcd_write_dat(uchar c) //写数据 { DelayMs(5); //操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}void lcd_init() //LCD初始化{DelayMs(15);lcd_write_com(0x38); //display modelcd_write_com(0x38); //display modelcd_write_com(0x38); //display modelcd_write_com(0x06); //显示光标移动位置lcd_write_com(0x0c); //显示开及光标设置lcd_write_com(0x01); //显示清屏}void ShowChar(uchar pos,uchar c) //显示单个字符 { unsigned char p;if (pos>=0x10)p=pos+0xb0; //是第二行则命令代码高4位为0xcelsep=pos+0x80; //是第二行则命令代码高4位为0x8lcd_write_com(p);//写命令lcd_write_dat(c); //写数据}void ShowString (uchar line,char *ptr) //显示字符串{unsigned char l,*p;p=ptr;l=line<<4;while((*p)!='\0'){ShowChar(l++,*(p));p++;}}void disp(void) //主函数调用的显示函数 {ShowString(0,FirstLine);ShowString(1,SecondLine); }/******************************************//************初始化及采集程序**************//******************************************/ void read_init(){DHT=0; //主机使DHT11低电平并延时至少18msdelay_1ms(21);DHT=1; //主机置DHT11高电平20~40us,并等待从机相应delay_10us();delay_10us();delay_10us();delay_10us();DHT=1;if(!DHT) //从机发出相应信号{flag=2;while((!DHT)&&flag++);flag=2;while(DHT&&flag++); //开始采集数据tr_shiZ=read_data();//采集湿度整数部分tr_shiX=read_data();//采集湿度小数部分tr_wenZ=read_data();//采集温度整数部分tr_wenX=read_data();//采集温度小数部分check=read_data(); //采集校验位DHT=1;}}void main(){unsigned char temp;lcd_init();delay(50);while(1){disp();read_init();temp=tr_shiZ+tr_shiX+tr_wenZ+tr_wenX;if(check==temp){shiZ=tr_shiZ;shiX=tr_shiX;wenZ=tr_wenZ;wenX=tr_wenX;}FirstLine[4]='0'+wenZ/10; FirstLine[5]='0'+wenZ%10; FirstLine[8]='0'+wenX/10; FirstLine[9]='0'+wenX%10; SecondLine[4]='0'+shiZ/10; SecondLine[5]='0'+shiZ%10; SecondLine[8]='0'+shiX/10; SecondLine[9]='0'+shiX%10; }}。
大棚温湿度自动控制系统设计说明书

大棚温湿度自动控制系统设计摘要:本设计是基于STC89C52RC单片机的大棚温湿度自动控制系统,采用SHT10作为温湿度传感器,LCD1602液晶屏进行显示。
SHT10使用类似于I2C总线的时序与单片机进行通信,由于它高度集成,已经包括A/D转换电路,所以使用方便,而且准确、耐用。
LCD1602能够分两行显示数据,第一行显示温度,第二行显示湿度。
这个控制系统能够测量温室大棚中的温度和湿度,将其显示在液晶屏LCD1602上,同时将其与设定值进行对比,如果超出上下限,将进行报警并启动温湿度调节设备。
此外,还可以通过独立式键盘对设定的温湿度进行修改。
通过设计系统原理图、用Proteus软件进行仿真,证明了该系统的可行性。
关键词:STC89C52RC,SHT10,I2C总线,独立式键盘,温湿度自动控制Abstract: This design is an automatic temperature and humidity controller forgreenhouses, with the STC89C52RC MCU being its main controller. It uses theSHT10 as the temperature and humidity sensor, and the LCD1602 to display the messages. The SHT10 uses a timing sequence much like the I2C to communicate with the micro-controller. Because it’s a highly integrated chip, it already includes an analog to digital converter. Therefore, it’s quite convenient to use, and also accurate and durable. The LCD1602 can display two lines of messages, with the first line for temperature and the second line for humidity. The design can measure the temperature and humidity in a greenhouse, and then display it on a LCD1602. Meanwhile, it compares the data with the set limit. If the limit is exceeded, then the system will send out a warning using a buzzer and activate the temperature and humidity controlling equipment. Besides, the set limit can be modified with the independent keyboard. Through schematic design and Proteus simulation, the feasibility of this design has been proved.Keywords: STC89C52RC, SHT10, I2C bus, independent keyboard, temperature and humidity control目录1 前言 (1)2 总体方案设计 (3)2.1 温湿度控制系统的设计指标要求 (3)2.2 系统设计的原则 (3)2.2.1 可靠性 (3)2.2.2 性价比 (4)2.3 方案比较 (4)2.3.1 方案一 (4)2.3.2 方案二 (5)2.4 方案论证 (6)2.5 方案选择 (6)3 单元模块设计 (7)3.1 各单元模块功能介绍及电路设计 (7)3.1.1 单片机最小系统 (7)3.1.2 液晶显示模块 (9)3.1.3 温湿度传感器模块 (10)3.1.4 报警电路的设计 (11)3.1.5 输出电路设计 (12)3.1.6 电源的设计 (15)3.1.7 按键电路设计 (16)3.1.8 串口通信电路 (17)3.2 元件清单 (19)3.3 关键器件的介绍 (21)3.3.1 STC89C52RC (21)3.3.2 SHT10温湿度传感器 (24)4 系统软件设计 (28)4.1 软件设计的总体结构 (28)4.2 主要模块的设计流程框图 (30)4.2.1 主程序流程图 (30)4.2.2 SHT10子程序流程图 (32)4.2.3 LCD1602子程序流程图 (34)4.2.4 输出控制子程序流程图 (36)4.2.5 键盘扫描子程序流程图 (38)4.3 软件设计所用工具 (40)4.3.1 Keil uVision4 (40)4.3.2 Proteus (40)5 系统调试 (42)5.1 用Proteus搭建仿真总图 (42)5.2 用Keil对程序进行调试、编译 (44)6 结论 (47)6.1 系统的功能 (47)6.2 系统的指标参数 (47)6.3 系统功能分析 (47)7 总结与体会 (49)8 致谢 (50)9 参考文献 (51)附录1 系统的电路原理图 (52)附录2 系统仿真总图 (53)附录3 系统实物照片 (54)附录4 系统源程序 (55)附录5 英文参考资料 (58)1 中文翻译 (58)2 英文原文 (63)1 前言温室大棚作为一种高效的农业生产方式,与传统农业生产方式相比具有很大的优点。
基于AT89752单片机的SHT11温湿度测试仪 (正式)

分数:课程:电子测量题目:基于AT89C52的温湿度测试仪任课老师:学生:专业名称:学院名称:学号:二O一四年六月目录引言 (4)1 绪论 (5)1.1 设计的背景概述 (5)1.2 设计的内容 (5)1.3 设计的意义 (5)2 系统的硬件设计 (6)2.1 系统设计方案 (6)2.2 系统硬件介绍 (6)2.2.1 AT89S52介绍 (6)2.2.2 SHT11温湿度传感器的介绍 (9)2.2.3 LCD1602液晶模块介绍 (11)2.3 系统部分硬件电路的设计 (17)2.3.1 主控电路的设计 (17)2.3.2 复位电路部分 (17)2.3.3 AT89S52的系统时钟电路的设计 (17)3 系统软件设计 (18)3.1 系统软件主程序流程 (18)3.2 SHT11数据采集流程 (19)4 Protuse仿真结果 (20)5 程序 (20)6 结束语 (29)基于AT89752的温湿度测试仪作者:学号:摘要:随着科学技术的日新月异,人类社会取得了长足的进步!在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。
本设计设计了一个的温湿度测量系统。
本系统采用技术成熟的SHT11作为测量温湿度的传感器。
控制系统芯片采用技术成熟,功能强大、价位低廉大众化的AT89S52单片机。
SHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
LED显示电路由AT89S52单片机控制。
最后设计了系统各个功能部分的软件程序。
由本设计课题做成的温湿度检测系统结构简单、价格便宜、量程宽,具有较高的可靠性、安全性及实用性。
关键字:AT89752单片机;SHT11温湿度传感器;LED1206;Abstract:As science and technology, human society has made great progress! In home life, industrial and agricultural production, weather, environmental protection, national defense, scientific research, aerospace and other departments, often need to environmental humidity and temperature measurement and control. The Design of a temperature and humidity measurement system. The system uses sophisticated technology SHT11 temperature and humidity sensor as a measurement. Control system chip technology is mature, powerful, low-priced mass AT89S52 microcontroller. SHT11 digital temperature and humidity sensor is a calibrated digital signal output of the temperature and humidity combined sensor. LED display circuit controlled by a microcontroller AT89S52. Finally, the design of each function part of the system software program. Design issues made by the temperature and humidity detection system is simple, cheap, wide range, high reliability, safety and practicality.Keywords: AT89752 microcontroller; SHT11 temperature and humidity sensor; LED1206;引言随着科技的高速发展,工业水平也随着高速发展了起来。
单片机89C52RC串口读取am2320温湿程序
// AM 系列读IIC 使用范例//单片机:AT89S52 或STC89C52RC// 功能:串口发送温湿度数据波特率9600// 晶振:12M (用户系统时钟如不是12M 请更改相关宏定义及注释的延时时间)// 编译环境: Keil3// 公司:奥松电子//****************************************************************//#include "reg52.h"#include <intrins.h>#define USE_T2#define FOSC 12000000#define BAUD 9600//端口位定义,可修改sbit SDA=P1A0;sbit SCL=P"1;//内部数据定义#define IIC_Add 0xB8 //器件地址#define IIC_RX_Length 15unsigned char IIC_TX_Buffer[]={0x03,0x00,0x04}; // 读温湿度命令(无CRC 校验) unsigned char IIC_RX_Buffer[IIC_RX_Length] = {0x00};// 读回的温湿度unsigned char Uart_RX_Buffer[30] = {0x00}; unsigned char *String;unsigned char WR_Flag;//字符串定义#define S_Function "Function: 03 04"#define S_Temp "Temp:"#define S_RH "RH:"#define S_CRCT "CRC: True"#define S_CRCF "CRC: Wrong"#define S_Data "Data: "#define S_NotS "Sensor Not Connected"void Ack(void);void NoAck(void); void delay10us(void) // 这个延时函数要大于5US 以上_nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); }void delay1ms(unsigned int t){unsigned int i;unsigned int j;for(j=t;j>0;j--) for(i=124;i>0;i--);}void InitUART(void) {unsigned int iTmpBaud;unsigned long lTmpBaud; iTmpBaud = 0;//首先选定定时器 2 作为波特率发生器 ,16位定时器 ,自动装载SCON = 0x50; //SM0 SM1 SM2 REN TB8 RB8 TI RI //0 1 0 1 0 00 0PCON = 0x00; //PCON 的地址是 87H, 这里 SMOD =0//TF2 EXF2 RCLK TCLK EXEN2 TR2 C(/T2) CP(/RL2) //0 0 1 1 0 0 0 // / / / / / / T2OE DCEN //0 0 0 0 0 0 0 0//fosc = 22.1184M,6T: 144, 设置波特率//(RCAP2H,RCAP2L) = 65536- fosc/(n*Baud) 。
温湿度检测系统的设计与实现
论文题目:温湿度检测系统的设计与实现目录前言 (3)1 温湿度检测系统的简介 (4)1.1系统的概述 (4)1.2系统设计选题的背景 (4)1.3系统的分类 (5)1.4系统设计的内容与要求 (5)2 系统设计方案 (5)2.1温湿度检测系统方案制定 (5)2.2系统功能模块分析 (6)2.3仿真器件 (8)2.4本章小结 (9)3系统仿真调试 (9)3.1PROTEUS对系统仿真 (9)3.2误差分析 (11)3.2本章小结 (12)总结 (12)参考文献 (13)温湿度检测系统的设计与实现学生:徐祥(指导老师:王留留)(淮南师范学院电气信息工程学院)摘要:温湿度测量系统的测量的使用领域是宽广的,在仓库中、果园中、医院内都有着重要的作用。
这次的毕业设计是对温湿度测量系统的研究、仿真和实现,对它以后发展和推动起了重要作用。
这次的毕业设计,仔细的分析了国外与国内关于温湿度检测系统的发展情况与研究方向,阐述了当今现实生活中、工业中、农业中其存在的一些问题,在经过探讨这些问题并提出合理的解决方案的之后,系统的设计一类关于单片机的温湿度检测系统,能够比较稳定、长时间、准确的对那些有着特别要求的场所进行测量其温度与湿度。
硬件电路部分与软件电路部分是该次毕业设计的两大组成的部分,所设计的系统的基本原理如下:在某环境中,给予温湿度传感器模拟的温度与湿度,这些模拟信号会通过温湿度的检测系统所涉及的电路,利用传感器把这些处理的信号传输给核心部件单片机,然后单片机在处理这些信号,再传输到LCD显示出数字,从而实现对温湿度的测量。
关键词:温湿度;SHT10传感器;单片机前言当下的生活中,温度与湿度的技术着重的被利用于特定的环境、环境温度湿度要求比较高的区域,其使用的范围与频率还是比较多的。
在以前,各种仓库、蔬菜大棚、车间等相对环境空间内的温度和相对湿度的信号采集即温度和相对湿度的检测,是利用传统的具有指示温度和湿度的检测仪表。
大棚温湿度自动控制系统设计
大棚温湿度自动控制系统设计摘要:本设计是基于STC89C52RC单片机的大棚温湿度自动控制系统,采用SHT10作为温湿度传感器,LCD1602液晶屏进行显示。
SHT10使用类似于I2C总线的时序与单片机进行通信,由于它高度集成,已经包括A/D转换电路,所以使用方便,而且准确、耐用。
LCD1602能够分两行显示数据,第一行显示温度,第二行显示湿度。
这个控制系统能够测量温室大棚中的温度和湿度,将其显示在液晶屏LCD1602上,同时将其与设定值进行比照,如果超出上下限,将进行报警并启动温湿度调节设备。
此外,还可以通过独立式键盘对设定的温湿度进行修改。
通过设计系统原理图、用Proteus软件进行仿真,证明了该系统的可行性。
关键词:STC89C52RC,SHT10,I2C总线,独立式键盘,温湿度自动控制Abstract: This design is an automatic temperature and humidity controller for greenhouses, with the STC89C52RC MCU being its main controller. It uses the SHT10 as the temperature and humidity sensor, and the LCD1602 to display the messages. The SHT10 uses a timing sequence much like the I2C to communicate with the micro-controller. Because it’s a highly integrated chip, it already includes an analog to digital converter. Therefore, it’s quite convenient to use, and also accurate and durable. The LCD1602 can display two lines of messages, with the first line for temperature and the second line for humidity. The design can measure the temperature and humidity in a greenhouse, and then display it on a LCD1602. Meanwhile, it compares the data with the set limit. If the limit is exceeded, then the system will send out a warning using a buzzer and activate the temperature and humidity controlling equipment. Besides, the set limit can be modified with the independent keyboard. Through schematic design and Proteus simulation, the feasibility of this design has been proved. Keywords: STC89C52RC, SHT10, I2C bus, independent keyboard, temperature and humidity control目录1 前言 02 总体方案设计 (2)2.1 温湿度控制系统的设计指标要求 (2)2.2 系统设计的原则 (2)2.2.1 可靠性 (2)2.2.2 性价比 (2)2.3 方案比较 (3)2.3.1 方案一 (3)2.3.2 方案二 (3)2.4 方案论证 (4)2.5 方案选择 (4)3 单元模块设计 (5)3.1 各单元模块功能介绍及电路设计 (5)3.1.1 单片机最小系统 (5)3.1.2 液晶显示模块 (7)3.1.3 温湿度传感器模块 (7)3.1.4 报警电路的设计 (8)3.1.5 输出电路设计 (9)3.1.6 电源的设计 (11)3.1.7 按键电路设计 (12)3.1.8 串口通信电路 (13)3.2 元件清单 (14)3.3 关键器件的介绍 (16)3.3.1 STC89C52RC (16)3.3.2 SHT10温湿度传感器 (18)4 系统软件设计 (21)4.1 软件设计的总体结构 (21)4.2 主要模块的设计流程框图 (23)4.2.1 主程序流程图 (23)4.2.2 SHT10子程序流程图 (24)4.2.3 LCD1602子程序流程图 (26)4.2.4 输出控制子程序流程图 (27)4.2.5 键盘扫描子程序流程图 (28)4.3 软件设计所用工具 (30)4.3.1 Keil uVision4 (30)4.3.2 Proteus (30)5 系统调试 (31)5.1 用Proteus搭建仿真总图 (31)5.2 用Keil对程序进行调试、编译 (32)6 结论 (35)6.1 系统的功能 (35)6.2 系统的指标参数 (35)6.3 系统功能分析 (35)7 总结与体会 (37)8 致谢 (38)9 参考文献 (39)附录1 系统的电路原理图 (40)附录2 系统仿真总图 (41)附录3 系统实物照片 (42)附录4 系统源程序 (43)附录5 英文参考资料 (45)1 中文翻译 (45)2 英文原文 (48)1 前言温室大棚作为一种高效的农业生产方式,与传统农业生产方式相比具有很大的优点。
利用STC89C52单片机控制LCD1602
//液晶显示中文-版本0.0//作者:pcdian//定义液晶的一些功能位//RS 为数据、指令寄存器选择位//RW 为读写选择位//E 为使能位RS BIT p2.5RW BIT P2.6E BIT P2.7ORG 0000HSJMP STARTORG 000BHLJMP Timer_ITORG 0030HSTART:MOV SP,#60HMOV TMOD,#01HMOV TH0,#0A6HMOV TL0,#00HSETB EASETB ET0CLR TR0MAIN:MOV P0,#01H //清屏ACALL ENABLEMOV P0,#38H //显示模式设置为16字*2行ACALL ENABLEMOV P0,#0CH //不显示光标ACALL ENABLEMOV P0,#06H //显示方向正向且屏不移动ACALL ENABLEDISPLAY:ACALL DISPLAY_C0//我MOV P0,#80HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#81HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#82HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C0HACALL ENABLEMOV P0,#03HACALL WRITEMOV P0,#0C1HACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#0C2HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C1//们MOV P0,#83HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#84HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#85HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C3HACALL ENABLEMOV P0,#03HACALL WRITEMOV P0,#0C4HACALL ENABLEACALL WRITEMOV P0,#0C5HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C2//的MOV P0,#86HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#87HACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#88HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0C6HACALL ENABLEMOV P0,#03HACALL WRITEACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#0C8HACALL ENABLEMOV P0,#05HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C3//0MOV P0,#89HACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#8AHACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#0C9HACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0CAHACALL ENABLEMOV P0,#03HLCALL DELAY1SMOV P0,#01HACALL ENABLEACALL DISPLAY_C4//7MOV P0,#8BHACALL ENABLEMOV P0,#00HACALL WRITEMOV P0,#8CHACALL ENABLEMOV P0,#01HACALL WRITEMOV P0,#0CBHACALL ENABLEMOV P0,#02HACALL WRITEMOV P0,#0CCHACALL ENABLEMOV P0,#03HACALL WRITE//3MOV P0,#8DHACALL ENABLEMOV P0,#04HACALL WRITEMOV P0,#8EHACALL ENABLEMOV P0,#05HACALL WRITEMOV P0,#0CDHACALL ENABLEMOV P0,#06HACALL WRITEMOV P0,#0CEHACALL ENABLEMOV P0,#07HACALL WRITELCALL DELAY1SMOV P0,#01HACALL ENABLELJMP DISPLAY DISPLAY_C0:MOV DPTR,#TAB0MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C1:MOV DPTR,#TAB1MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C2:MOV DPTR,#TAB2MOV R2,#48ACALL DISPLAY_CRET DISPLAY_C3:MOV DPTR,#TAB3MOV R2,#32ACALL DISPLAY_CRET DISPLAY_C4:MOV DPTR,#TAB4MOV R2,#64ACALL DISPLAY_CRETDISPLAY_C:MOV P0,#40HACALL ENABLEMOV R3,#0DISPLAY_CC:MOV A,R3MOVC A,@A+DPTRMOV P0,ALCALL WRITEINC R3DJNZ R2,DISPLAY_CCRETENABLE:CLR RSCLR RWCLR EACALL DELAYSETB ERETWRITE:SETB RSCLR RWCLR EACALL DELAYSETB ERETDELAY1S:SETB TR0CJNE R0,#20,DELAY1SCLR TR0MOV R0,#0RETDELAY:MOV R5,#08HL1:MOV R4,#0FAHL0:DJNZ R4,L0DJNZ R5,L1RETTimer_IT:MOV TH0,#0A6HMOV TL0,#00HINC R0RETITAB0: //我DB 0x00,0x07,0x01,0x01,0x01,0x1F,0x01,0x01 DB 0x19,0x01,0x01,0x01,0x01,0x1F,0x01,0x01 DB 0x00,0x08,0x04,0x04,0x00,0x1F,0x00,0x04 DB 0x01,0x07,0x19,0x01,0x01,0x01,0x05,0x02 DB 0x18,0x00,0x00,0x01,0x06,0x00,0x00,0x00 DB 0x14,0x18,0x10,0x08,0x09,0x05,0x03,0x01TAB1: //们DB 0x01,0x01,0x02,0x02,0x06,0x04,0x0c,0x14 DB 0x08,0x04,0x06,0x04,0x10,0x10,0x10,0x10 DB 0x00,0x00,0x1e,0x02,0x02,0x02,0x02,0x02 DB 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00 DB 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00 DB 0x02,0x02,0x02,0x02,0x02,0x0a,0x04,0x00TAB2: //的DB 0x02,0x02,0x04,0x0f,0x08,0x08,0x08,0x0f DB 0x02,0x02,0x02,0x13,0x14,0x14,0x18,0x12DB 0x00,0x00,0x00,0x1e,0x02,0x02,0x02,0x02DB 0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x00DB 0x11,0x11,0x10,0x10,0x10,0x10,0x00,0x00DB 0x02,0x12,0x12,0x02,0x02,0x14,0x08,0x00TAB3: //0DB 0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x08DB 0x00,0x00,0x18,0x04,0x02,0x02,0x02,0X02DB 0x08,0x08,0x08,0x08,0x04,0x03,0x00,0x00DB 0x02,0x02,0x02,0x02,0x04,0x18,0x00,0x00TAB4: //7DB 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00DB 0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X06DB 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00DB 0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00//3DB 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0FDB 0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X1EDB 0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00DB 0x1E,0x06,0x06,0x06,0x1E,0x1E,0x00,0x00END四、总结:虽然LCD1602可以利用自建字符显示中文,但最多不能超过8个字符位。