【带WiFi功能远程除湿器显示电路设计案例2500字】_第1页
【带WiFi功能远程除湿器显示电路设计案例2500字】_第2页
【带WiFi功能远程除湿器显示电路设计案例2500字】_第3页
【带WiFi功能远程除湿器显示电路设计案例2500字】_第4页
【带WiFi功能远程除湿器显示电路设计案例2500字】_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

带WiFi功能远程除湿器显示电路设计案例目录TOC\o"1-3"\h\u29176带WiFi功能远程除湿器显示电路设计案例 1272701.1LED显示屏模块电路设计 1279921.2传感器模块设计 71.1LED显示屏模块电路设计MCU通过读取DS1302芯片、DHT11温湿传感器数据,系统能够得到准确的日历,时间和温湿信息。为了方便观测所测得的数据,同时为了后期方便系统软硬件的维护改进,系统需要安装一块显示屏,用于实现显示电子时间和温湿度的功能。本设计选型为液晶显示模块LCD1602液晶显示屏。LCD1602液晶显示屏可以通过额外串联阻排连接STC89C52RC单片机工作,其中工作电压为5V,工作电流为2mA,LCD1602内部芯片包含随机存取储存器、字符发生存储器、显示数据随机存储器,在软件设计过程中,LCD1602开关与读写操作简单,单片机能够通过识别显示屏引脚高低电平的方式来实现数据读写闪烁等操作,能够显示英文数字字符与调节背光,存在工作功率低,对电路电流抗干扰能力强等优点。如下是LCD1602外形尺寸图如图3-1-1所示:图3-1-1LCD1602外形尺寸图如图可以看出LCD1602显示屏占用体积小,重量轻,适合设计远程除湿器内部使用。液晶显示模块LCD1602共有32个LED数码管,正常工作时能同时显示32个字符,且支持美国信息交换标准全部代码ASCII。含有16个引脚接口。因为LCD1602接口电路较简易且稳定性强,设计方式比较简单。此外,该器件含有背光设置,VCC引脚接了一个可调电阻,V0为可调电阻的滑动引脚,通过旋钮电位器来改变显示屏背光,当电阻调大时,对比度变低,当电阻调小时,对比度升高。引脚DB0-DB7分别于单片机P00-P07连接,每个都为8为双向数据引脚。该器件引脚接口信号说明如图3-1-2所示:图3-1-2LCD1602引脚定义图上图分别标明了RS、RW、E、DB0-DB7四类引脚的状态与功能。由于外接STC89C52RC单片机的P0端口内置上拉晶体管,能提供约为10uA左右的弱上拉电流,但其并不是上拉电阻,因此不能输出高电平,需要外接上拉电阻来驱动外部设备,本次设计需外接1K组排。选型为A102J提供电阻,A102J共9个引脚,其中接VCC口1个,其余8个分别与显示模块D00-D07并联至单片机P00-P07引脚接口。 LCD1602液晶电路连接如图3-1-1所示。图3-1-3LCD1802电路图完成硬件模块电路搭载之后利用keil进行开发,可以与Proteus连接,绘制电路图并显示,易于完善代码。在外接STC89C52RC单片机使用的情况下,需要为LCD1602输入延时函数,该函数是在11.0592MHz晶振下,11分频单片机的延时,延时时间为1ms。如下所示:voidLcd1602_Delay1ms(uintc)//误差0us{uchara,b; for(;c>0;c--) { for(b=199;b>0;b--) { for(a=1;a>0;a--); } } }对LCD1602设置写入命令,需要先将E、RS和RW设置为低电平,将需要输入的数据写入至端口后设置延时,调高E引脚电平写入数据再将其调低,便能完成数据写入的操作。本次代码设计如下:#ifndef LCD1602_4PINS //当为定义LCD1602的4Pins时voidLcdWriteCom(ucharcom) { LCD1602_E=0; LCD1602_RS=0; //选择发送指令 LCD1602_RW=0; //选择写入 LCD1602_DATAPINS=com;//置入命令 Lcd1602_Delay1ms(1); LCD1602_E=1; //将数据写入 Lcd1602_Delay1ms(5); LCD1602_E=0;}#elsevoidLcdWriteCom(ucharcom) { LCD1602_E=0; LCD1602_RS=0; //选择写入 LCD1602_RW=0; //选择写入 LCD1602_DATAPINS=com; //置入命令 Lcd1602_Delay1ms(1); LCD1602_E=1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E=0;// Lcd1602_Delay1ms(1); LCD1602_DATAPINS=com<<4;//发送低四位 Lcd1602_Delay1ms(1); LCD1602_E=1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E=0;}#endif向LCD写入一个字节的数据,在LCD上实现显示时,需要将RS置为高电平,RW置为低电平,然后将数据传输到数据口D0-D7,最后E引脚一个高脉冲将数据写入,与写指令字相似,本次设计代码如下:#ifndef LCD1602_4PINS voidLcdWriteData(uchardat) { LCD1602_E=0; LCD1602_RS=1; LCD1602_RW=0; LCD1602_DATAPINS=dat; Lcd1602_Delay1ms(1); LCD1602_E=1; Lcd1602_Delay1ms(5); LCD1602_E=0;}#elsevoidLcdWriteData(uchardat) //写入数据{ LCD1602_E=0; //使能清零 LCD1602_RS=1; //写入数据 LCD1602_RW=0; //写入数据 LCD1602_DATAPINS=dat; //写置端口处 Lcd1602_Delay1ms(1); LCD1602_E=1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E=0; LCD1602_DATAPINS=dat<<4;//写入低四位 Lcd1602_Delay1ms(1); LCD1602_E=1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E=0;}#endif由于LCD1602响应速度相对于单片机速度偏慢,所以需要写入一个初始化程序,可以执行一次让PWM的中断从0开始计数,此次显示模块初始化代码设计如下所示:#ifndef LCD1602_4PINSvoidLcdInit() //初始化子程序{ LcdWriteCom(0x38);//开显示 LcdWriteCom(0x0c);//开显示但不显示光标 LcdWriteCom(0x06);//加1指令 LcdWriteCom(0x01);//清屏 LcdWriteCom(0x80);//指针起点}#elsevoidLcdInit() //LCD初始化子程序{ LcdWriteCom(0x32); //将8位总线转为4位总线 LcdWriteCom(0x28); //初始化 LcdWriteCom(0x0c);//开显示但显示光标 LcdWriteCom(0x06);//指针加1 LcdWriteCom(0x01);//清屏 LcdWriteCom(0x80);//指针起点}#endif1.2传感器模块设计传感器模块选型为DHT11温湿传感器,该传感器内部通过一个电阻感湿元件和一个NTC测温测量温湿度,还内嵌一个独立的微处理器,此微处理器在工作中有接收发送数据的作用。DHT11传感模块内部元件抗干扰能力强,在工作电路中可以外接上拉电阻来延长传感器的使用寿命。外观如图3-2-1所示:图3-2-1DHT11温湿传感器DHT11温湿传感器相较于传统传感器具有更强的测量性能,例如温湿度信息集成测量,结构简单,数据传输超快响应、抗干扰能力强,传输距离长、性价比高等优点,同时其具有较强的抗静电、抗干扰等诸多保护结功能。在模块工作时,微处理器能运行校准系数并储存在内部,在发送数据前,微处理器会检测信号并运行校准对数据进行处理。传感器在接收到元件感知的环境温湿度后,微处理器会将数据发送至STC89C52RC单片机中,引脚如图3-2-2所示,单线制串行接口,4针单排引脚封装,使系统集成变得比较快捷。测温范围:20-90%RH,0-50℃,测试精度±5%RH,测温精度±2℃,能够满足大部分测温环境的温湿度测控范围。DHT11温湿传感器电路连接如图3-2-2所示:图3-2-2温湿传感器电路连接如图该传感器四个引脚分别为VDD,NC悬空空脚,GND,和DATA口。供电电压为1.3~5.5V,在电路连通时,检测到温湿度会远远超过实际值,是因为内部元件刚接通会存在误差值,此状态会持续一秒,期间需要使用延迟函数延迟读取温湿值。传感器正常工作的采样周期每次应大于2s。DATA引脚接口为数据传输口,单词通讯的时间为4ms,数据格式如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit数据整数数据+8bit湿度小数数据-(1)+8bit数据整数数据+8bit湿度小数数据-(2)+8bit校验和数据传送正确时校验和数据等于“(1)+(2)”所得结果的末8位。当传感器收到MCU发送的开始信号后,DHT11工作模式由节能转至工作模式,主机信号电平拉高并延时等待数据传输,等待信号结束,DHT11开始拉高电平进入准备输出阶段,MCU接收到数据进行分析,并记录一次成功采集。所以从工作过程可知,如果DHT11没有收到来自MCU的开始信号,传感器模块不会主动采集当前环境温湿度。通讯过程如图3-2-3所示:图3-2-3DHT11通讯过程完成硬件模块搭载之后利用keilc进行开发,DHT11传感器兼容C语言与开发环境,所以在程序功能、可读性与后期维护方面具有明显优势。在远程除湿器的功能上要求其主控代码如下:unsignedcharU8FLAG,k;unsignedcharU8count,U8temp;unsignedcharU8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;unsignedcharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;unsignedcharU8comdata;unsignedchardht11_temp=0;unsignedchardht11_humi=0;voidDelay(unsignedintj){ unsignedchari; for(;j>0;j--) { for(i=0;i<27;i++); }}voidDelay_10us(void){ unsignedchari; i--; i--; i--; i--; i--; i--;}voidCOM(void){ unsignedchari;for(i=0;i<8;i++) { U8FLAG=2; while((!DHT11)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(DHT11)U8temp=1; U8FLAG=2; while((DHT11)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0或1 //如果高电平高过预定0高电平值则数据为1 U8comdata<<=1; U8comdata|=U8temp;//0 }//rof }voidget_dht11(void){//主机拉低18msDHT11=0;Delay(180);DHT11=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();DHT11=1;if(!DHT11) //T! {U8FLAG=2;while((!DHT11)&&U8FLAG++);U8FLAG=2;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论