版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#3VL液晶显示偏压4RS数据/命令选择5R/W读/写选择6E使能信号7〜13D0〜D6数据1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表编号符号引脚说明14D7数据15BLA背光源正极16BLK背光源负极1602液晶模块的读写操作,屏幕和光标的操作都是通指令编程来实现的。LCD16023£亘13141516GNDVOLCD16023£亘13141516GNDVO圧RjWED0”D1D2D3D4D5DdD7VCQGND图2.9LCD1602的管脚图其中实物图如图2.10所示图2.101602字符型液晶显示器实物图LCD1602主要有两种,主要区别在于是否背光,它的控制器主要为HD44780,带背光的比不带背光的厚,在应用中是否带背光并不影响使用,两者尺寸差别如下图2.11所示:Ztl.O>匂却吕OT--rT"LZtl.O>匂却吕OT--rT"L<厂—A.en.i口m*址图2.111602LCD尺寸图1602LCD的RAM地址映射及标准字库表液晶显示模块是一个比较慢的显示器件,因此在执行指令之前要首先确认模块的忙标志处于低电平,表示空闲,不然此指令失效,输入显示字符地址后会显示字符,图2.12是1602的内部显示地址。LCD
1G字X2行00~Ql\~02~0304□fi080?0AOBDC0D3eTo274?424344454647484S4a'4B4C4D4E4F50I■■67图2.121602LCD内部显示地址第三章系统硬件设计方案单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能,硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起,这种设计方法可以降低系统设计的复杂性,本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路,LCD显示电路以及温湿度传感器电路[11]。3.1主控制电路和测温时控制电路本次硬件的核心就是AT89S52,其他的外围电路都是围绕它所设计的。数字温湿度传感器的DHT11的DATA口连接单片机AT89S52的P3.0口。显示电路就是把LCD1602和单片机的P0口分别相连,当温度或湿度高于预设值的时候蜂鸣器蜂鸣报警,增加单片机的输出能力,增加单片机的输出电流,故使用电阻排来完成。本系统采用的是上电复位,充电之后,RST被拉至高电平,单片机进入工作状态。AT89S52中有一个用于构成内部正当其的放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器构成自激振荡器,他们与电容C1,C2接在放大器的反馈电路中构成并联震荡电路,虽然电容没有一个严格的要求,但是电容的大小会轻微影响振荡频率的高低、温度稳定性以及振荡器工作的稳定性。具体的原理图如图3.1:图3.1系统电路原理图3.2主要模块的电路3.2.1蜂鸣器电路微型计算机控制系统中,为了安全起见,对于一些重要的参数或系统,都设定有紧急状态报警系统,以便于提醒操作人员注意,或者采取紧急措施,本设计采用把计算机采集的数据进行数据处理、标度变换、数字滤波之后,与该参数上下限与给定值进行比较,如果高于上限值则进行报警,否则就作为采样的正常值,进行显示。本设计采用峰鸣音报警电路。如图3.2所示。蜂鸣器额定电流W30Ma,而对于AT89S52单片机,P3口的灌电流为15mA,由此可见,仅靠单片机的P3口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫。P2.LI.W12115122卩2.3/A1UP2.9/A11P2.4/A12P2.5/A19P2.6/A14P27/A1529SPEAKER24IL'K汀曰T:>35]IL262728P3';0/RXDP3.1/D{D出'皿顽再:诉帀101112□71/19r—■-1141|寸P3.4/WP3.5.-T1P3.6/WEP3.7/RD…ifilr'■-鮎^T_EVT18173J10k图3.2.1蜂鸣器电路3・2・2晶振电路单片机系统都有晶振,在单片机系统中晶振的作用非常大,全称叫做晶体振荡器,它结合单片机内部电路产生所需时钟频率,单片机晶振提供的时钟频率越高,那么单片机的运行速度就会越快,单片机的一切指令执行都是建立在单片机晶振所提供的时钟频率。在通常的工作条件下,普通的晶振频率的绝对精度可以达到百万分之五十,咼级晶振精度更咼,有些晶振还可以由外加的电压在一定范围内调整频率,称为压榨振荡器,在共振的状态下晶振用一种能把电能和机械能相互转化的晶体工作,以提供稳定,精确的单频振荡。单片机晶振的作用是为系统提供及本周的时钟信号,通常一个系统共用一个晶振,以便于各部分保持同步,有些通讯系统的基频和射频使用不同的晶振,而是通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率,可以用于同一个晶振项链的不同锁相环来提供的。单片机AT89S51的晶振电路采用无源晶振,微调电容取22uf。图3.3即为蜂鸣器电路。图3.3晶振电路
3.2.3显示电路在日常生活中,我们对液晶显示器并不陌生,它已作为很多电子产品的通过器件,比方在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。显示模块选用1602字符型液晶模块,它是目前工控系统中使用最广泛的液晶屏之一,由于它显示的质量高,电路图如图3.4所示,1602字符型液晶模块是点阵型液晶,驱动方便,经过编程后显示内容多样化。3.2.4传感器电路DHT11是数字型温湿度传感器,可直接以数字方式传输所采集的当前环境温湿度,DHT11采用的是单总线通信,因此只需将单片机的一个I/O端口与DHT11的通信接口连接就可以实现数据的采集和传送,相对于其他电路来说比较简单。如图3.4所示:图3.5传感器电路3.2.5复位电路本次设计采用的是上电复位,而51单片机采用的都是高电平复位,当RST引脚上出现了两个周期以上的高电平就会触发内部复位,这里的EA端与复位电路无关,由于数据都放在了内部存储器,所以连接EA只是直接拉高引脚,如图3.6所示:如图3.6复位电路第四章系统软件设计方案结论4.1系统流程图,如下图所示;第三节本章小结本章节主要介绍了硬件设计的总思路及其各部分电路的主要设计方法,并且详细的给出了各个模块(蜂鸣器,晶振电路,显示电路,传感器电路,复位电路)的电路设计。第四章系统软件设计方案结论软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。
4.1.1按键检测过程中,流程如下图所示:4.2编程思想本次设计主要是能够实时显示出当前确切的温湿度,并且在高于预设值的时候能够发出蜂鸣。一旦接通电源,蜂鸣器首先蜂鸣,接着LCD初始化,采用八位的数据端口,两行显示,5*7的点阵,其中第一行显示的湿度预设值,根据键盘我们可以加减数值,第二行显示的是实时的温湿度值,在程序设计中,分别定义温湿度参数,根据数据转换过来的数值,判断是否超过了预设值,本次设计温度初试值设定为32°C,湿度初始设定为34%,等待传送的数值连续20次都超过预设值的话,蜂鸣器便会蜂鸣警报,1602显示当前的温湿度值,再次循环判断,如果没有超过预设值,蜂鸣器不会蜂鸣,1602正常显示,也同样再次循环。4.3源程序#include<AT89X52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#include"1602.h"#include<dh11.h>uchartemp[]="RH_SET:00%\0";//设置的湿度值显示uchartemp_s[]="RH:00%TEMP:00\0";//实时湿度显示sbitsw3二P「5;//按键定义sbitswl二P「3;sbitsw2二P「4;sbitbaojing二P3"3;//sbitled二P3“5;ucharset;//变量定义ucharnum1;uchargetdata=55;uintshangxian=34;uchartemp_h,temp_t;voidconv();yunxing();voidkey();voidkongzhi();voidzhuanhuan()//扫描数据转换{temp[7]=shangxian/10%10+0x30;temp[8]=shangxian%10+0x30;temp_s[3]=temp_h/10%10+0x30;temp_s[4]=temp_h%10+0x30;temp_s[3]=temp_h/10%10+0x30;temp_s[4]=temp_h%10+0x30;temp_s[12]=temp_t/10%10+0x30;temp_s[13]=temp_t%10+0x30;temp_s[14]=0xdf;temp_s[15]='C';}//main(){baojing=0;delay(500);baojing=1;
//led=0;LCD_Initial();//液晶初始化while(1){RH();temp_t=U8T_data_H;temp_h=U8RH_data_H;zhuanhuan();key();//按键检测kongzhi();第二行//显示第一行第二行显示第二行GotoXY(0,0);//显示起始位置Y=0,第一行,第二行//显示第一行第二行显示第二行Print(temp);//内容GotoXY(0,1);//显示起始位置Y=0,第一行,Print(temp_s);//内容delay(1);//getdate=GetADCResult(0)*3.9;}}voidkey()//按键检测程序{if(set==l)//上限设置
if(sw1==0)//上限减功能{if(sw1==0)delay(50);if(sw1==0){//while(sw1==0);if(shangxian>0)shangxian--;else(shangxian=255);}}if(sw2==0)//上限加功能{delay(50);if(sw2==0){//while(sw2==0);if(shangxian<255)shangxian++;else(shangxian=0);}voidkongzhi()//控制报警{if((temp_h>=shangxian)|(temp_t>32))//此处设定预设温度{//led=1;num1++;if(num1>=20){num1=0;baojing=~baojing;}}else{baojing=1;}}DHT11传感器接受和发送信息,然后将接收来的信息作出相应的判断和处理,然后反馈到显示器。#include<at89x52.h>#include<intrins.h>//aemtypedefunsignedcharU8;/*definedforunsigned8-bitsintegervariable无符号8位整型变量*/typedefunsignedcharU8;typedefsignedcharS8;/*definedforsigned8-bitsintegervariable有符号8位整型变量*/typedefunsignedintU16;/*definedforunsigned16-bitsintegervariable无符号16位整型变量*/typedefsignedintS16;/*definedforsigned16-bitsintegervariable有符号16位整型变量*/typedefunsignedlongU32;/*definedforunsigned32-bitsintegervariable无符号32位整型变量*/typedefsignedlongS32;/*definedforsigned32-bitsintegervariable有符号32位整型变量*/typedeffloatF32;/*singleprecisionfloatingpointvariable(32bits)单精度浮点数(32位长度)*/typedefdoubleF64;/*doubleprecisionfloatingpointvariable(64bits)双精度浮点数(64位长度)*///#defineucharunsignedchar#defineuintunsignedint#defineData_0_time4//相当于用Data_O_time代替4.IO口定义区sbitDQ=P3飞//定义区//////U8U8FLAG,k;U8U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8U8comdata;U8outdata[5];//定义发送的字节数U8indata[5];U8count,count_r=0;U16U16temp1,U16temp2;//以上为变量的定义.voidCOM(void);voidDelay2(U16j)//延时函数U8i;for(;j>0;j--)for(i=0;i<27;i++);}}voidDelay_10us(void)//延时10us的延时函数.{U8i;i--;i--;i--;i--;i--;i--;}voidCOM(void){U8i;for(i=0;i<8;i++){U8FLAG=2;while((!DQ)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(DQ)U8temp=1;U8FLAG=2;while((DQ)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1//如果高电平高过预定0高电平值则数据位为1U8comdata<<=1;//左移1位U8comdata|二U8temp;//U8comdata与U8temp相或,结果保存在U8comdata中.}}////湿度读取子程序////以下变量均为全局变量//温度高8位==U8T_data_H//温度低8位==U8T_data_L//湿度高8位==U8RH_data_H//湿度低8位==U8RH_data_L//校验8位==U8checkdata//调用相关子程序如下//Delay();,Delay_10us();,COM();//voidRH(void){//主机拉低18msDQ=0;Delay2(180);DQ=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入判断从机响应信号DQ=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!DQ)//T!{U8FLAG=2;//判断从机是否发出80us的低电平响应信号是否结束while((!DQ)&&U8FLAG++);U8FLAG=2;//判断从机是否发出80us的高电平,如发出则进入数据接收状态while((DQ)&&U8FLAG++);//数据接收状态COM();//调用COM函数U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;DQ=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}//对数据作出相应的处理与运算.}}2、LCD16021602将接受来的信息进过字符转换,反馈到了液晶屏上面,同时我们可以根据需要加减所学要的预设湿度值。#include<at89x52.h>#include<intrins.h>#defineuintunsignedintdefineucharunsignedcharvoiddelay(uintz)//延时函数
uinta,b;for(a=z;a>0;a--)for(b=120;b>0;b--);}LcdRs=P「0;LcdRw=PLcdRs=P「0;LcdRw=P「l;LcdEn=P「2;DBPort=0x80;sbitsbitsbitsfr//端口定义,LcdRs就代表P「0口,以下同.//P0=0x80,Pl=0x90,P2=0xA0,P3=0xB0.//P0=0x80,Pl=0x90,P2=0xA0,P3=0xB0.数据端口unsignedcharLCD_Wait(void)//unsignedcharLCD_Wait(void)//内部等待函数,LCD的显示需要一定的延迟时间.LcdRs=0;时间.LcdRs=0;LcdRw=1;_nop_();LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=1;_nop_();LcdEn=0;returnDBPort;//向LcdEn=0;returnDBPort;//向LCD写入命令或数据#defineLCD_COMMAND0//Command#defineLCD_COMMAND0//Command#defineLCD_DATA1//Data#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回原点//以上4行为宏定义,以后出现LCD_HOMING的地方就可以用0x02来代替.voidLCD_Write(bitstyle,unsignedcharinput)//LCD写入子函数,形参为数据类型和无符号字符型输入.{LcdEn=0;LcdRs=style;//数据类型传递给LcdRSLcdRw=0;_nop_();DBPort二input;_nop_();//与入的数据传递给DBPortLcdEn=1;_nop_();//注意顺序LcdEn=0;_nop_();LCD_Wait();//调用内部等待函数.}//设置显示模式************************************************************#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//光标闪动#defineLCD_NO_FLASH0x00//光标不闪动
voidLCD_SetDisplay(unsignedcharDisplayMode)//LCD显示设置子函数{LCD_Write(LCD_COMMAND,0x08|DisplayMode);}//设置输入模式************************************************************#defineLCD_AC_UP#defineLCD_AC_DOWN#defineLCD_AC_UP#defineLCD_AC_DOWN#defineLCD_MOVE#defineLCD_NO_MOVE0x00//default0x01//画面可平移0x00//defaultvoidLCD_SetInput(unsignedcharInputMode){LCD_Write(LCD_COMMAND,0x04|InputMode);}//初始化LCD***********************************************************voidLCD_Initial()//初始化函数.{LcdEn=0;LCD_Write(LCD_COMMAND,0x38);//8位数据端口,2行显示,5*7点阵delay(5);LCD_Write(LCD_COMMAND,0x38);delay(5);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);//开启显示,无光标delay(5);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);//清屏delay(5);LCD_Setlnput(LCD_AC_UP|LCD_NO_MOVE);//AC递增,画面不动delay(5);}//液晶字符输入的位置************************voidGotoXY(unsignedcharx,unsignedchary){if(y==0)LCD_Write(LCD_COMMAND,0x80|x);if(y==1)LCD_Write(LCD_COMMAND,0x80|(x-0x40));}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江宁波市交通建设工程试验检测中心有限公司招聘2人笔试参考题库附带答案详解
- 2025江苏徐州物资市场有限公司岗位急聘8人笔试参考题库附带答案详解
- 浙江国企招聘2025宁波报业传媒集团有限公司招聘5人笔试历年常考点试题专练附带答案详解
- 韶关市2025广东韶关市乳源瑶族自治县教师发展中心选聘教研员7人笔试历年参考题库典型考点附带答案详解
- 赤峰市2025内蒙古赤峰市元宝山区事业单位“绿色通道”引进高层次人才14人笔试历年参考题库典型考点附带答案详解
- 福州市2025福建福州市动物园管理处招聘编外人员招聘2人笔试历年参考题库典型考点附带答案详解
- 涪陵区2025重庆涪陵引才专项活动招聘196人笔试历年参考题库典型考点附带答案详解
- 松原市2025吉林松原石油化学工业循环经济园区管理委员会招聘事业单位人员含专项笔试历年参考题库典型考点附带答案详解
- 广西壮族自治区2025广西壮族自治区外事办公室直属单位招聘实名编制工作人员4人笔试历年参考题库典型考点附带答案详解
- 定海区2025年浙江舟山市定海区环境卫生管理中心编外招聘2人笔试历年参考题库典型考点附带答案详解
- 购货合同模板写
- DL-T596-2021电力设备预防性试验规程
- NB-T11092-2023水电工程深埋隧洞技术规范
- 专题1.5 整式的乘除章末拔尖卷(北师大版)(解析版)
- 钢结构吊装专项施工方案(钢结构厂房)
- 天津市各地区2022年中考化学一模试题汇编-实验题
- HGT4134-2022 工业聚乙二醇PEG
- 国开2023秋《人文英语3》第5-8单元作文练习参考答案
- 煤矿班组长培训课件
- 《唐诗三百首》导读课(二稿)
- 昆明天大矿业有限公司寻甸县金源磷矿老厂箐-小凹子矿段(拟设)采矿权出让收益评估报告
评论
0/150
提交评论