《基于单片机的温湿度传感器课程设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的温湿度传感器课程设计.doc(27页珍藏版)》请在三一办公上搜索。
1、基于单片机的温湿度传感器课程设计摘 要 由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,所以温湿度一体的传感器就会相应产生。 DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。操作简单,使用基亚5110二手屏幕显示DHT11传感器读出来的温度和湿度值。关键字:AT89S52;5110液晶;DHT11传感器;单总线AbstractBecause of the temperature and the humidity from both the physical quantity itself or in the actual life of peop
2、le are closely related, so the temperature and humidity sensor integrated will arise accordingly. Between DHT11 and SCM can adopt the simple single bus, only need a I/O port. Simple operation, using the base of 5110 secondhand screen display DHT11 sensor Read out the temperature and humidity.Keyword
3、s: AT89S52; DHT11 5110 LCD; sensor; single bus目 录 引 言 -11.1 DHT11描述-21.2 管脚排列-21.3 应用电路连接说明-21.4 DHT11数据结构-31.5 DHT11的传输时序-3 1.5.1 DHT11开始发送数据流程-3 1.5.2 主机复位信号和DHT11响应信号 -3 1.5.3 数字0信号表示方法-3 1.5.4 数字1信号表示方法-42、诺基亚5110液晶简介(PCD8544驱动)-4 2.1 引脚-4 2.2 功能描述:-5 2.2.1 地址计数器 (AC)-52.2.2 初始化-52.2.3复位的作用-62.2
4、.4显示控制-62.2.5 串行接口时序-62.2.6 指令集 -63、 总结-74、 谢辞-85、参考文献-96、附录-10 5.1 实验总框架图-10 5.2 硬件部分-10 5.2.1硬件原理图-10 5.2.2 硬件PCB图-11 5.2.3 所需元器件-11 5.3 实验效果-11 5.4 实验软件程序-12 引 言可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个8位单片机相连接。该产品具有通信便捷、超快响应、抗干扰能力强等优点。每个DHT11传感器都在OTP内存中存入了在湿度校验室中获得的校准系数。校准系数以程序的形式储存,在传感器内部在检测信号
5、的处理过程中要调用这些校准系数。单总线串行接口,仅需1个I/O口即可实现对温度和湿度的同时测量,使系统集成变得简易快捷,小体积、低功耗,使其成为一种温湿度测量原件的不错选择。是居家温湿度表不错的传感器件。1.1 DHT11描述 DHT11是广州奥松有限公司生产的一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,
6、有效的保证数据传输的准确性。DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。性能指标和特性如下: 1、工作电压范围:3.5V-5.5V 2、工作电流 :平均0.5mA 3、湿度测量范围:2090RH 4、温度测量范围:050 5、湿度分辨率 :5RH 8位 6、温度分辨率 :1 8位 7、采样周期 :1S 8、单总线结构 9、与TTL兼容(5V)1.2 管脚排列 :PIN名称注释1VDD供电(3-5V)2DATA串行数据,单总线3NC悬空4GND电源地1.3 应用电路连接说明 DHT11数字湿温度传感器连接方法极为简单。第一脚接电源正,第四脚接电源地端。数据端为第二脚。可直接接
7、主机(单片机)的I/O口。为提高稳定性,建议在数据端和电源正之间接一只1K的上拉电阻。第三脚为空脚,此管脚悬空不用。 因为DHT11是数字传感器,所以建议在电源正引脚接上滤波电容以提高稳定性。1.4 DHT11数据结构 DHT11数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。数据分小数部分和整数部分,具体格式在下面说明。一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bit温度整数数据+8bit温度小数数据 +8bit校验和 校验和数据为前四个字节相加。 传感器数据输出的
8、是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应该分开处理。如果,某次从传感器中读取如下5Byte数据: byte4 byte3 byte2 byte1 byte0 00101101 00000000 00011100 00000000 01001001 整数 小数 整数 小数 校验和 湿度 温度 校验和 由以上数据就可得到湿度和温度的值,计算方法: humi (湿度)= byte4 . byte3=45.0 (RH) temp (温度)= byte2 . byte1=28.0 ( ) Jiaoyan=byte4+byte3+byte2+byte1=73(=humi+temp)(校验
9、正确) 注意:DHT11一次通讯时间最大3ms,主机连续采样间隔建议不小于100ms。1.5 DHT11的传输时序1.5.1、DHT11开始发送数据流程主机发送开始信号后,延时等待20us-40us后读取DH11T的回应信号,读取总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高,准备发送数据,每一bit数据都以低电平开始,格式见下面图示。如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。 VCC主机开始 DHT响应输出 数据0 数据1 GND 拉高并等待 准备输出 1.5.2 主机复位信号和DHT11响应信号 VCC 主机拉高20-40us
10、 DHT拉高40-50us GND 主机至少拉低18ms DHT拉高40-50us 传送指令开始1.5.3 数字0信号表示方法VCC26-28us 表示 0下一位开始GND12-14us1BIT开始1.5.4 数字1信号表示方法 VCC116-118us 表示 1下一位开始GND1BIT开始 12-14us2、诺基亚5110液晶简介(PCD8544驱动)特征:单芯片LCD 控制/驱动48 行,84 列输出显示数据RAM 48*84 位芯片集成:LCD 电压发生器(也可以使用外部电压供应)LCD偏置电压发生器振荡器不需要外接元件(也可以使用外部时钟)外部RES(复位)输入引脚串行界面最高4.0M
11、bits/SCMOS 兼容输入混合速率:48逻辑电压范围VDD 到VSS:2.7V3.3V显示电压范围VLCD 到VSS:6.08.5V LCD内部电压发生器(充许电压发生器)6.09.0V LCD 外部电压供应(电压发生器关闭)低功耗,适用于电池供电系统关于VLCD 的温度补偿使用温度范围:-25702.1 引脚SDIN串行数据输入端SCLK串行时钟输入端D/C数据/命令SCE芯片使能RES外部复位输入端SDIN:串行数据线 输入:数据线。SCLK: 串行时钟线 输入:时钟信号: 0.0 4.0 Mbits/s.D/C: 模式选择 输入:选择命令/地址或输入数据 SCE: 芯片使能使能引脚充
12、许输入数据,低电平有效。RES:复位此信号会复位设备,应用于初始化芯片。低电平有效。2.2 功能描述:2.2.1地址计数器 (AC) 地址计数器为写入显示数据存储器指定地址。X地址 X6X0和Y地址Y2Y0 分别设置。写入操作之后,地址计数器依照V标志自动加1。显示数据存储器 (DDRAM)。DDRAM是存储显示数据的48*84位静态RAM。RAM分为6排,每排84字节(6*8*84位)。访问RAM期间,数据通过串行接口传输。这里X地址与列输出号码直接通信。2.2.2 初始化 接电源后,内部寄存器和RAM的内容不确定。必须应用一个RES脉冲。注意,不正确的复位是危险的,可能会损坏设备。所有内部
13、寄存器在指定的时间内,通过31脚的外部RES脉冲(低电平)复位。无论如何,RAM的内容仍然不确定。 2.2.3复位的作用 复位后,LCD驱动器有下列状态:电源节省模式 (位 PD = 1)水平寻址 (位 V = 0)常规指令设置(位 H = 0)显示页(位 E = D = 0)地址计数器 X6 至 X0 = 0; Y2 至 Y0 = 0温度控制模式(TC1 TC0 = 0)偏置系统 (BS2 至 BS0 = 0)VLCD 等于 0, HV 发生器为关闭状态(VOP6 至 VOP0 = 0)加电后,RAM内容不确定。 2.2.4显示控制 位 D 和 E 位 D 和 E 选择显示模式 设置RAM的
14、 Y 地址 定义显示RAM的Y寻址向量。Y的范围是0至5 设置RAM的 X 地址 X 地址指向列。X的范围是0至83(53H)。 位 V 当 V = 0,选择水平寻址。数据写入DDRAM 当 V = 1,选择垂直寻址。数据写进DDRAM位 H 当 H = 0, 可以执行显示控制,设置Y地址和设置X地址; 当 H = 1,可以执行其它命令。 操作电压 VLCD 可以用软件设置,值根据液晶来选择。VLCD = a + (VOP6 to VOP0)x b V.对于PCD8544,a = 3.06 ,b = 0.06在室温下的编程范围为3.0010.68。注意如果VOP 6to VOP0设为0时,会关
15、闭负荷的吸取。例如混合比 1 : 48, 适当的液晶操作电压,Vth 是液晶的极限使用电压。警告, 在低温下增加VOP 时,在25情况下,VOP不能超过8.5V极限值。2.2.5 串行接口时序 2.2.6 指令集 指令D/C命令字描述DB7DB6DB5DB4DB3DB2DB1DB0(H=0 or 1)NOP000000000空操作功能设置000100PDVH写数据1D7D6D5D4D3D2D1D0写数据到显示 RAMH=0保留0000000XX不可使用显示控制000001D0E设置显示配置保留00001XXXX不可使用设置RAM的Y地址001000Y2Y1Y0Y的范围是0至5设置RAM的x地址
16、01X6X5X4X3X2X1X0X的范围是0至83H=1保留000000001不可使用保留00000001X不可使用温度控制0000001TC1TC0设置温度系数(TC x)保留000001XXX不可使用偏置系统000010BS2BS1BS0设置偏置系统保留001XXXXXX不可使用设置Vop01Vop6Vop5Vop4Vop3Vop2Vop1Vop0写VOP 到寄存器PD芯片是活动的芯片处于掉电模式V水平寻址垂直寻址H使用基本指令集使用扩展指令集D and E00显示空白01普通模式10开所有显示段11反转映象模式TC1 and TC000VLCD 温度系数 001VLCD 温度系数 110
17、VLCD 温度系数 211VLCD 温度系数 33 总结: 通过此次课程设计,使我更加扎实的掌握了有关课本知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。因为在试验中,我画PCB时忘记了连接晶振电容的地引脚,导致做出板后用导线连接,降低了电路板的美观。忽略了AT89S52的第31引脚接VCC才是访问片内存储器,也导致了我烧坏了一片DHT11传感器。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。谢 辞首先感谢学院给了我实际动手做电路板的机会,让我对自己专业知识有更深一步的认识。让我感受
18、到我们工科生要不断提高自己的动手能力,日后做电子作品才能更好,更快地完成。在此感谢彭老师在我写论文时给的批注和改正。让我对本科论文的编写格式有更深的理解和认识更深刻。 参考文献:诺基亚5110液晶中文手册广州奥松有限公司DHT11温湿度传感器说明书1 郭天祥.新概念51单片机C语言教程入门、提高、开发、拓展全攻略.北京:电子工业出版社,20092 谭浩强.C程序设计教程.北京:清华大学出版社,2007.7附 录 5.1 实验总框架图:DHT11采集温湿度 CPU AT89S52提取,处理实时温湿度值 液晶5110显示当前温湿度值5.2 硬件部分:由AT89S52最小系统,诺基亚5110液晶和D
19、HT11温湿度传感器组成,电路相当简单。5.2.1硬件原理图5.2.2 硬件PCB图5.2.3 硬件所需元器件CommentDesignatorFootprintQuantity10UFC1, C6, C7RB13104C2RAD0.15130pC3, C4RAD0.152100nfC5RAD0.151ledD1diode111.0592MD2晶振1JTAGJ8JTAG1Header 3X2AP1HDR2X3_CEN1Header 20P2, P4HDR1X202res10kP3HDR1X91RESR1RES11kR2, R3AXIAL0.3210kR4AXIAL0.31自锁S11SW-PB*
20、S2sw-pb15110U151101AT89S52U2DIP401DHT11U415.3 实验效果: 上电后,5110液晶显示第二,三行分别显示温度,湿度值。接着在第一行显示学号1000220620。停留1秒钟后,切换显示姓名李能剑,再停留1秒后,就动态显示基于单片机的温湿度传感器。5.4 软件程序流程图: 5.4.1软件流程图: 开始 5110复位 初始化5110 5110清屏 5110显示温度: 湿度: %RH 进入while(1) 循环 执行DHT11_ReadTempAndHumi(); 读取温湿度当前值 显示温湿度值 显示名字 李能剑显示学号 10000220620 Flag=1f
21、lag=2 判flag 动态显示 基于单片机的温 湿度传感器5.4.2 软件程序 #include reg52.hsbit res =P27;sbit sce =P26;sbit dc =P25;sbit sdin =P24;sbit sclk =P23;sbit dht11=P20;#define OK 1#define ERROR 0#define NUMBER 20#define SIZE 5unsigned char flag=1;unsigned char status; / 存放五字节数据的数组unsigned char value_arraySIZE; /* 可在其他的文件引用温
22、湿度值, 实际是温度的整数的10倍;*/* 如dht11读回的温度是 26,则temp_value = 260, 湿度同理*/unsigned char k=0;unsigned int code hanzi=0x82,0x82,0xFF,0xAA,0xAA,0xAA,0xAA,0xAA,0xFF,0x82,0x82,0x00,0x0A,0x09,0x0A,0x0A,0x0A,0x0F,0x0A,0x0A,0x0A,0x09,0x0A,0x00,/*基,0*/0x20,0x21,0x21,0x21,0x21,0xFF,0x21,0x21,0x21,0x21,0x20,0x00,0x00,0x0
23、0,0x00,0x08,0x08,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,/*于,1*/0x00,0x7C,0x55,0x56,0x54,0xFC,0x54,0x56,0x55,0x7C,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x0F,0x01,0x01,0x01,0x01,0x01,0x00,/*单,2*/0x00,0x00,0xFE,0x90,0x90,0x90,0x90,0x9F,0x90,0x10,0x10,0x00,0x08,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00
24、,0x00,/*片,3*/0x88,0x68,0xFF,0x28,0x40,0xFE,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x0F,0x08,0x04,0x03,0x00,0x00,0x07,0x08,0x0E,0x00,/*机,4*/0xFC,0x46,0x45,0x44,0xFC,0x10,0x08,0x27,0xC4,0x04,0xFC,0x00,0x0F,0x04,0x04,0x04,0x0F,0x00,0x00,0x00,0x08,0x08,0x07,0x00,/*的,5*/0x22,0x44,0x00,0xC0,0x5F,0xD5,0x5
25、5,0xD5,0x5F,0xC0,0x00,0x00,0x04,0x02,0x09,0x0F,0x08,0x0F,0x08,0x0F,0x08,0x0F,0x08,0x00,/*温,6*/0x11,0x22,0x80,0x3E,0x2A,0xEA,0x2A,0xEA,0x2A,0x3E,0x80,0x00,0x04,0x02,0x08,0x09,0x08,0x0F,0x08,0x0F,0x08,0x09,0x08,0x00,/*湿,7*/0x00,0xFE,0x0A,0x8A,0xBE,0xAA,0xAB,0xAA,0xBE,0x8A,0x0A,0x00,0x08,0x07,0x00,0x08
26、,0x09,0x0A,0x04,0x04,0x0A,0x09,0x08,0x00,/*度,8*/0x20,0x10,0xFC,0x23,0x24,0xE4,0xBC,0xA7,0xA4,0xA4,0x20,0x00,0x00,0x00,0x0F,0x00,0x00,0x02,0x02,0x04,0x06,0x09,0x00,0x00,/*传,9*/0x00,0xFE,0x02,0xEA,0xAA,0xEA,0x02,0x9F,0x62,0x9B,0xC2,0x00,0x09,0x06,0x00,0x06,0x08,0x0A,0x0D,0x08,0x0C,0x02,0x0D,0x00,/*感,1
27、0*/0x20,0x27,0xA5,0xA5,0x67,0x38,0x67,0xA5,0xAD,0x37,0x20,0x00,0x01,0x0F,0x0A,0x0A,0x0E,0x00,0x0E,0x0A,0x0A,0x0F,0x01,0x00,/*器,11*/0x00,0x88,0x48,0xE8,0x98,0xFE,0x88,0x98,0xA8,0x48,0xC8,0x00,0x00,0x08,0x08,0x08,0xC8,0x7C,0x0A,0x09,0x09,0x08,0x08,0x00,/*李,0*/0x00,0xB0,0xAC,0xA6,0xA8,0xB0,0x20,0x7E,0x
28、48,0x48,0x64,0x00,0x00,0xFF,0x12,0x12,0xD2,0x7F,0x00,0x7F,0x44,0x46,0x62,0x00,/*能,1*/0x00,0x60,0x10,0x4C,0x46,0x48,0x10,0x00,0xF8,0x00,0xFE,0x00,0x00,0x43,0x4C,0x63,0x24,0x3E,0x21,0x00,0x0F,0xC0,0x7F,0x00,/*剑,2*/0x00,0x30,0x48,0x30,0xE0,0x10,0x10,0x08,0x10,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x3
29、0,0x20,0x20,0x20,0x10,0x00,0x00,/*,15*/0x00,0x00,0xF8,0x88,0x78,0x00,0x80,0x60,0x10,0x08,0x00,0x00,0x00,0x00,0x20,0x18,0x04,0x03,0x00,0x1E,0x22,0x3E,0x00,0x00,/*,16*/0x00,0x70,0x34,0xB8,0xB0,0xBE,0xB0,0xB0,0xBC,0x32,0x70,0x00,0x00,0x08,0x08,0x08,0xC8,0xC8,0x7E,0x0B,0x09,0x08,0x08,0x00,/*学,17*/0x00,0
30、x80,0x80,0xBC,0xA4,0xA4,0xA4,0xA4,0xBC,0x80,0x80,0x00,0x00,0x00,0x00,0x06,0x05,0x04,0xC4,0x44,0x74,0x0C,0x00,0x00,/*号,18*/0x00,0x20,0xFC,0x22,0xE0,0x60,0x1C,0x10,0xFE,0x10,0x10,0x00,0x00,0x43,0x34,0x1F,0x30,0x43,0x43,0x43,0x7F,0x43,0x43,0x40,/*姓,19*/0x00,0x00,0x20,0x18,0x6E,0xC8,0x88,0x68,0x38,0x08,
31、0x00,0x00,0x00,0x04,0x04,0xFE,0x22,0x23,0x22,0x22,0x22,0xFE,0x00,0x00,/*名,20*/;unsigned char code zimu=/*- 宋体9; 此字体下对应的点阵为:宽x高=6x12 -*/*- 高度不是8的倍数,现调整为:宽度x高度=6x16 -*/0x00,0xF0,0x18,0x08,0x18,0xF0,0x01,0x1F,0x30,0x20,0x30,0x1F,/*0,0*/0x00,0x20,0x20,0xF8,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,/*1,1*/
32、0x00,0x70,0x18,0x08,0x98,0xF0,0x00,0x38,0x2C,0x26,0x23,0x20,/*2,2*/0x00,0x30,0x18,0x08,0x98,0xF0,0x0C,0x1C,0x30,0x21,0x31,0x1E,/*3,3*/0x00,0x00,0xC0,0x30,0xF8,0x00,0x04,0x07,0x04,0x04,0x3F,0x04,/*4,4*/0x00,0xF8,0x88,0xC8,0x88,0x88,0x00,0x19,0x30,0x20,0x30,0x1F,/*5,5*/0x00,0xE0,0x98,0x88,0x98,0x30,0x
33、00,0x1F,0x31,0x20,0x30,0x1F,/*6,6*/0x00,0x08,0x08,0x08,0xC8,0x78,0x00,0x00,0x20,0x3E,0x03,0x00,/*7,7*/0x00,0xF0,0x98,0x08,0x98,0xF0,0x00,0x1E,0x31,0x21,0x31,0x1E,/*8,8*/0x00,0xF0,0x18,0x08,0x18,0xF0,0x00,0x19,0x33,0x22,0x31,0x0F,/*9,9*/0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x00,0x00,/*:,
34、10*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,/*.,11*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/* ,12*/0x08,0xF8,0x08,0x08,0xF0,0x00,0x00,0x3F,0x01,0x0F,0x30,0x00,/*R,13*/0x08,0xF8,0x00,0x00,0xF8,0x08,0x00,0x3F,0x01,0x01,0x3F,0x00,/*H,14*/; void delay_ms(unsigned
35、 char t) unsigned char i,j;for(i=0;it;i+) for(j=0;j80;j+) ; void delay_us(unsigned char t) unsigned char j;for(j=0;jt;j+) ; /*LCD_write_byte: 使用SPI接口写数据到LCD输入参数:dt:写入的数据;command :写数据/命令选择;*/void LCD_write_byte(unsigned char dt, unsigned char command)unsigned char i; sce=0;if(command=1) dc=1; else dc=0; for(i=0;i8;i+) if(dt&0x80) sdin=1; else sdin=0;dt=dt1;sclk=0; sclk=1; delay_ms(1);dc=1;sce=1;/sdin=1;/LCD_init: 3310LCD初始化void LCD_init(void)res=0; delay_ms(1); res=1; LCD_write_byte(0x21,0);/初始化Lcd,功能设定使用扩充指令LCD_write_byte(0xd0,0);/设定液晶偏置电压LCD_write_byte(0x20,0);/使用基本指令LC
链接地址:https://www.31ppt.com/p-4144895.html