基于单片机的温度测控系统设计_第1页
基于单片机的温度测控系统设计_第2页
基于单片机的温度测控系统设计_第3页
基于单片机的温度测控系统设计_第4页
基于单片机的温度测控系统设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGEIII基于单片机的温度测控系统设计摘要日常的生活中充满了温度的存在。比如煮饭、热菜、空调、冰箱等,都是常见的利用到温度地方。而有的行业里也用到了,比如温度的报警装置,变温箱,融化金属的电阻炉。他们采用了单片机技术,使得设备的控制与操作非常的方便,单片机的结构同时也很简单,修改和维护都很方便而且有一定的智能性。在当今现代,单片机应用非常广泛。本次设计是一个可从手机端操控的测控温度系统。同时为这次毕设也做了详细明确的方案,也阐述了系统的软件和硬件部分。总体设计内容包含了:总体的框架、各元器件的介绍、硬件和软件的设计介绍。这里介绍的温度测控系统,就是基于STC89C52,并且利用DS18B20温度传感器测温后在显示屏上显示,同时还可以调控阈值使得高于最高或者低于最低的时候可以自动降温和升温。并且在手机上使用app连接wifi后,可以使用app直接显示控制温度。这次的设计很有灵活性,所以在许多的地方都可以用到比如水温(养殖业)、花房之类需要较为严格控制温度的地方。应用的前景还是很可期的。关键词:温度测控系统;STC89C52;DS18B20;显示屏AbstractDailylifeisfulloftemperature.Forexample,cooking,hotdishes,airconditioning,refrigerators,etc.,arecommonlyusedtotemperatureplaces.Andsomeindustriesalsoused,suchastemperaturealarmdevice,temperaturechangebox,meltingmetalresistancefurnace.Theyusethetechnologyofsingle-chipmicrocomputer,whichmakesthecontrolandoperationoftheequipmentveryconvenient.Thestructureofsingle-chipmicrocomputerisalsoverysimple,themodificationandmaintenanceareveryconvenientandhavecertainintelligence.Nowadays,single-chipmicrocomputeriswidelyused.Thisdesignisatemperaturemeasurementandcontrolsystemwhichcanbecontrolledfromthemobileterminal.Atthesametime,italsomadeadetailedandclearplanforthisdesign,andalsodescribedthesoftwareandhardwarepartofthesystem.Theoveralldesignincludes:theoverallframework,theintroductionofcomponents,hardwareandsoftwaredesign.ThetemperaturemeasurementandcontrolsystemintroducedhereisbasedonSTC89C52,andusesDS18B20temperaturesensortomeasurethetemperatureanddisplayitonthedigitaltube.Atthesametime,itcanalsoadjustthethresholdvaluesothatwhenitishigherthanthehighestorlowerthanthelowest,itcanautomaticallycooldownandheatup.AfterusingapptoconnectWiFionmobilephone,youcanuseapptodisplayandcontroltemperaturedirectly.Thisdesignisveryflexible,soitcanbeusedinmanyplaces,suchaswatertemperature(aquaculture),flowerhouseandotherplacesthatneedmorestricttemperaturecontrol.Theprospectofapplicationisverypromising.Keywords:TemperaturecontrolsystemSTC89C52DS18B20Display目录21649摘要 I3692Abstract II12638第1章绪论 160731.1课题的背景和意义 138451.2温度测控技术的发展现状 110684第2章系统总体方案设计 363242.1系统的基本结构 329792.2系统工作过程 4152952.3单片机的选取 4305592.4温度传感器的选取 5278012.5显示屏的选取 6124952.6继电器的选取 7255852.7WIFI通信模块的选取 818672第3章系统硬件设计 9260363.1主控单元 959733.2温度采集及显示电路 10269073.3温度控制电路 1111473.4按键电路 12292333.5WiFi通信电路 1221440第4章系统软件设计 14124004.1主程序设计 14209904.2温度测量程序设计 15213514.3液晶显示子程序设计 16138544.4按键控制子程序设计 17198574.5控制程序设计 18110384.6WiFi通信程序设计 1916056第5章系统测试 22305525.1测试内容 22191005.2测试方法 2248895.3测试过程 2214655.4测试结果 2620672结论 2712645致谢 282812参考文献 3012777附录1原理图 3114851附录2程序 32CONTENTSAbstract(Chinese) IAbstract(English) IIChapter1Introduction 11.1Backgroundandsignificanceoftheproject 11.2Developmentstatusoftemperaturemeasurementandcontroltechnology 1Chapter2Overallschemedesignofthesystem 32.1Basicstructureofthesystem 32.2Systemworkingprocess 42.3Selectionofsinglechip 42.4Selectionoftemperaturesensor 52.5Selectionofdisplay 62.6Selectionofrelay 72.7SelectionofWiFicommunicationmodule 8Chapter3Systemhardwaredesign 93.1Maincontrolunit 93.2Temperatureacquisitionanddisplaycircuit 103.3Temperaturecontrolcircuit 113.4Keycircuit 123.5WiFicommunicationcircuit 13Chapter4Systemsoftwaredesign 144.1Mainprogramdesign 144.2Temperaturemeasurementprogramdesign 154.3LCDsubprogramdesign 164.4Keycontrolsubprogramdesign 174.5Controlprogramdesign 184.6WiFicommunicationprogramdesign 19Chapter5Systemtest 225.1Testcontent 225.2Testmethodst 225.3Testprocess 225.4Testresults 26Conclusion 27Acknowledgement 28References 30Appendix1Schematic 31Appendix2Program 32绪论课题的背景和意义温度是一个常见的一个物理量,并且也作为一项非常重要的数据提供给人类。而随着科技的飞速发展,人类也对温度的测量控制的要求越来越高。其中利用单片机来测控是当前比较新型的方式,所以本文就从单片机的测控技术着手,将内容向数字化控制和智能化控制方向探讨。温度这一物理量也是工业中很重要的参数,特别是在温度要求很严格的一些地方,数字温度计可靠且精度较高的优点被人类广泛的使用着。本课题的意义在于随着现代技术的飞速发展,人们的行业与研究已经不在只局限于测温时对于温度的精确程度和实时性。对于采集效率和技术手段的要求也开始越来越严格,但是测温并不是所有的环境都可以确保人的安全性,在测温的环境非常恶劣时,能够自动测温且可以远程传输数据就变的十分的必要。并且为了安装、操作以及维护的方便,这种设备一定要可以自动的稳定的工作才可以。因此在温度测量领域,涉及到危险性的环境下的温度采集系统的设计有着非常重要的意义。温度测控技术的发展现状温度一直都是人类工作、生活和工程研究中经常遇到的一个物理量。无论是大气温度、全球气候还是疫情期间每天都要测量的体温,亦或者是冰箱、空调等家用电器都需要用到温度的测控。所以温度的测量与控制技术发展的很快。其中在工业生产中,温度测控技术得到了广泛的应用,在国防、军事、工农业生产、科研以及日常生活等领域占有重要的地位,能否成功地将温度控制在所需要的范围内,关系到整个系统的成败[1]。但是人们需要测量控制的环境不同,有的非常复杂和危险,所以现在温度测控的技术也越来越丰富。在当今现代,全世界都在为了获得更多能源而努力着,所以实现温度的测控技术的智能化也变得非常的重要。目前计算机技术的飞速发展,传感器的精度水平也变得更加精确,使用的地方也越来越多种多样,温度传感器方面,美国一公司生产的一个可以进行单线性的温度传感器芯片是当前最常用的并且相比较其他芯片算是比较先进的DS18B20,它改进了以往的常用的温度传感器的缺点,DS18B20主要优点是能够直接的将获得的温度信号转化为单片机需要的数字信号,而在之前的温度传感器只能够储存温度信号,必须有信号转换芯片才能够转换[2]。虽然温度控制系统虽然在各个行业都有应用,但是温控器的总体发展水平还不够高。与德国美国等发达国家相比差距依然存在,目前中国在这方面的技术水平处于发达国家的20世纪80年代中后期水平,一般只能用于普通的温度系统的控制,不能对较为复杂的温度系统进行控制,由于温度是一个梯度场,温度的上升或下降随时间的增长产生缓慢变化,而在现在工业控制中使用的温度控制仪表系统中,为防止污染、腐蚀、保护仪表的使用寿命,温度控制系统采用的温度传感器,一般为铠装的热电偶或热电阻,当它与加热物体接触时,温度传递过程必然有一个时间的滞后性,使被控温场冲过温度控制点:具有控制精度低、抗干扰力弱、鲁棒性差等缺点[3]。目前国内对于复杂环境的温控仪表技术发展还不够发达,而国外在这方面则发展的较为成熟。特别是德国和日本瑞典之类的国家。它们的特点一般具有:自适应控制且适用范围广可以用于许多较为复杂的温控系统具有自学习能力,保证了控制效果精度高且抗干扰能力非常强在全世界范围内,温控系统都在逐渐变的更为精确,更为简便,更为智能且成本更为低。系统总体方案设计2.1系统的基本结构这次的设计是选择以单片机为控制核心、电扇和加热片为控温电路同温度采集电路、按键电路、wifi通讯电路等外围电路共同构成了这次的基于单片机的温度测控系统的基本结构。系统的结构如图2.1所示。系统从结构上可以分为:上位手机端部分、wifi通信电路部分、温度采集部分、温度控制模块和下位单片机控制模块部分。上位手机端主要用来进行人机交互,并向下位机发送命令和几首下位机做出的反应。目的是为了使人们可以在远距离的情况下方便使用系统来对温度进行测控。WiFi通信电路一方面将单片机得到的温度信息发送到手机端,另一方面可以接受手机端的命令发送给单片机。温度采集部分本系统的主要工作便是对温度的采集、显示、处理和控制。温度采集是系统的基础,所以需要准确且及时。考虑到温度采集电路对整个系统的重要性,采用了具有直接数字化输出、测试及控制功能强大、传输距离远、抗干扰能力强、微型化、微功耗等特点的智能温度传感器DS18B20作为温度采集单元。温度控制模块当温度不在设定范围内,单片机运行电扇或加热片对环境温度加以控制,直到温度回到设定范围。下位单片机部分下位机是以单片机为核心,再配上必要的外围电路比如时钟电路,复位电路所构成的单片机系统。该部分所完成的任务:对手机端信号做出响应;完成对手机端的数据传输;进行温度的数据采集;对电扇和加热片进行控制图2.1系统基本结构2.2系统工作过程整个系统的运行过程如下:打开单片机,在手机端打开wifi找到相应wifi名称并连接,在TCP软件上输入打开单片机时得到的地址和端口后连接;连接成功后,在手机端输入温度的上下限,设置完成后会将信号发送给wifi通信模块处理后传送给单片机;温度采集模块对环境温度进行测量,并将采集的温度数据发送给单片机,单片机接受后通过一定算法处理后发送给手机端;如果采集到的温度不在设定的温度上下限之内,则报警的同时单片机打开电扇或者加热片进行温度的控制;当温度被加热或降温到设定范围内,警报和温度控制模块不在工作。2.3单片机的选取在本次毕业设计中,STC89C52单片机作为系统的核心处理器,首先看中的是它的功耗,此款单片机的额定损耗只有60mW,在几年前开发的一些单片机中,其功耗在100Mw,后来随着科技的快速发展,人们追求便利、省电的要求,不断的将功耗向着更低的要求发展,其中有一项技术值得关注,那就是HMOS技术。如今,HMOS技术已经成为了单片机生产厂家使用的必不可少的一项高科技技术,同时还有另一个技术就是CHMOS,此设计中的STC89C52就使用了HMOS与CHMOS这两项节能技术。这款单片机功耗比较低、抗干扰能力比较强、使用寿命长,功能比较齐全,更重要的是价格比较,这款单片机的这些特点可以减小系统的成本,降低编程难度,因此大多数做毕设的同学都比较热衷这款型号的单片机。STC89C52单片机也是采用的也是51内核,其程序代码和工作指令适用于51单片机。这种单片机工作的周期是12时钟周期,工作的频率是0~40MHz,而48M赫兹为实际的工作频率。此单片机的作正常工作温度指标有两种:-40~+85℃的为工业等级,0~75℃为商业等级。STC89C52单片机具有8K的ROM,也就具有8K字大小的,可让用户使用的程序空间。而RAM,STC89C52单片机具有512个字节数。而单片机比较常用的I/O具有32个端口,当其复位之后其P1、P2、P、P4IO口的工作方式为准向上口和弱上拉两种工作方式,P0I口输出为开漏,开漏输出的驱动能力比较小,当需要驱动一些功耗比较大的负载时,需要加上10K的上拉电阻才可以。而其他组的IO口,例如P2其内部都已经弱上拉,在使用的时候就不需要再加上拉电阻了。STC89C52单片机包含了T0,T1,T2三个16位计数器和定时器。2.4温度传感器的选取温度传感器的类型有许多,其中高精度且非常可靠的设计中,DS18B20温度传感器则是非常好的选择。它的体积小、抗干扰能力强、测温范围在-55~+125℃以内的同时精度也很高。使得在一般做单片机系统设计或者温控产品时,更适合选择它。而它的只要特征是:1.全数字温度转换及输出2.先进的单总线数据通信3.最高12位分辨率,精度可达土0.5摄氏度4.12位分辨率时的最大工作周期为750毫秒5.可选择寄生工作方式6.检测温度范围为–55°C~+125°C(–67°F~+257°F)7.内置EEPROM,限温报警功能8.64位光刻ROM,内置产品序列号,方便多机挂接9.多样封装形式,适应不同硬件系统[4]。2.5显示屏的选取在之前人们常用LED数码管来作为显示器,但是它能表达的内容比较有限,并且寿命很短。所以在LCD液晶屏推出后人们大多开始选择LCD液晶屏。这次设计选择的LCD1602是因为它的接口更为方便容易拆装且效率很高,速度非常快。而且它的价格非常低,质量轻,功耗也很低。LCD显示模块是个慢显示器,要先确认这个模块的忙标志是低电平再执行指令,如果不忙就失效。当你想要显示某个你希望的字符的时候,只需要输出显示字符的地址就行,在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态,1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母A的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母A[5]。读写指令如图2.3图2.3读写指令读操作时许如图2.4图2.4读操作时序图写操作时序如图2.5图2.5写操作时序图2.6继电器的选取继电器具有控制系统和被控系统,一般在自动控制电路中,起调节保护转换作用。常用的是电磁继电器,本设计也是采用的电磁继电器,所以在这里将重点介绍电磁继电器:电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的,只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合,当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放,这样吸合、释放,从而达到了在电路中的导通、切断的目的,对于继电器的常开、常闭触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为常开触点,处于接通状态的静触点称为常闭触点,继电器一般有两股电路,为低压控制电路和高压工作电路[6]。2.7WIFI通信模块的选取ESP8266是一种功耗很低的模块,有着为移动设备和互联网的应用设计,可以将用户的物理设备连接到WIFI无线网络上,实现联网功能,本次设计也采用的是ESP8266模块。连接到路由器的ESP8266WIFI模块,在手机的APP上收到信号后来控制单片机,WIFI模块的功能是将串口或TT电平转为符合WIFI无线网络通信标准的嵌入式模块,内置无线网络协议IEEE802.11b.g.n协议以及TCP/IP协议,传统硬件设备嵌入WIFI模块能够通过WIFI联入互联网来控制相应设备,这也是物联网的重要组成部分,模块的正反面图如图2.7和2.8所示[7]。图2.7ESP8266WIFI模块正面图图2.8ESP8266WIFI模块反面图系统硬件设计温度的测控系统的硬件设计主要包括主控单元设计、温度采集电路设计、温度控制电路设计、按键电路设计和wifi通信电路的设计。3.1主控单元主控单元包含了复位电路和时钟电路等。其中复位电路起复位作用,一旦单片机连接电源或者电压过低的时候,储存器就会复位,所有的参数全部初始化。其中在单片机上有两种复位电路,一是上电复位电路,当加电的时候,电压无法突变RST引脚为高电平就开始复位。当充电到电阻的压降开始慢慢下降复位就结束了。第二种是按键式复位电路,与上电复位电路基本相同的同时还可以用按键来复位。按下是电阻分压RST产生高电平。而这次的毕设使用到的就是第二种。单片机有一个用来构成内部振荡器的高增益反相放大器。它和作为反馈元件的片外石英晶体或者陶瓷振荡器一起构成自激振荡器。外接石英晶体(或陶瓷振荡器)及电容C2、C3接在放大器的反馈回路中构成并联振荡电路。对外接电容C3、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。主控单元连接如图3.1。图3.1主控单元连接电路3.2温度采集及显示电路本次设计的测温单元包含了温度检测和显示部分。显示采用了LCD1602液晶显示屏,它一共有16个引脚。其中第一引脚和第二引脚为显示屏的电源正极和电源负极,第十五引脚和第十六引脚为显示屏背光的正极和负极,第三引脚为调节显示屏显示的字符的对比度的引脚,次引脚通过一个滑动10K变阻器与液晶显示屏的第一引脚及显示屏的负极相连,通过调节10K电位器来进行显示字符亮暗对比度的调节。显示屏的第3、4、5引脚分别为液晶显示屏的使能端、命令输入端和数据输入端,它们和单片机的P1.2、P1.0、P1.1口连接。最后,LCD1602的第第七引脚至第十四引脚为显示屏的8位数据控制口,此8个引脚分别和单片机的P0.0至P0.7共8个IO相连,单片机以此来向液晶显示屏输入数据。硬件连接图如下3.3所示。图3.2液晶显示电路图这次毕设的温度测控系统里,测温的部分使用的是DS18B20芯片。它的接口电路如图3.4。DS18B20有3个引脚,第一个是GND,第二个是数据传输引脚,第三个是VCC连电源正极。图3.3接口电路3.3温度控制电路这次设计中温度控制选择的负载是电扇和加热片。由于风扇需要的电流比较高,如果风扇与单片机共用一个电源时,单片机以及其他用电芯片不能正常工作,最终导致系统无法正常运作,因此在本系统中,采用了继电器作为控制电路,其电路连接图如下图3.5所示图3.4继电器电路连接图图中除了如所说的继电器和加热片以外,还有4个元件,分别为两个电阻一个LED和一个三极管,其中三极管采用了一个型号为9012的PNP三极管,其作用是起信号放大的作用,从图中可以看出,当有电流从继电器中流过时,继电器就会吸合,使风扇通电开始工作,但是由于单片机的IO口驱动能力不足,不能直接控制继电器,所以这里加了一个三极管,单片机只需要控制三级管的导通,当三极管导通时,电流从正极经过继电器流向负极,继电器吸合,当然,控制三极管导通的电流非常小,比直接控制继电器小很多,单片机的IO口足够驱动起来,图中LEDD1为指示灯,当继电器闭合的同时,LED也会亮。图中R3和R4都为限流分压电阻,由于LED的额定电压为2V,而从三极管导通过来的是5V电压,因此需要加一个1K电阻与LED灯串联在一起,起分压的作用,及1K电阻上面有3V电压,LED两端有2V电压,这样LED灯就不会因电压过高而烧坏,三极管基极与单片机P2.0相连[8]。3.4按键电路在本次设计中,需要设置一下温度上下限的报警值,只需要一个按键起设置的作用,一个按键起加的作用,另一个按键起减的作用。所以这次设计使用了独立按键,他的接法也比较简单。其硬件连接图如下图3.6所示:图3.5按键电路连接图3.5WiFi通信电路WiFi模块采用3.3V额定电压供电,在系统采用5V电压供电,因此需要采用稳压芯片将电压降至3.3V才能给WiFi模块供电。在本电路中ESP8266WiFi模块只需要用其中的5个引脚,其中包括电源正极VCC和负极GND引脚,分别接稳压芯片输出的3.3V电压和系统的GND。然后是串口通信的接收RXD和发送TXD引脚,ESP8266模块的通信引脚兼容3.3V和5V的TTL电平,因此在串口的连接上不用电压转换,接口交叉连接,另外还有一个模块工作的使能引脚CH_PD,在使用此模块时,必须将CH_PD引脚拉高至高电平,模块才可以正常的工作,因此使用时将CH_PD引脚与电源正极连接即可。另外在本电路中的两个10uf的电解电容的作用是实现滤波,使电源输出更稳定,提高通信质量,无线通信电路如图3.7所示。图3.6无线通信电路图系统软件设计硬件结构是基础但是驱动程序也同样非常重要。随着现在电子技术发展的越来越快,编程技术也正在逐渐得到人们的重视。其中C语言比较容易一些,在程序编写完成之后,会经过编译软件再将C语言转换成机器语言。通过模块化的程序编写手法,采用C语言对程序的编写,使每个模块的程序完成每个部分的功能,然后再共同实现窑烟道温度控制系统的所有功能。4.1主程序设计系统软件设计中最重要的就是温度测控系统的主程序,其通过调用各个子程序来完成各个程序控制。整个主程序形成一个死循环,每调用一个子程序也就是执行一部分功能。首先是在系统通电之后对系统进行程序初始化,这里面要执行各种初始话子程序,其中包括定时器中断定时器程序,当定时时间到时,就要执行定时器中断里面的程序,这里面放了一个按键扫描子程序,这样可以使按键按下时快速响应,这里可以设置温度控制系统的温度上限和下限。其次,除了执行中断里面的函数以外,在定时时间没有到达之前,要执行死循环里面的函数,在循环里面首先要对窑烟道的温度进行检测,如果温度超过上限,那么启动降温装置为系统降温,当温度低于上限使停止;如果温度低于下限就启动加热装置为系统加热,当温度高于下限时停止。到此为止一个循环结束,然后在重头开始,继续检测温度,对其控制等,其系统主程序流程图如图4.1所示。图4.1主程序流程图4.2温度测量程序设计在这个温度测控系统中使用的是DS18B20传感器来测温,“读取温度就是对DS18B20里RAM中字节的读取,在18B20的RAM中有9个字节存储了温度信息,对温度传感器的读取十分严格,首先得对DS18B20进行复位,然后是向温度传感器输入开始读取温度的命令,当温度传感器接受到了命令之后,开始向单片机传送带有温度信息的字节,最后单片机在对这些数据整合处理,并将温度以字符串的方式显示在液晶屏上,读温程序流程图如图4.2所示[8]。图4.2读温程序流程图4.3液晶显示子程序设计这次的毕设使用的是LCD1602显示屏,其采用的是8位并口通信协议。首先是LCD1602的初始化,然后通过写数据和写命令设置显示坐标,然后索引整个字库,调用相应字符的字码,将字符显示到显示屏。当第一个字符显示完毕子后,将按同上诉原理的显示下一字符,直到所有的字符显示完毕为止。液晶屏显示的程序流程图如图4.3所示:图4.3液晶显示的程序流程图4.4按键控制子程序设计在本设计中为了可以使温度控制系统具有设置温度上限的功能,增加按键电路,在设计中由于使用的按键功能数比较少,所以采用了独立按键的方式接入,其硬件电路结构简单,在程序控制方面也比较简单。首先按键设置子程序放在定时器中断中被实时扫描,当按键中的某一个按键被按下时,就会被检测到。系统在“设置”按键没有按下时,系统为正常测温状态及模式0,在按一次设置键时进入可以输出温度最大阈值状态,再按一次变成输出温度最低阈值,然后变成正常状态。“加”被按下,连接“加”键的单片机IO口就会被拉低,这时单片机会判断这时为什么模式,如果为模式1,则使温度上限加一,若为模式2,则使温度下限加一,若为模式0,则什么都不做,按键无效。同理,当“减”键按下时,系统会判断这时为什么模式,如果为模式1,则使温度上限减一,若为模式2,则使温度下限减一,若为模式0,则什么都不做,按键无效。在按键设置结束之后,系统会将新设置完成的温度上限值更新到系统中去,去按键设置子程序流程图如图4.4所示。图4.4按键设置程序流程图4.5控制程序设计需要控制温度,就需要两个继电器来升温降温,得到了目前的温度值,温度如果大于最大阈值,风扇就会开始转动,一直到低于最大阈值时就会控制风扇的继电器断开,使风扇停止转动。而如果温度值小于设定的温度下限时,加热片就会加热一直到温度高于设定的温度的下限时,加热片停止加热。控制程序的流程图如图4.5所示。图4.5控制程序流程图4.6WiFi通信程序设计ESP-8266是一款高性能的无线模块,采用串口主控器通信,内置TCP/IP协议,可实现串口与WIFI之间转换。ESP-8266STA/AP/STA+AP三种工作模式:STA模式:此时模块可以直接通过路由器连接互联网,并且跟手机连接,实现控制AP模式:此时模块可以作为热点和手机通讯实现局域网控制STA/AP模式:此时可以在以上两种模式间切换对于ESP-8266的工作流程编写以下4部分程序:初始化:主要对模块底层进行驱动,包括AT指令的发送与接受、模块状态检验、输入输出的显示等。AP+STA模式测试:只有一个函数atk_8266_apsta_test,对模块串口AP+STA模式各个子模式的测试。先是STA模式下配置后液晶界面会让你输入远端IP地址,输入正确的以后会开始数据的收发测试。AP模式下,测试TCP/UDP连接:在AP模式下atk_8266_apsta_test函数相似,模块可以发出热点,给手机连接,形成局域网串口连接:无线模块的主控器通过串口1连接经过这几步后就完成了,模块也可以通过手机进行无线连接了。在本设计中,通过WiFi模块实现系统数据的无线传输,由于ESP8266WiFi模块采用了UART串口通信协议,WiFi模块接收到的数据转换为串口通信的数据发送给单片机,因此单片机只需要对串口进行收发处理即可,无需考虑WiFi模块的网络协议。ESP8266WiFi模块遵从标准串口通信协议,单片机对串口相同配置利用定时器T1产生9600的波特率便可实现与ESP8266WiFi模块的通信。在串口需要发送一个字符串数据时,需要将字符串分解,分解为单个的字符后逐个通过串口发送出去,发送单个字符时只需将字符赋值给SBUF寄存器即可,然后通信控制器会将数据发给WiFi模块,等待SBUF寄存器空闲之后,再赋值一下个字符,直到将整个字符串发送完毕,无线通讯子程序流程图如图4.6所示:图4.6WiFi通信程序流程图系统测试5.1测试内容本次设计是基于单片机的温度测控系统。对其测试的内容包含了:测量和显示温度是否正常准确、按键控制温度上下限是否正常、当温度超出上限或低于下限时能否报警并启动相应的负载、手机端能否通过WiFi连接设备、手机端能否正常显示温度以及手机端能否控制温度。5.2测试方法由于此次设计是做了实物,所以测试方法选择了对实物进行测试。5.3测试过程首先通电,显示屏亮,显示IP:192.168.4.1Port:5000。如图5.1.1图5.1.1接下来显示屏显示出Temp:30.2℃,如图5.1.2.而此时室内温度计显示的温度为30.3℃图5.1.2按下复位键后,可以看到屏幕显示:Set_Temp_L,28.8如图5.1.3,按下加减键后数字随每次0.1开始变化,再次按下复位键后,屏幕显示:Set_Temp_H31.1,如图5.1.4,按下加减键效果与之前相同。图5.1.3图5.1.4此时设定最高温度为:29.9,此时设备发出报警且风扇开始工作,如图5.1.5。短时间后附近温度降为:29.8℃,警报关闭,风扇停止工作,如图5.1.6。图5.1.5图5.1.6此时设定最低温度为:30.3,此时设备发出报警且加热片开始工作,如图5.1.7,短时间后手机附近温度升为:30.5℃,警报关闭,加热片停止工作,如图5.1.8图5.1.7图5.1.8接下来开始远端检测,首先手机下载TCP软件,并打开wifi,搜索到名为:AI-THINKER_82F34D的无线网连接,如图5.1.9,打开软件后,地址栏输入:192.168.4.1端口栏输入:5000后连接。屏幕显示:Temp:30.1℃,与此时设备显示温度相同,如图5.2.1图5.1.9图5.2.1此时输入:TH:29.8C设备发出报警且风扇开始工作,如图5.2.2,短时间后手机附近温度降为:29.7℃,警报关闭,风扇停止工作如图5.2.3图5.2.2图5.2.3输入:TL30.0C,设备发出报警且加热片开始工作,如图5.2.4,短时间后手机附近温度升为:30.1℃,警报关闭,加热片停止工作,如图5.2.5.图5.2.5图5.2.65.4测试结果从上述过程来看,温度测控系统可以显示出当前环境温度。且系统温度上下限的显示没有问题,按键也可以对其进行控制。当温度高于上限时,报警且电扇工作,对单片机周围环境温度降温,降至温度范围内后,警报和电扇关闭。当温度低于下限时,报警且加热片工作,对单片机周围环境温度升温,升至温度范围内后,警报和加热片关闭。并且远程检测端即手机在连接wifi后与系统连接后。可以正常显示温度,并且可以在手机端上设定温度上限和温度下限。系统接收信息后,也会对于超出范围内的温度环境,进行相对于的控制。说明本次设计的系统是比较成功的。结论在这大学最后的几个月里,由于特殊原因被迫只能在家里完成毕业设计。在这次设计中,由于水平有限,只能尽力做的简单些同时也要满足导师的要求。所以设计一定还是有很多不足的地方需要改善。这次做的是一个对环境温度的测控系统,最开始选题的时候真的不知道该做什么。于是开始在电脑上找曾经实训做过的东西看能不能给一些启发,看到之前的做过的一个基于单片机的温度测量报警电路。于是就想也许可以在这个基础上加一个控制温度的功能,后来导师说内容不够,最终变成了现在的这个可由手机连接WIFI后通过“TCP”这个APP进行测温和远程控制。现在温度在许多行业都有非常广泛的应用,有的需要非常精确,有的则需要温度的上下限非常大。这次做的这个可以用于远程测控比较小范围的空间,wifi的测试距离最远大于20米左右时,信号会比较弱。通过这次的设计,对单片机有了比以前更多的了解,积累了许多软件硬件的设计经验,还有对于相关软件的使用也更加的熟练了,积累了不少的经验。当然作为目前这个水平的初学者,在过程中也出现了许多的问题,之前掌握的知识不够扎实,对电路知识的理解都不太行。在今后的学习中还需要进一步的提升和了解,而且由于各种器件的多样性设计所做出的不一定是最好的选择,还有太多的地方值得改进,要继续努力的学习相关知识的。致谢时间流逝好比天上的流星,在不经意间,大学时光就处于末端,恍然间,仿佛自己还处于刚入学的时候,那个时候是那么的稚嫩,对于大学充满着激情,而经过这四年的学习沉淀,我走向成熟、稳重。在这里,我学到很多知识文化,学会很多为人处事的道理,面对着毕业之际,我真诚的说声:老师们,你们辛苦啦!首先,我得感谢我们之前的辅导员陈曦老师,是他让我从一个懵懂的大一不断给予我锻炼的机会,使的我不断的成长。不管是在我的学习方面,还是在做人办事,辅导员都时刻在教导我,帮助我,特别是在生活上,给我的关心,让我感觉到家的温暖,恍然间,毕业在即,可是心中忽然多了一种不舍,多了那么多的美好记忆。我依然记得当我面临困难时,辅导员给我的鼓励,天冷时,注意身体的关爱,即便是最后找工作,也根据我不同的情况去帮助我。在此,我真心的说句:谢谢你的教导!其次,我得对教我知识的老师们说声感谢,是你们教给我很多知识,是你们在我疑惑的时候给我一盏明灯指引我走向知识的海洋,是你们让我在科技面前拥有创造的能力。父母给我生命,而你们却给了我创造知识的生命,让我从一个只会读课本的懵懂少年,变成一个能用知识去改变生活的成年人。特别是你们每位老师那种艰辛,每次上课你们都为我带来你们的各种知识世界,让我能够发展更加全面,知识也从单一走向多样化,掌握各种学科知识的有用人才。特别是我的专业老师,让我彻底明白自己专业,明白这四年我究竟是要学到什么重点知识,让我在自己的专业方面更加清晰,面对自己以后找工作更加得心应手。然后,我要对我这次的指导老师杨庆江老师说声感谢。从开始的选题,为我们做出设计思路,最重要的是在我们不懂时,给我们一些相关资料,不管是我的开题报告修改,还是我的中期报告,老师都在时刻关注着我,帮我顺利完成本次设计。期间,每次出现的问题,都是通过与老师的沟通交流,甚至老师一遍一遍的帮我分析,这令我很感动,在此,我能圆满完成本次课程设计,是离不开的老师这么多天的辛苦,我由此发自内心的说声:老师,谢谢你的照顾,你辛苦啦!最后,我要感谢学校黑龙江科技大学,是学校给了我上大学的机会,让我在此认识了我们热心的班长,给我学习帮助的学习委员,以及我那坦诚相待的同桌,还有一群志同道合的同学。是郑州科技学院给于我这次机遇,让我能在人生的旅途中结识到这么多同学、朋友和关照我的老师;是学校给了我这个机会,让我从懵懂少年走向成熟;是郑州科技学院让我走向人生辉煌的方向。大学即逝,原谅我放荡不羁爱自由的人生。真诚的感谢你们,你们是我人生中无法用金钱衡量的财富,是我人生中最宝贵的记忆。我因为有你们而自豪,我相信,有一天,我会让你们因为我而骄傲的!谢谢!参考文献成天荣,温度控制仪表的现状与改进[J].内蒙古科技与经济,2008,6(11):99~101余泽辉,伍建军,陈洁,等,基于单片机的数字温度计的研究与设计[J].仪器仪表用户,2007,14:10~80柯维娜,朱定强,蔡国飙,温度控制技术的发展与应用[J],计量学报,2007,9(28):178~184戴力,刘笃仁,《中国集成电路》[M]2005,(08):62-65张欣慧,《山西电子技术》[M]2013,(05):14~15王娟,《电子技术与软件工程》[M]2019,(08):254~254谢国坤,贾亚娟,郑凯.《企业科技与发展:上半月》[M]2018,(5):2~2张晋斌,传感器技术发展的必要性,趋势及建议[J],仪器仪表学报,1997:132~135蔡发魁编.具有单片机功能的红外读写器第一章:红外光的介绍[J].中国现代教育网2015.57~68谢国坤,贾亚娟,郑凯,《中国科技信息》[M]2012,(19):98~8陈宇瑞,李明,付帅《电子制作》[M]2017,(7):3~3沈红卫.单片机应用系统设计实例与分析[M].北京航空航天大学出版社,2001(7):298~312张毅刚.单片机原理及应用[M].北京:高等教育出版社,2001.397~407WangS,TangJ,JohnsonJAetc.DielectricPropertiesofFruitsangInsectPestsasrelatedtoRadioFrequencyandMicrowaveTreatments[J].BiosystemsEngineering,2003,85(2):201~212YuanN,YeoTS,NieXC,LiLW,etal.AnalysisofSca-tteringfromCompositeConductingandDielectricTargetsusingthePrecorrected-FFTAlgorithm[J].Electromagn.WaveandAppl,2003StreetMQ1Themicroelectronicsandcomputersystemslaboratory[J]1MicroelectronicsJournal,1993.附录1原理图附录2程序#include<reg52.h>#include<LCD1602.h> //引用1602头文件#include<DS18B20.h> //引用18B20头文件#include<EEPROM.h> //引用掉电存储头文件sbitKEY1=P3^1; //定义按键sbitKEY2=P3^2; sbitKEY3=P3^3; sbitLED1=P1^1; //定义发光二极管sbitbeep=P1^5; //定义蜂鸣器sbitjdq=P1^0; //定义继电器bitkey2_flag=0;bitkey3_flag=0;bitkey4_flag=0;bitkey5_flag=0;ucharxdatarec[36];ucharsec1=0,sec2=0; //定义按键长按延时变量intDS;charRH;charRL;ucharxdatarec_dat[16];uchari,j,nu;ucharw=0;uinttt,yy; //bitl=0; //按键连按标志位bitbeep1=0;voidkey(void);//延时函数voiddelay(uintz) //延时{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//voidTimer0_Init()//初始化定时器{ tt=0; yy=0; TMOD=0x11;//设置定时器0为工作方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=(65536-10000)/256; TL1=(65536-10000)%256; EA=1;//开总中断 ET0=1;//开定时器0中断 ET1=1;//开定时器1中断 TR0=1;//启动定时器0 TR1=1;//启动定时器1}//掉电存储voidwrite(){ SectorErase(0x2000);//扇区擦除 byte_write(0x2001,RH); byte_write(0x2002,RL);}voidread(){ RH=byte_read(0x2001); RL=byte_read(0x2002);}////温度显示界面voidshow1(){ LCD1602_write(0,0x80); LCD1602_writebyte("Temper:"); if(DS>=0) { if((DS/1000%10)>0) LCD1602_write(1,0x30+DS/1000%10); else LCD1602_writebyte(""); if((DS/100%10)>=0&&(DS/1000%10)>0) LCD1602_write(1,0x30+DS/100%10); elseif((DS/100%10)>0&&(DS/1000%10)<=0) LCD1602_write(1,0x30+DS/100%10); else LCD1602_writebyte(""); if((DS/10%10)>=0) LCD1602_write(1,0x30+DS/10%10); LCD1602_writebyte("."); LCD1602_write(1,0x30+DS%10); LCD1602_write(1,0xdf); LCD1602_writebyte("C"); } elseif(DS*-1>=100) { LCD1602_write(0,0x87);//从lcd1602第一行第八个位置开始显示 LCD1602_writebyte("-"); if((DS*-1)/100%10>0) LCD1602_write(1,0x30+(DS*-1)/100%10); else LCD1602_writebyte(""); if(((DS*-1)/10%10)>=0&&((DS*-1)/100%10>0)) LCD1602_write(1,0x30+(DS*-1)/10%10); elseif(((DS*-1)/10%10)>0&&(DS*-1)/100%10<0) LCD1602_write(1,0x30+(DS*-1)/10%10); else LCD1602_writebyte(""); LCD1602_writebyte("."); LCD1602_write(1,0x30+(DS*-1)%10); LCD1602_write(1,0xdf); LCD1602_writebyte("C"); } else { LCD1602_write(0,0x87);//从lcd1602第一行第八个位置开始显示 LCD1602_writebyte(""); LCD1602_writebyte("-"); LCD1602_write(1,0x30+(DS*-1)/10%10); LCD1602_writebyte("."); LCD1602_write(1,0x30+(DS*-1)%10); LCD1602_write(1,0xdf); LCD1602_writebyte("C"); } LCD1602_write(0,0x80+0x40); LCD1602_writebyte("H:"); LCD1602_write(0,0x80+0x49); LCD1602_writebyte("L:"); if(RH>=0) { LCD1602_write(0,0x80+0x42); if((RH/100%10)>0) LCD1602_write(1,0x30+RH/100%10); else LCD1602_writebyte(""); if((RH/10%10)>=0&&(RH/100%10)>0) LCD1602_write(1,0x30+RH/10%10); elseif((RH/10%10)>0) LCD1602_write(1,0x30+RH/10%10); else LCD1602_writebyte(""); if((RH%10)>=0) LCD1602_write(1,0x30+RH%10); } if(RH<0) { LCD1602_write(0,0x80+0x42); LCD1602_writebyte("-"); if(((RH*-1)/10%10)>0) LCD1602_write(1,0x30+(RH*-1)/10%10); else LCD1602_writebyte(""); if(((RH*-1)/10%10)>=0&&((RH*-1)/10%10)>0) LCD1602_write(1,0x30+(RH*-1)%10); else LCD1602_write(1,0x30+(RH*-1)%10); } if(RL>=0) { LCD1602_write(0,0x80+0x4b); if((RL/100%10)>0) LCD1602_write(1,0x30+RL/100%10); else LCD1602_writebyte(""); if((RL/10%10)>=0&&(RL/100%10)>0) LCD1602_write(1,0x30+RL/10%10); elseif((RL/10%10)>0) LCD1602_write(1,0x30+RL/10%10); else LCD1602_writebyte(""); if((RL%10)>=0) LCD1602_write(1,0x30+RL%10); } if(RL<0) { LCD1602_write(0,0x80+0x4b); LCD1602_writebyte("-"); if(((RL*-1)/10%10)>0) LCD1602_write(1,0x30+(RL*-1)/10%10); else LCD1602_writebyte(""); if(((RL*-1)/10%10)>=0&&((RL*-1)/10%10)>0) LCD1602_write(1,0x30+(RL*-1)%10); else LCD1602_write(1,0x30+(RL*-1)%10); }} ////温度上下限调整voidKEY() //温度上下限调整{//RH+- w=0; w++; //W:是设置按键KEY1按下次数,KEY1按下一次W加一,按下三次后退出设置功能,退出KEY()函数,返回main()函数,执行主函数内的流程 // while(1) { show1(); //显示温度界面 if(nu==1&&w==1) { LCD1602_write(0,0x80+0x42); LCD1602_writebyte(""); LCD1602_write(0,0x80+0x43); LCD1602_writebyte(""); LCD1602_write(0,0x80+0x44); LCD1602_writebyte(""); } if(!KEY2) //按键KEY2按下(数字加功能键) { if(key2_flag) //按键按下标志位,只有按键松开才会置一 { key2_flag=0; //清零,这样,就算按键一直按下,由于只有按键松开才会置一,所以这个函数只会执行一次 if(RH<125){RH++;}//数据加一 } if(sec1==0) //这个变量只有在按键松开,才会一直是2,按键按下后会每隔1S减一 { //当等于0的时候,判断为长按,需要连加减 if(RH<125){RH++;} //连加设定 }key4_flag=1;//按键按下才会置一 //温度上限RH加一 } else { key2_flag=1;sec1=2;//赋值 if(key4_flag==1) //当确定按下键按下过,就执行这个函数 { key4_flag=0; write(); //存储数据 } } if(!KEY3) //与上述KEY2相同,不在阐述 { if(key3_flag) { key3_flag=0; if(RH>(RL+1)){RH--;} } if(sec2==0) { if(RH>(RL+1)){RH--;} } key5_flag=1; } else { key3_flag=1;sec2=2; if(key5_flag==1) { key5_flag=0; write(); } } if(KEY1==0) { while(!KEY1); delay(10); while(!KEY1); w++; while(1) { show1(); if(nu==1&&w==2) { LCD1602_write(0,0x80+0x4b); LCD1602_writebyte(""); LCD1602_write(0,0x80+0x4c); LCD1602_writebyte(""); LCD1602_write(0,0x80+0x4d); LCD1602_writebyte(""); } if(!KEY2) //按键KEY2按下(数字加功能键) { if(key2_flag) //按键按下标志位,只有按键松开才会置一 { key2_flag=0; //清零,这样,就算按键一直按下,由于只有按键松开才会置一,所以这个函数只会执行一次 if(RL<(RH+1)){RL++;}//数据加一 if(RL==RH) {RL--;} } if(sec1==0) //这个变量只有在按键松开,才会一直是2,按键按下后会每隔1S减一 { //当等于0的时候,判断为长按,需要连加减 if(RL<(RH+1)){RL++;} //连加设定 if(RL==RH) {RL--;} } key4_flag=1;//按键按下才会置一 //温度上限RH加一 } else { key2_flag=1;sec1=2;//赋值 if(key4_flag==1) //当确定按下键按下过,就执行这个函数 { key4_flag=0; write(); //存储数据 } } if(!KEY3) { if(key3_flag) { key3_flag=0; if(RL>(-55)){RL--;} } if(sec2==0) { if(RL>(-55)){RL--;} } key5_flag=1; } else { key3_flag=1;sec2=2; if(key5_flag==1) { key5_flag=0; write(); } } if(KEY1==0) { while(!KEY1); delay(10); while(!KEY1); w++; } if(w>=3) break; } } if(w>=3) break; } write();}//RL+- ////报警函数voidalert(){ charN=DS/10; if(N>RH) //如果当前温度高于设置最高温度RH,发光二极管点亮,蜂鸣器报警 { beep1=0; LED1=0; } else //否则发光二极管、蜂鸣器关闭 { beep1=1; LED1=1; } if(N<RL) //当前温度低于设置最低温度RL,继电打开 jdq=0; if(N>RH) //当前温度高于设置最高温度RH,继电器关闭 jdq=1;}////主界面voidmain(){ LCD1602_cls();//lcd1602初始化 Initial(); //初始化DS18B20函数 do{ //调用读温度函数,这里是一个判断,因为温度传感器,第一次读数据会出来一个850,不是温度数据,所以滤掉这一个数据 DS=Temper();}while(DS==850); Timer0_Init(); //初始化定时器 read(); //读单片机内部EEPROM内存储的温度上下限的值 show1(); //界面显示 if(RH<(-50)||RH>130||RL<(-50)||RL>130||RH<=RL) //如果从存储区读取的温度上下限RH、RL的值不对,就对它们从新赋值 { RH=40; RL=10; } while(1) { show1(); //打印界面// alert(); //进入报警程序,判断是否有触发状态 if(KEY1==0) //按键一按下,进入上下限设置功能 { while(!KEY1); //等待按键起来 delay(10); //延时消抖,可不要 key(); //进入按键设置 } } }voidtime_0()interrupt1 //定时器0{ TH0=(65536-10000)/256; // TL0=(65536-10000)%256; //重装载值100ms tt++; if(tt>=5) //每500ms读取一次DS18B20的值 { DS=Temper(); alert(); } if(tt>=50) { tt=0; if(beep1==0)beep=~beep; else beep=1; if(w==1||w==2) //闪烁标志位 { nu=!nu; } } } voidtime1()interrupt3 //定时器1的服务函数{ TH1=0x3C; TL1=0xb0; yy++; if(yy>=20) //如果ms大于等于20,说明ms自加了20次,20*50=1000,也就是1S { yy=0; //清零 if(sec1!=0)sec1--; //只要这两个数据不为零,都是每隔1S减一 if(sec2!=0)sec2--; }}

