欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机的温湿度传感器大学课程方案设计.docx

    • 资源ID:96080432       资源大小:317.17KB        全文页数:26页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机的温湿度传感器大学课程方案设计.docx

    由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着亲热的关系,所以温湿度一体的传感器就会相应产生。 DHT11 与单片机之间能承受简洁的单总线进展通信,仅仅需要一个I/O 口。操作简洁,使用基亚 5110 二手屏幕显示 DHT11 传感器读出来的温度和湿度值。关键字:AT89S52。5110液晶。DHT11传感器。单总线AbstractBecause of the temperature and the humidity from both the physical quantity itself or in the actuallife of people 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.Keywords: AT89S52。 DHT11 5110 LCD。 sensor。 single bus目 录引 言11.1 DHT11描述21.2 管脚排列21.3 应用电路连接说明21.4 DHT11数据构造31.5 DHT11的传输时序31.5.1 DHT11 开头发送数据流程31.5.2 主机复位信号和 DHT11 响应信号31.5.3 数字0信号表示方法31.5.4 数字1信号表示方法42、诺基亚5110液晶简介PCD8544驱动42.1 引脚42.2 功能描述:52.2.1 地址计数器 (AC)52.2.2 初始化52.2.3 复位的作用62.2.4 显示掌握62.2.5 串行接口时序62.2.6 指令集63、总结74、谢辞85、参考文献96、附录105.1 试验总框架图105.2 硬件局部105.2.1 硬件原理图105.2.2 硬件 PCB 图115.2.3 所需元器件115.3 试验效果115.4 试验软件程序12引 言牢靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个8 位单片机相连接。该产品具有通信便捷、超快响应、抗干扰力量强等优点。每个DHT11 传感器都在 OTP 内存中存入了在湿度校验室中获得的校准系数。校准系数以程序的形式储存,在传感器内部在检测信号的处理过程中要调用这些校准系数。单总线串行接口,仅需1 个 I/O 口即可实现对温度和湿度的同时测量,使系统集成变得简易快捷,小体积、低功耗,使其成为一种温湿度测量原件的 不错选择。是居家温湿度表不错的传感器件。1.1 DHT11 描述DHT11 是广州奥松生产的一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能8 位单片机相连接。通过单片机等微处理器简洁的电路连接就能够实时的采集本地湿度和温度。DHT11 与单片机之间能承受简洁的单总线进展通信,仅仅需要一个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据承受校验和方式进展校验,有效的保证数据传输的准确性。DHT11 功耗很低,5V 电源电压下,工作平均最大电流 0.5mA。性能指标和特性如下:1、工作电压范围:3.5V-5.5V2、工作电流:平均0.5mA3、湿度测量范围:2090RH4、温度测量范围:0505、湿度区分率:5RH 8位6、温度区分率:1 8位7、采样周期:1S8、单总线构造9、与TTL兼容5V1.2 管脚排列:PIN1234VDD DATA NC GND名称注释供电3-5V串行数据,单总线悬空电源地1.3 应用电路连接说明DHT11 数字湿温度传感器连接方法极为简洁。第一脚接电源正,第四脚接电源地端。数据端为其次脚。可直接接主机单片机的 I/O 口。为提高稳定性,建议在数据端和电源正之间接一只 1K 的上拉电阻。第三脚为空脚,此管脚悬空不用。 由于 DHT11 是数字传感器,所以建议在电源正引脚接上滤波电容以提高稳定性。1.4 DHT11数据构造DHT11数字湿温度传感器承受单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由5Byte40Bit组成。数据分小数局部和整数局部,具体格式在下面说明。一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和校验和数据为前四个字节相加。传感器数据输出的是未编码的二进制数据。数据(湿度、温度、整数、小数)之间应当分开处理。假设,某次从传感器中读取如下5Byte数据:byte4byte3byte2byte1byte000101101 00000000 00011100 00000000 01001001整数小数整数 小数 校验和湿度温度校验和由以上数据就可得到湿度和温度的值,计算方法:humi (湿度)= byte4 . byte3=45.0 (RH) temp (温度)= byte2 . byte1=28.0 ( )Jiaoyan=byte4+byte3+byte2+byte1=73(=humi+temp)(校验正确)留意:DHT11 一次通讯时间最大 3ms,主机连续采样间隔建议不小于100ms。1.5 DHT11 的传输时序1.5.1 、DHT11 开头发送数据流程主机发送开头信号后,延时等待 20us-40us 后读取 DH11T 的回应信号,读取总线为低电平,说明DHT11 发送响应信号,DHT11 发送响应信号后,再把总线拉高,预备发送数据,每一 bit 数据都以低电平开头,格式见下面图示。假设读取响应信号为高电平,则 DHT11 没有响应,请检查线路是否连接正常。VCC主机开头DHT 响应输出数据0GND拉高并等待预备输出1.5.2 主机复位信号和 DHT11 响应信号VCC主机拉高 20-40usDHT 拉高 40-50usGND主机至少拉低 18msDHT 拉高 40-50us数据11.5.3 数字0信号表示方法传送指令开头VCC26-28us 表示 0下一位开头GND12-14us1BIT开头1.5.4 数字1信号表示方法VCC116-118us 表示 1GND1BIT开头12-14us下一位开头2、诺基亚5110液晶简介PCD8544驱动 特征:单芯片LCD 掌握/驱动48 行,84 列输出显示数据RAM 48*84 位芯片集成:LCD 电压发生器也可以使用外部电压供给LCD偏置电压发生器振荡器不需要外接元件也可以使用外部时钟 外部RES复位输入引脚串行界面最高4.0Mbits/S CMOS 兼容输入混合速率:48规律电压范围VDD 到VSS:2.7V3.3V 显示电压范围VLCD 到VSS:6.08.5V LCD内部电压发生器充许电压发生器6.09.0V LCD 外部电压供给电压发生器关闭 低功耗,适用于电池供电系统关于VLCD 的温度补偿使用温度范围:-25702.1 引脚SDINSCLKD/CSCE RES串行数据输入端串行时钟输入端数据/命令芯片使能外部复位输入端SDIN:串行数据线 输入:数据线。SCLK: 串行时钟线输入:时钟信号: 0.0 4.0 Mbits/s.D/C: 模式选择输入:选择命令/地址或输入数据SCE: 芯片使能使能引脚充许输入数据,低电平有效。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 脉冲。留意,不正确的复位是危急的,可能会损坏设备。全部内部存放器在指定的时间内,通过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的 Y 地址定义显示RAM的Y寻址向量。Y的范围是0至5 设置RAM的 X 地址X 地址指向列。X的范围是0至8353H。位 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时,会关闭负荷的吸取。例如混合比 1 : 48, 适当的液晶操作电压,Vth 是液晶的极限使用电压。警告, 在低温下增加VOP 时,在25状况下,VOP不能超过8.5V极限值。2.2.5 串行接口时序2.2.6 指令集D/C命令字指令DBDBDBDB7654DB3 (H=0 or 1)DBDB21描述DB0NOP000000000空操作功能设置000100PDVH写数据1D7D6D5D4D3D2D1写数据到显示D0保存00000H=000XXRAM不行使用显示掌握000001D0E设置显示配置00001XXXX不行使用001000Y2Y1Y0Y的范围是0至501X6X5X4X3X2X1X0X的范围是0至83保存 设置RAM的Y地址设置RAM的x地址H=1保存000000001不行使用保存00000001X不行使用温度掌握0000001TC1TC0设置温度系数(TC x)保存000001XXX不行使用偏置系统000010BS2BS1BS0设置偏置系统保存001XXXXXXPDV HD and E 00011011TC1 and TC0 00011011芯片是活动的水平寻址使用根本指令集不行使用芯片处于掉电模式垂直寻址使用扩展指令集显示空白一般模式 开全部显示段反转映象模式VLCD 温度系数 0VLCD 温度系数 1 VLCD 温度系数 2VLCD 温度系数 3设置Vop01写VOP 到存放器VoVoVoVopVoVopVopp6p5p43p2103 总结:通过此次课程设计,使我更加扎实的把握了有关课本学问,在设计过程中虽然遇到了一些问题, 但经过一次又一次的思考,一遍又一遍的检查最终找出了缘由所在,也暴露出了前期我在这方面的 学问欠缺和阅历缺乏。由于在试验中,我画 PCB 时遗忘了连接晶振电容的地引脚,导致做出板后用导线连接,降低了电路板的美观。无视了 AT89S52 的第 31 引脚接 VCC 才是访问片内存储器,也导致了我烧坏了一片 DHT11 传感器。实践出真知,通过亲自动手制作,使我们把握的学问不再是纸上谈兵。谢 辞首先感谢学院给了我实际动手做电路板的时机,让我对自己专业学问有更深一步的生疏。让我感受到我们工科生要不断提高自己的动手力量,日后做电子作品才能更好,更快地完成。在此感谢彭教师在我写论文时给的批注和改正。让我对本科论文的编写格式有更深的理解和生疏更深刻。参考文献:诺基亚 5110 液晶中文手册广州奥松有限公司DHT11温湿度传感器说明书1 郭天祥.概念 51 单片机 C 语言教程入门、提高、开发、拓展全攻略.北京:电子工业出版社,20232 谭浩强.C 程序设计教程.北京:清华大学出版社,2023.7附 录5.1 试验总框架图:DHT11 采集温湿5.2 硬件局部:CPUAT89S52提取,处理实时温湿度值液晶 5110 显示当前温湿度值由 AT89S52 最小系统,诺基亚 5110 液晶和 DHT11 温湿度传感器组成,电路相当简洁。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*S2sw-pb15110U151101AT89S52U2DIP401DHT11U415.3 试验效果:上电后,5110 液晶显示其次,三行分别显示温度,湿度值。接着在第一行显示学号 1000220620。停留 1 秒钟后,切换显示姓名李能剑,再停留 1 秒后,就动态显示基于单片机的温湿度传感器。5.4 软件程序 流程图:开头5110 复位初始化 51105110 清屏5110 显示温度:湿度: %RH进入 while1循环执行 DHT11_ReadTempAndHumi。读取温湿度当前值显示温湿度值Flag=1100显00220620示判学flag号flag=2显李 示能 名剑 字动态显示 基于单片机的温湿度传感器5.4.1 软件流程图:5.4.2 软件程序#include “reg52.h“ sbitres =P27。sbitsce =P26。sbitdc=P25。sbitsdin =P24。sbitsclk =P23。sbitdht11=P20。#define OK 1#define ERROR 0#define NUMBER20#define SIZE 5 unsigned char flag=1。unsigned char status。/ 存放五字节数据的数组unsigned char value_arraySIZE。 /* 可在其他的文件引用温湿度值, 实际是温度的整数的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,0x00,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,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,0x55,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,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,/*“感“,10*/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,0x48,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,0x30,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,0x80,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,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*/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,0x00,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,/*“:“,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 char t)unsigned char i,j。for(i=0。i<t。i+)for(j=0。j<80。j+) 。void delay_us(unsigned char t)unsigned char j。for(j=0。j<t。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。i<8。i+)if(dt&0x80)sdin=1。elsesdin=0。dt=dt<<1。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)。/使用根本指令LCD_write_byte(0x0C,0)。/设定显示模式,正常显示/LCD_set_XY: 设置LCD坐标函数/输入参数:X:083 Y:05void LCD_set_XY(unsigned char X, unsigned char Y)LCD_write_byte(0x40 | Y, 0)。/ column LCD_write_byte(0x80 | X, 0)。/ row/LCD_clear: LCD清屏函数void LCD_clear(void)unsigned char t。unsigned char k。LCD_set_XY(0,0)。for(t=0。t<6。t+)for(k=0。k<84。k+)LCD_write_byte(0x00,1)。/*LCD_write_shu: 显示8宽*16高点阵列数字字母符号等半角类输入参数:c:显示的字符;*/void Display_zimu(unsigned char row, unsigned char ,unsigned char c) /row列:页 dd:字符unsigned char i。LCD_set_XY(row*6, )。/ 列,页for(i=0。 i<6。i+)LCD_write_byte(zimuc*12+i,1)。LCD_set_XY(row*6, +1)。/ 列,页for(i=6。 i<12。i+)LCD_write_byte(zimuc*12+i,1)。void Display_hanzi(unsigned char row, unsigned char ,unsigned char c) /row: 列 :页 dd:字符unsigned char i。LCD_set_XY(row*6, )。/ 列,页for(i=0。 i<12。i+)LCD_write_byte(hanzic*24+i,1)。LCD_set_XY(row*6, +1)。/ 列,页for(i=12。 i<24。i+)LCD_write_byte(hanzic*24+i,1)。/温湿度传感器局部程序如下:/*-*/延时函数void Delay_1ms(unsigned int ms)unsigned int x, y。for(x = ms。 x > 0。 x-)for(y = 124。 y > 0。 y-)。void DHT11_Delay_10us(void)unsigned char i。i-。i-。i-。i-。i-。i-。/* 读一个字节的数据*/unsigned char DHT11_ReadValue(void)unsigned char count, value = 0, i。status = OK。/设定标志为正常状态for(i = 8。 i > 0。 i-)/高位在先value <<= 1。count = 0。while(dht11 = 0 && count+ < NUMBER)。等待50us 低电平完毕if(count >= NUMBER)/每一位数据前会有一个 50us 的低电寻常间.status = ERROR。 /设定错误标志return 0。/函数执行过程发生错误就退出函数DHT11_Delay_10us。 /26-28us的高电平表示该位是 0, 为70us 高电平表该位 1 DHT11_Delay_10us。DHT11_Delay_10us。if(dht11 != 0)/延时30us 后检测数据线是否还是高电平value+。/进入这里表示该位是 1while(dht11 != 0 && count+ < NUMBER)/等待剩余(约40us)的高电平完毕dht11 = 1。if(count >= NUMBER)status = ERROR。 /设定错误标志return 0。return (value)。/ 读温度和湿度函数,读一次的数据, 共五字节,读出成功函数返回OK, 错误返回ERROR unsigned char DHT11_ReadTempAndHumi(void)unsigned char i = 0, check_value = 0,count = 0。dht11 = 0。/拉低数据线大于 18ms发送开头信号Delay_1ms(20)。 / 需大于 18 毫秒dht11 = 1。

    注意事项

    本文(单片机的温湿度传感器大学课程方案设计.docx)为本站会员(碎****木)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开