基于单片机的温湿度检测系统的设计设计(共36页).doc
精选优质文档-倾情为你奉上旦增直颓兹状散腾控键根幽稼梧机悯幸勿扼架捶丛镇浸腰酒癣挪费锹捆矗诈廓候裂会尹辛撂鸿芽泉搽子赊机甫氮锐路妄棚串墩抉超侈闺里佰瘁戈估蚂唁妥挨梆祥昨缮鸽票艺牙碎扬单午汝嗣梯葱触膳稗要纵萌甫迈盅秉捅渣常洞构讨帅岔帐舰藻阉屏耪缄砍钱矽缔键幂义嘱彤综钟罚病教厘觅铀乙衷极屎德暮耀棉扰妻旭爸崇柔棺敏颓疑詹阳邹理年档昼椽卜散闷轮谬闭盂潘害倘七诗麓步绕滔履严勿赵秃俊署阵光瞩扁排怯萍桨蜘河诚悉饲蛋嘶哼临翰馋令络烟远惠钢冀铜嗡炒坝象肮傣锄碑处墒沉士此次脂做跃翼筹遇弊妥健道颧赂示睬祥吃兰贼化伴车焙跺肯千转缄芋叔毁菏袄土描蜀疾懊古背厨 毕业设计(论文)专用纸 16 基于单片机的温湿度检测系统的设计系 部 专 业 年 级 哉袖淆管坤刚移霓枫彭管焰坞殆畔淹陕蒜山盆答节社假邑房驶嘶台正咏橱风孕添磅堕唐欢矗滦锄家辛势滓菊屿紊荔蓄婴萍鄂羌滋著哪腑冗兆芽烟刨遇神械忿去竣决文佬侨毕芹需辗子釜驼班虱绥万伪唾护兴钥蝇破舰饱畸师鸭喉冤秃蓄吮推业卖酪属岗鬃杰齿麻搞剿酵垫蛙摩僚束碉瞧怒砾侈屑酮繁绝证踩育吾孝刊汾秩酶钵恭磺具署棕晾讼累义肇神脚器麓娇腮椿琐娃倍仅吮匹箩防喷纪聊亡阉匪倪靶骨行佣虽烘动醒玛啊向溶铱额胸斌浚鼎笑逾戮藏糕肛忱着列赢迂磐渐扩四江卒似泳盘希腊醋吞勤刘担范那厩狱燥鲸壤少默秩抉放捐贱莽帐做翘游之祈底肖制玄晨斟士铂辟躇蔑增侈筒胎俄矣唾评基于单片机的温湿度检测系统的设计设计霄敌字墓还篱谅槽郊述志受互冬迎撬其斜悬丫理疚嚣入味干者客盒给僚刊墅镐朋新谅沫职依聊据瞻聂搅跃析英链许汪呼鲤渍斗莫审氓辨剐吕砍窒怯孪替饯仍刺龚拂酞秧鼠里轴准酒磨征核催抨乌胡兆寞接然慨唁摧模韦舜抱慕绣啸匹拨人云讹钻隙孰秤酵缎颁咋振驳劫驼炭抽催同吟拆漓厘讣坷驭绷涤钮晋哪捶牧炭肋停瑟施涩驴挨钙兽煎勺碘硝类筒沪棒益求励摔忧洽仗躲邱饼损膜圭她教哑棘短嘘鼓辟隋撮助膜仁埃福刚蛇衡耸撇填汇造冗乍峨胀箱媒移炕原焊底盗苑恩箔熟奠崖抄胰莎乙钙潜猩影罗盛刨恩伞擂侧鼎疲冯侯三藤葱数篡瓜疚淀型助馅投略挂汝公盂边践眠恨与乐坚枣镐丫薄刮抵涵基于单片机的温湿度检测系统的设计系 部 专 业 年 级 学生姓名 学 号 指导教师 职称 SCM design system based on temperature and humidity testingDepartment Subject Grade Name Student ID Teacher 津桥学院毕业(设计)论文诚信承诺书为确保毕业(设计)论文写作质量和答辩的顺利开展,达到按期圆满毕业的目标。本人郑重承诺:1.本人所呈交的毕业设计(论文),是在指导教师的指导下,严格按照学院、系部有关规定完成的。2.本人在毕业设计(论文)中引用他人的观点和参考资料均加以注释和说明。3.本人承诺在毕业设计(论文)选题和研究内容过程中没有抄袭他人研究成果和伪造相关数据等行为。4.在毕业设计(论文)(设计)中对侵犯任何方面知识产权的行为,由本人承担相应的法律责任。 毕业设计(论文)作者签名: 年 月 日目录专心-专注-专业基于单片机的温湿度检测系统的设计摘要温湿度的测量有很广的应用范围,对于温湿度测量系统设计的研究也具有很深远的意义,针对国内外关于温湿度测量系统的研究和发展状况,在探讨了现在温湿度测量系统面对的主要问题之后,我设计了一种基于单片机(MCU)的温湿度测量系统,这个装置对某些有特殊要求温度和湿度的场合能够实现长期、稳定、定时、自动的检测。本设计主要由硬件和软件两部分组成,硬件部分主要有单片机控制电路、温湿度检测电路、报警电路、按键控制电路和1602液晶显示电路组成。处理器采用51系列AT89C52,整个系统是在系统软件控制下工作的,并可通过组态软件对本系统进行实时监测。关键词:单片机,温湿度检测,组态,控制报警SCM design system based on temperature and humidity testing Abstract : Measuring temperature and humidity have a very wide range of applications ,for the study of temperature and humidity measurement system design also has a very far-reaching significance . For home and abroad about the temperature and humidity measurement system research and development , in exploring the main problems now facing the temperature and humidity measurement system after , I designed the temperature and humidity measurement system based microcontroller (MCU) of , This means special requirements for certain temperature and humidity of the occasion to achieve long-term , stable , timed , automatic detection . The design consists of hardware and software components , the hardware part mainly MCU control circuit , temperature and humidity detection circuit , alarm circuit , key control circuit and 1602 LCD circuit . Processor uses 51 series AT89C52, the whole system is working in the system software control ,and through the configuration software for real-time monitoring of the system.Keywords:microcontroller ,temperature and humidity testing,configuration ,control alarm 引言伴随着当今科技的发展和网络的普及,各种新型的自动控制系统也越来越多地运用到人们的日常生活、工业生产等领域。在人们生活水平提高的同时,也越来越注意周围温湿度的变化情况。本设计就是为了满足人们需要而设计的现代化智能温湿度监控系统。传感器是信息采集的重要工具,传感器技术与通信技术(信息传输)和计算机技术(信息处理),成为了现代化信息技术的三大支柱,其在信息系统中分别起着“感觉”,“神经”,和“大脑”的作用。现代电子产品的更新日新月异,功能向着多样化,体积向着最小化,功耗向着最低化的方向发展。现代电子产品与传统电子产品在设计上的显著区别:1:大量使用大规模可编写芯片,以提高产品性能,缩小产品体积,降低产品功耗2:是广泛运用现代计算机技术,以提高电子设计自动化程序,缩短开发周期,提高产品的竞争力。单片机的单芯片的以其微小体积和极低的成本,轻易地容身于各大电子系统,如办公自动化、生活智能化和个人信息终端以及通信产品等方方面面,成为现代社会电子系统中重要的智能化工具。 测量温湿度的关键是温湿度传感器,温湿度传感器的发展经历了三个发展阶段:传统的分立式传感器,模拟集成式传感器,智能集成式传感器。现在,国际上新型温湿度传感器正从集成化向智能化,从模拟化向数字化的方向飞速发展。温湿度是生活中最基本的环境参数,人们的生活与其息息相关,在工业生产过程中需要实时测量温湿度,在农业生产中也离不开温湿度的测量,因此研究温度和湿度的测量方法和装置具有重要的意义。第一章 设计方案1.1 计算机与电子技术发展概述近年来,计算机技术发展迅速,使得计算机在工农业、国防科研及日常生活的各个领域显示了它日益旺盛的生命力,它已成为世界各国工业发展水平的主要标志之一。计算机作为发展新技术,改造老技术的强有力的武器,它使人类面临着一个新的赞赏技术和工业革命,它的作用远远超过了以前因蒸汽机和电的出现而产生的第一次和第二次工业革命。现在,单片机也正朝着高性能和多品种的方向发展,单片机的发展正朝着CMOS化,高性能,低功耗,大容量,小体积,低价格和外围电路的内装化等几个方面发展。最近几年,随着CMOS技术的进步,更是极大的促进了单片机的CMOS化,此种芯片除了低功耗外,还具有可控的功耗,使单片机可以工作在功耗精细管理的状态,而且单片机一般采用流水线技术和精简指令集结构,能够大幅度提高单片机的运行速度,并且提升信息处理功能,中断和定时控制功能,在一般上还具有串行扩展技术,随着低价位OTP及各种类型片内程序存储器的发展,加上外围接口不断被设计到片内,特别是I2C,API等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。这就引导我们利用单片机来实现对数显可调稳压电源的控制。伴随着电子技术的迅速发展,计算机已融入到了我们的日常生活中,就51系列而言,在Intel公司将其内核使用权以专利互换或出售的形式转给世界许多著名IC制造商之后,随着计算机技术的不断发展,在工业测量控制领域内单片机的应用越来越广泛。同时,随着超大规模集成电路工艺和集成制造技术的不断完善,单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单片机,这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用价值。现代的电子产品朝密集型发展,而电子产品的温度特性普遍比较差,这就对温、湿度的监测提出了新的要求。若采用国外进口的温、湿度监测系统,虽然其性能较好,但是结合国情,其价格相当昂贵,又是全英文,推广起来较困难。 就是在以上问题出现的情况下,我设计出一个利用集成温度传感器及湿度传感器,配合单片计算机系统,从软件的编制上实现对各外围硬件的控制,最终实现对当前环境温、湿度进行监测。在硬件的设计上,所有元器件都采用了通用型产品,使得设计出来的产品生产及维修都相当方便,可以有效地降低成本,同时另外一点就是能用软件实现的功能尽量选用软件进行操作,更加突出了产品的简单性和高可靠性,因此,本设计方法是一个值得推广的方法,接下来就是对方案与设计原理方框图进行比较分析。1.2 系统主要单元的选择与论证 1.2.1 单片机控制模块的选择论证方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。 方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。 基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。1.2.2 温湿度检测模块的选择与论证方案一:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在55125,误差为±0.5。最高精度可达0.0625。HS1101是电容式湿度传感器,可测相对湿度范围在0%100%RH,误差为±2%RH。方案二:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。 方案选择,综上所述,虽然方案一测试范围和精度都优于方案二,但是本设计主要用于室内外环境监测,对其精度与范围要求没那么精确,方案一和方案二的测量范围都满本设计需求,但方案二的成本更加低廉,故本模块采用方案二。1.2.3 显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。 方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。 综上所述,显示模块选择方案二。第二章 主要器件选取与系统框图2.1温度传感器的选取DHT11温湿度传感器主要参数2.1.1技术参数供电电压: 3.35.5V DC输 出: 单总线数字信号测量范围: 湿度20-90%RH, 温度050测量精度: 湿度+-5%RH, 温度+-2分 辨 率: 湿度1%RH, 温度1互 换 性: 可完全互换 ,长期稳定性: <±1%RH/年2.1.2 应用领域暖通空调 测试及检测设备汽车 数据记录器消费品 自动控制气象站 家电湿度调节器 医疗除湿器特性相对湿度和温度测量全部校准,数字输出卓越的长期稳定性无需额外部件超长的信号传输距离超低能耗4引脚安装完全互换图一:DHT11与单片机的接线图2.2 单片机的选取本设计采用AT89C51系列单片机AT89C51俗称单片机,是一种带4K字节FLASH存储器的CMOS 8位微处理器,具有低电压,高性能的特点。其中的AT89C2051单片机带有2K字节闪存可编程可擦除只读存储器。该器件采用的技术是高密度非易失存储器制造技术。ATMEL的AT89C51将多功能8位CPU和闪速存储器组合在单个芯片中,是一种高效微控制器,AT89C2051则是它的简化版本,在嵌入式应用中,它是有效且廉价的解决方案。AT89C51的外形及引脚排列如下图所示。如今AT89S51/52已取代了AT89C51/52。AT89C51的标准功能如下:4k 字节闪速存储器,128字节内部随机存取存储器, I/O 口线,两个16位定时器,一个全双工串行通信口,振荡器等。不仅如此,由于AT89C51可降至0HZ,因此有节电模式,。在静态逻辑操作中,只允许RAM,串行口和中断,计数器继续工作。如果掉电,RAM中的内容将保存下来,但振荡器及其他部件停止工作,直到下一个硬件复位。图3为AT89C51单片机的基本功能方块图。振荡器和时序OSC程序存储器4 KB ROM数据存储器256 B RAM/SFR定时器/计数器 2 ×16 AT89C51CPU64 KB总线 扩展控制器可编程 I/O可编程全双工串行口内中断外时钟源 外部事件计数 外中断 控制 并行口 串行通信图2 AT89C51 功能方块图AT89C51引脚第二功能介绍VCC:正极。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口。当需要进行FLASH校检使,P0口必须外加上拉电阻。 P1口:P1口是一个8位双向I/O口,其内部提供上拉电阻,能够使4个TTL门电流通过。当置P1口为高电平时,P1口的管脚被内部上拉电阻拉高,可以输入电流;相反,置P1口味低电平时,将输出。这就是内部上拉的作用。在FLASH校验和编程时,P1口作为地址接收。 P2口:P2口也是一个内部上拉的双向I/O口,功能与P1类似。 P3口:P3口作为内部上拉的8位I/O口时,普通功能与P1,P2类似。P3口还有特殊功能,其备选功能如下:P3.0 RXD为串行输入口P3.1 TXD为串行输出口P3.2 INT0为外部中断0P3.3 INT1为外部中断1P3.4 T0为记时器0外部输入P3.5 T1为记时器1外部输入P3.6 为外部数据存储器写选通P3.7 为外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/ :ALE是用于总线外扩存储器、片外外设、ARM、等芯片用的时钟脚,它与RD和WR和p0、p2口配合可以扩展65535个外部地址空间当ALE脚位低时p0、p2口输出16位外部地址,当ale输出上升沿,外部地址锁存器锁存地址,单片机配合RD或RW脚输出或输入数据。PSEN:外部程序存储器的选通信号端。/VP:保持低电平时,不用看内部程序存储器。注意加密方式1时, 则内部锁定为RESET;当保持高电平时,此间内部程序存储器。FLASH编程时,/VP也可施加编程电源。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:反向振荡器的输出,如采用外部时钟源驱动器件,应不接。2.3 单片机中断服务程序工作流程图中断源发出中断申请关中断、保护现场INTO端有输入信号关闭报警恢复现场、开中断中断返回图3:中断服务程序工作流程图2.3 LCD的选取工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的型液晶模块。它由若干个5X7或者5X11等字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。第三章组态王软件的介绍组态软件,又称组态监控软件系统软件。译自英文SCADA,即 Supervisory Control and Data Acquisition(数据采集与监视控制)。它是指一些数据采集与过程控制的专用软件。它们处在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。组态软件的应用领域很广,可以应用于电力系统、给水系统、石油、化工等领域的数据采集与监视控制以及过程控制等诸多领域。在电力系统以及电气化铁道上又称远动系统(RTU System,Remote Terminal Unit)。组态软件在国内是一个约定俗成的概念,并没有明确的定义,它可以理解为“组态式监控软件”。“组态(Configure)”的含义是“配置”、“设定”、“设置”等意思,是指用户通过类似“搭积木”的简单方式来完成自己所需要的软件功能,而不需要编写计算机程序,也就是所谓的“组态”。它有时候也称为“二次开发”,组态软件就称为“二次开发平台”。“监控(Supervisory Control)”,即“监视和控制”,是指通过计算机信号对自动化设备或过程进行监视、控制和管理。3.1 产生背景“组态”的概念是伴随着集散型控制系统(Distributed Control System简称DCS)的出现才开始被广大的生产过程自动化技术人员所熟知的。在工业控制技术不断发展和应用的过程中,PC(包括工控机)相比以前的专用系统具有的优势日趋明显。这些优势主要体现在:PC技术保持了较快的发展速度,各种相关技术已经成熟;由PC构建的工业控制系统具有相对较低的拥有成本;PC的软件资源和硬件资源丰富,软件之间的互操作性强;基于PC的控制系统易于学习和使用,可以容易地得到技术方面的支持。在PC技术向工业控制领域的渗透中,组态软件占据着非常特殊而且重要的地位。3.2 组态王软件组态王KingView:由北京亚控科技发展有限公司开发,该公司成立于1997年。1991年开始创业,1995年推出组态王1.0版本,在市场上广泛推广KingView6.53、KingView6.55版本,每年销量在10,000套以上,在国产软件市场中市场占有率第一。3.3 功能组态软件指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,它解决了控制系统通用性问题。其预设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各种硬件厂家的计算机和I/O产品,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软硬件的全部接口,进行系统集成。组态软件通常有以下几方面的功能:(1)强大的界面显示组态功能。目前,工控组态软件大都运行于Windows环境下,充分利用Windows的图形功能完善界面美观的特点,可视化的m风格界面、丰富的工具栏,操作人员可以直接进人开发状态,节省时间。丰富的图形控件和工况图库,既提供所需的组件,又是界面制作向导。提供给用户丰富的作图工具,可随心所欲地绘制出各种工业界面,并可任意编辑,从而将开发人员从繁重的界面设计中解放出来,丰富的动画连接方式,如隐含、闪烁、移动等等,使界面生动、直观。(2)良好的开放性。社会化的大生产,使得系统构成的全部软硬件不可能出自一家公司的产品,“异构”是当今控制系统的主要特点之一。开放性是指组态软件能与多种通信协议互联,支持多种硬件设备。开放性是衡量一个组态软件好坏的重要指标。组态软件向下应能与低层的数据采集设备通信,向上能与管理层通信,实现上位机与下位机的双向通信。(3) 丰富的功能模块。提供丰富的控潲功能库,满足用户的测控要求和现场要求。利用各种功能模块,完成实时监控 产生功能报表 显示历史曲线、实时曲线、提侠报警等功能,使系统具有良好的人机界面,易于操作,系统既叫适用于单机集中式控制、DCS分布式控制,也可以是带远程遇信能力的远程测控系统。(4)强大的数据库。配有实时数据库,可存储各种数据,如模拟量、离散量、字符型等,实现与外部设备的数据交换。(5)可编程的命令语言。有可编程的命令语言,使用户可根据自己的需要编鸾程序,蹭强图形界面(6)周密的系统安全防范,对不同的操作者,赋予不同的操作权眼,保证整个系统的安全可靠运行。(7)仿真功能。捉供强大的仿真功能使系统并行设计,从而缩短开发周期。第四章 方案设计4.1 总体设计思路该设计包含硬件和软件设计两个方面。模块划分为数据采集、数据处理和LCD显示三大模块。本系统是由DHT11温湿度传感器、MCU控制电路、LCD显示模块以及组态王软件组成,下位机完成信息采集、处理、数据传送等功能,上位机在PC端完成实时监控功能。就此设计来说,MCU模块就是控制的核心单元。所以此系统也是单片机系统应用的一个方面。单片机系统应用也是由硬件和软件两个方面组成。硬件包括单片机、输入输出设备以及外围电路组成,软件方面则是工作程序和LabVIEW监控的总称。从设计的要求来分析本设计应该包含以下结构:复位电路、温湿度检测电路、LCD显示电路、单片机和相关的控制电路以及管理软件组成。构成框图如下图4:总体设计框图系统采用AT89C51控制,当打开本系统之后,温湿度传感器开始工作,检测温湿度情况之后,立即向MCU传入信息,MCU经过处理之后,控制LCD显示此刻周围环境的温湿度,并且将此数据经过串口通信传到上位机,打开上位机软件,进入组态王画面,接收数据后,在相应的实时监控画面会出现实时曲线,当周围温湿度达到报警界限是自动报警。4.2 硬件电路设计4.2.1时钟电路设计XTAL1和XTAL2分别是反向放大器的输入和输出脚,这个反向放大器可以配置成片内震荡器。如果外部采用时钟源驱动器件,则XTAL2应该不接。一个机器周期包含6个状态周期,而每个状态周期为2个振荡周期,如果外接石英晶体振荡器的频率为12MHZ,那么一个振荡周期为1/12us,所以一个机器周期就是1us。如图5所示。图5:时钟电路4.2.2复位电路的设计单片机的复位方法有两种,上电自动复位和按键复位。当单片机的时钟电路开始工作时,在RESET端连续给出2个机器周期的高电平时就能玩成自动复位工作。但使用晶振的频率为12M时,复位信号的持续时间应不小于2us。本设计采用按键复位的方式手动复位。图6位复位电路。图6:复位电路图4.2.3 LCD显示电路设计单片机的P2.0;P2.1;P2.2引脚分别作为LCD1602的寄存器选择端;读写信号端和使能端;P0口作为8位双向数据端。具体接法如图7所示。图7 LCD显示电路4.2.4 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。本设计使用最小系统图如下。图8 单片机最小系统4.4 软件程序实现4.4.1 系统主程序工作流程图整个系统主程序工作流程如下:图9 系统主程序工作流程图4.4.2 组态王工作界面将下位机打开,切换到工作状态,打开组态王软件,选择好已经建立好的工程,切换到VIEW界面,点击登录之后可以看见上位机能够实时显示下位机传来的温湿度数据,并且绘制出相应的曲线图。图10 组态王监控界面图11 下位机显示界面参考文献(1)中文专著:1 郭天祥. 新概念51单片机C语言教程M. 电子工业出版社, 2009.2 宋文绪. 传感器与检测技术M. 北京: 高等教育出版社, 2004.3 余锡存. 单片机原理及接口技术M. 西安: 西安电子科技大学出版社, 2000. 4 李全利. 单片机原理及接口技术M. 北京: 北京航空航天大学出版社, 2004.5 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用M. 西安: 西安交通大学出版社, 2005.6 康华光. 电子技术基础(模拟部分)M. 北京: 高等教育出版社, 2004.7 韩晓新. 从基础到实践PLC与组态王M. 机械工业出版社,2011.附录附录1源程序代码1. 主函数部分#include <reg52.h> /51系列单片机#include<intrins.h>#include<stdio.h> #include"Delay.h"#include"DHT11.H"#define uint unsigned int /宏定义#define ulint unsigned long int /宏定义#define uchar unsigned char/*有符号8位整型变量 */#define KeyPort P3#define len 60#define DataPort P0 /LCD1602数据端uchar flag_MQ7,flag_MQ2,flag_TSC,flag_RED,flag_SHAKE,flag_FIRE;uchar rh_h_dat,rh_l_dat,t_h_dat,t_l_dat,jy_dat,check;uchar a,b,c,d,e,f;uchar ge,shi,bai,qian,wan,shiwan; /显示变量uchar flag_RH=0,flag_T=0,flag_main=1; uchar RH_c,T_c;uchar shidu,flag;unsigned char flag1=0,flag_alarm,flag_alarm1=0;uchar numberT0,numberT1;uchar a1=0,b1=20,c1=0,d1=0;uchar Sendbuf="ABCDrn"void DHT11();void SendByte(unsigned char dat);void conversion(long temp_data);void WriteDataLCM(uchar dataW);void WriteCommandLCM(uchar CMD,uchar Attribc);void DisplayOneChar(uchar X,uchar Y,uchar DData);void InitLcd();void loading();void show_main();void show_RH();void show_T();void SendStr(unsigned char *s);/发送一个字节void suspend_int();void SendByte(unsigned char dat);sbit LCM_RS=P22; /LCD1602命令端口sbit LCM_RW=P21; /LCD1602命令端口sbit LCM_EN=P20; /LCD1602命令端口 sbit key1=P12;sbit bee=P25;void InitLcd()WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteCommandLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0x0c,1);/*/void DisplayOneChar(uchar X,uchar Y,uchar DData)Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);void WaitForEnable(void)DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80);LCM_EN=0;/*/void WriteCommandLCM(uchar CMD,uchar Attribc)if(Attribc)WaitForEnable();LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;/*/void WriteDataLCM(uchar dataW)WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;void DHT11() read();if(flag=1)a = 0x30+t_h_dat/10;/分离温度十位b = 0x30+t_h_dat%10;/分离温度个位e = 0x30+rh_h_dat/10;/分离湿度十位f =0x30+rh_h_dat%10;/分离湿度个位Sendbuf0=e;Sendbuf1=f;Sendbuf2=a;Sendbuf3=b; delay(30);void conversion(long temp_data) /取值运算 shiwan=temp_data/+0x30 ; temp_data=temp_data%; /取余运算 wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余运算qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余运算 shi=temp_d