#ifndef_DS18B20_H_#define_DS18B20_H_#defineucharunsignedchar#defineuintunsignedint//温度IOsbitDS1820_dat=P3^4;voidDS18B20_delay(uintT) //短延时 { while(T--);}//初始化DS18B20函数voidInitial() {DS1820_dat=1; DS18B20_delay(8); DS1820_dat=0;DS18B20_delay(80);DS1820_dat=1;DS18B20_delay(15);}voidInput(ucharf) //往DS18B20里面写数据,写一个字节{ucharj;for(j=0;j<8;j++){DS1820_dat=0;DS1820_dat=f&0x01;DS18B20_delay(10);DS1820_dat=1;f>>=1;}}ucharOutput() //读取DS18B20数据,读一个字节{ucharj,b;for(j=0;j<8;j++){DS1820_dat=0;b>>=1;DS1820_dat=1;if(DS1820_dat){b=b|0x80;}DS18B20_delay(10);}return(b);}intTemper()//读取温度数据{ intStore; intStore_2,Store_1; Initial(); //对DS18B20复位 Input(0xcc); //跳过ROM Input(0x44); //启动温度转换 Initial(); //对DS18B20复位 Input(0xcc); //跳过ROM Input(0xbe); //读RAM命令 Store_1=Output(); //读温度的低字节 Store_2=Output(); //读温度的高字节 Store_2=(Store_2*256)+Store_1; //合起来为温度的整数部分 Store=(int)Store_2*0.625; returnStore;}#endif

//1602使用上比较简单,三步走,首先初始化,然后送要显示的地址,然后送显示数据即可#ifndef_LCD1602_H_#define_LCD1602_H_#defineucharunsignedchar#defineuintunsignedint#defineLCD1602_datP0 //数据并行口宏定义sbitLCD1602_rs=P2^5;//IO定义sbitLCD1602_rw=P2^6;sbitLCD1602_e=P2^7;voidLCD1602_delay(uintT) //延时函数{ while(T--);}/*********************************************************************名称:LCD1602_write(ucharorder,dat)*功能:1602写如数据函数*输入:order为数据/命令切换变量//0是命令1是数据* :dat为数据/命令的发送数据*输出:无***********************************************************************/voidLCD1602_write(ucharorder,dat) //1602一个字节处理{LCD1602_e=0;LCD1602_rs=order;LCD1602_dat=dat;LCD1602_rw=0;LCD1602_e=1;LCD1602_delay(1);LCD1602_e=0; }/*********************************************************************名称:LCD1602_writebye(uchar*prointer)*功能:1602写入数据函数指针式*输入:输入需要显示的内容*输出:无***********************************************************************/voidLCD1602_writebyte(uchar*prointer) //1602字符串

温馨提示

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

评论

0/150

提交评论