




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
远程串口温度测量系统设计摘 要远程温度测量系统是利用下位机实时温度的采集,并将结果传输到上位机。以达到对温度的比较、控制。本设计用52单片机为主要硬件,设计了包括温度采集,温度显示,串口通信等外围电路。而且对所设计电路给出了相应的软件设计,包括串行口初始化,数据采集和数据传输等程序。在温度测量部分采用具有“一线总线”接口的数字传感器DS18B20,实现单线远程数据的采集。远程温度测量系统是典型的集散式控制系统。由下位机、上位机、和通讯网络三部分组成。下位机是基于单片机 AT89S52和DS18B20的高精度温度采集系统,功能是对温度的检测与输出控制。上、下位机之间通过RS-485协议构成网络系统。关键词: AT89S52,DS18B20,温度采集,串口通信目 录第一章 绪论1第二章 远程温度测量系统设计要求与设计方案22.1系统设计任务和要求22.2 课题分析22.3 方案比较与论证22.3.1 温度传感器的选择22.3.2显示部分32.3.3主控芯片的选择32.3.4远程传输模块的选择32.4方案选定4第三章 远程温度测量系统的硬件设计53.1总体设计53.2 主板部分电路设计53.2.1 AT89S52单片机的性能及应用53.2.2显示模块设计63.2.3串行通信63.2.4电源模块63.3分板电路设计73.3.1 AT89S52单片机的性能及应用73.3.2 DS18B20芯片简介及接口设计7第四章 远程温度采集系统的软件设计84.1 软件设计总论84.1.1软件设计的一般方法84.1.2 程序流程图设计84.2 C语言的产生及特点84.3 总体及各分模块程序设计94.3.1 主板主程序设计94.3.2分板主程序设计104.3.3串行通信程序设计104.3.4温度采集程序设计124.3.5 LCD显示设计184.4软件抗干扰技术20结论21致谢22附录 2435第一章 绪论温度的监视和控制可以说是现代化工、农业最常用的技术,常用于农用系统、音频设备、汽车、气象控制、GPS设备、医疗装置、电信等方面。例如进行田间温度测量,将温度传感器放置在所需测量的农田的各个位置,在土壤表面,深入到作物根系附近,放置到植物的顶端,测量同一时间内不同位置的温度,经过一段时间的采样从而分析温度对作物生长产生的影响;还可以在粮库存储的粮食中均匀分布温度探头,监测不同位置的粮食的温度变化,防止或尽早处理霉变现象。对于这类的温度测量需求,传统的人工测量已经远远的不能满足,而现有的大多数温度测量装置采用热电偶进行温度测量,热电偶发出模拟信号且信号比较微弱,需要先经过增益放大,再进行A/D转换,最后送交给MCU处理。这样的系统控制多个温度探头需要考虑很多因素,而且多个探头的连接也会使整个系统的构成变得非常复杂,不利于实际应用。 18B20数字测温传感器,其不仅适用与高温或低温的环境,也适用于自然环境或接近自然温度的检测,如:对冷冻室或冷藏室温度的监测,粮食储备的温度监测,蔬菜大棚、花房的温度监测,程控交换机室的温度监测,孵化室温度监测等等对环境温度要求较严格的场合。DS18B20在解决各种误差、可靠性和实现系统优化等方面与传统各种温度传感器相比,有无可比拟的优越性,因而广泛应用于过程控制、环境控制、建筑物、机器设备中的温度检测。而对于远程传输这一课题在本系统中也是不得不考虑的一个因素。连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。采用何种传输协议有效地扩展测量半径是我们要解决的一个问题。第二章 远程温度测量系统设计要求与设计方案 2.1系统设计任务和要求用单片机、18B20数字测温传感器、LCD或LED等设计一温度测量电路,该电路还能进行远距数据传输。测量温度范围:-55+125;传输距离:大于100米。2.2 课题分析首先,对于远程温度测量,温度探头的低功耗是十分重要的,同时还要满足易于控制的条件,测温范围也必须达到或超过题目要求。因此选择合适的温度传感器成为本次设计的重中之重。再次,对于传输距离大于100米的要求,如若直接将温度传感器用大于100米的普通连接线连接到单片机上,不可避免的会产生信号的衰减,甚至会由于外界的干扰造成传输误码率升高。要解决这个问题,只能通过专用的单片机串口通信设备芯片MAX32解决2.3 方案比较与论证2.3.1 温度传感器的选择根据题目要求,设计一温度测量电路,能够通过温度传感器测量并显示被测量点的温度,常用的温度传感器可分为3大类:方案一:热电偶式热电偶具有构造简单,适用温度范围广,使用方便,承受热机械冲击能力强以及响应速度快等特点,常用于高温区域, 振动冲击大等恶劣环境以及适合于微小结构测温场合;但其信号输出灵敏度比较低,容易受到环境干扰和前置放大器温度漂移的影响,因此不适合测量微小的温度变化。方案二:电阻式电阻式可用来测量-220850范围内的温度,少数情况下,低温可测量至-272,高温可测量至1000,互换性差,非线性严重,在腐蚀介质中使用时,易氧化,因此,只能用于低温及无腐蚀性的介质中。虽然测量温度范围广,但热稳定性差。方案三:数字式DS18B20温度传感器。DS18B20温度传感器为“一线式器件”,体积更小、适用电压更宽、更方便。其测量温度范围为 -55+125,在-10+85范围内,精度为0.5。其内部有A/D、D/A转换装置,用户可以设置温度的上下限,并具可以直接与单片机进行通讯。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。考虑题目测温范围要求以及测量数据的准确性要求选择方案三。2.3.2显示部分方案一:使用液晶显示屏显示转换结果。液晶显示屏 1602LCD液晶,平面显示以及影像稳定不闪烁等优势,能显示汉字及各种符号,抗干扰能力强和显示形式灵活等优点。方案二:使用传统的数码显示管。数码管(LED)受外界环境影响小,显示明亮,编程简单,占用资源较少。但是LED数码管显示单一,只能显示数字与字母,无法显示文字与曲线。根据以上的讨论,我们采用方案一。2.3.3主控芯片的选择本系统初步设计为一主板加两分板的结构。主板主要负责接收分板数据及显示任务,分板主要负责温度数据的采集及发送任务。在综合考虑对芯片的熟悉程度及功能的实现程度上。决定在主板上采用 AT89S52单片机,AT89S52是一种低功耗、高性能的CMOS工艺的8位单片机。它带有8KB的可在线编程的 Flash 存储器,该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业上标准型80C51单片机的指令系统及引脚完全兼容;片内的Flash 存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。 虽然市面上有着功能更为强大的单片机芯片,但都价格不菲。而本设计本着简单实用,精简节约的原则,我们选择了 AT89S52单片机芯片。2.3.4远程传输模块的选择方案一:无线发射接收模块无线发射模块省却了布线的步骤,使得整个系统看上去更加简洁。但整个系统的功耗较大,而且无线传输数据易受环境影响,不能保证数据存储的稳定性。方案二:有线通信收发器 MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 根据以上讨论我们选择MAX232串口通信芯片进行传输数据2.4方案选定1. 温度传感器 DS18B20;2. 显示部分 LCD液晶显示器;3. 主控芯片 主板AT89S52,分板AT89S52;4. MAX232串口通信芯片。第三章 远程温度测量系统的硬件设计3.1总体设计为完成远程温度测量系统的基本功能,我们采用了一主板加两分板的结构设计。主板与分板之间通过通信线缆连接,有各自独立的供电模块主板以AT89S52为主控芯片,主要负责接收来自分板的数据,并将其显示在LCD液晶显示器上。主要模块有:单片机最小系统模块,液晶显示模块,MAX232串口通信芯片两个分板以AT89S52为主控芯片,负责温度的采集及输出任务。主要模块有:单片机最小系统模块,温度采集模块,通信收发模块,电源模块。 3.2 主板部分电路设计 3.2.1 AT89S52单片机的性能及应用AT89S52是一种低功耗、高性能的CMOS工艺的8位单片机。它带有8KB的可在线编程的 Flash 存储器,该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业上标准型80C51单片机的指令系统及引脚完全兼容;片内的Flash 存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。3.2.2显示模块设计本次设计选用的液晶显示器是1602液晶显示模块,1602液晶也叫1602字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔 每行之间也有也有间隔 起到了字符间距和行间距的作用,正因为如此 所以他不能显示图形3.2.3串行通信按总线传送信号的形式可分为二大类型:串行总线和并行总线。如RS-232C为串行总线,IEEE-488并行总线。 介于单片机端口数目的限制,我们采用了串行通信的方式。3.2.4电源模块由于本机整机功耗较小,所需电压较低(仅为5V),我们直接采用了外接稳压直流电源或电池的设计。3.3分板电路设计3.3.1 AT89S52单片机的性能及应用AT89S52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦鞋的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM)。器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼 容标准 MCS-5l 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大。 3.3.2 DS18B20芯片简介及接口设计 DS18B20是美国Dallas半导体公司的产品。它采用1-Wire总线技术,具有节省IO资源,结构简单、成本低廉,便于总线扩展和维护等特点。DS18B20采用1-Wire总线技术,将地址线、数据线、控制线合为1根信号线,这就使得DS18B20与单片机的接口设计变得十分简单,只需将温度传感器的DQ端口与单片机的任意一个I/O数据口相连即可。由于单总线为开漏所以需要外接一个4.7K的上拉电阻。其余分板电路模块(如通信模块,电源模块,单片机最小系统模块)在主板中已做过介绍,在此不再赘述。第四章 远程温度采集系统的软件设计4.1 软件设计总论软件设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。软件设计通常分为问题建摸,算法设计,编写代码和编译调试四个阶段。4.1.1软件设计的一般方法软件设计一般根据系统中功能模块进行分割,首先应确定主程序框图,然后划分软件功能模块。程序设计中应实现模块化,子程序化。所谓模块化就是把一个完整的程序分解成完整的程序分解成若干个功能上相对独立的较小程序块,各小程序进行单独设计和调试,最后将各程序模块连接起来进行总调试。这种方法思路清楚,软件故障容易排除,便于移植及修改。当软件各功能模块分别调试完毕后,即可进行主程序调试。主程序调试主要是排除各个功能模块之间连接中可能出现的问题,如各个功能使用的RAM区域有否重叠现象,寄存器有否发生冲突,堆栈区域有否溢出等等。4.1.2 程序流程图设计 程序设计工作往往比较复杂,为了能把复杂的工作条理化、直观化,通常实用的方法是流程图法。程序流程图是人们对解决问题的方法、思路或算法的一种描述。 流程图的优点:1.采用简单规范的符号,画法简单;2.结构清晰,逻辑性强;3.便于描述,容易理解。尤其是对于大型软件的设计,流程图会对设计过程产生事半功倍的效果4.2 C语言的产生及特点一、C语言的产生和发展1. 1972年美国的Dennis Ritchie, 最初用在UNIX下的DEC PDP-11计算机。由早期的BCPL(Basic Combind Programming Language)发展而来,并命名为C语言。2. ANSIC 提交给ISO后产生ISO C(内容基本一致):3. 于1989年发布了第一个C的标准:C894. 最新一个是1999年的:C995. GCC是具体的C编译器 二、C语言的特点(原则):1. C是中级语言(它能对计算机硬件直接操作。当然说它是高级语言也对)2. C是结构式语言 数据与代码区隔,以函数形式(具体逻辑功能的载体,通过输入参数,进行内部黑箱操作,最后产生一个结果)组织代码,通过循环,条件等控制语句使程序完成的结构化C一定会有的函数是int main(int argc,char* argv) / windows下main()是void返回类型。main()是整个程序的起点和入口3. C功能齐全,代码精简,效率高效 #include 具体功能的实现体,具体程序中没有用到的库函数,相关头文件没必要include.(包含)4. C适用范围大故本次编程用C语言进行编程。 4.3 总体及各分模块程序设计4.3.1 主板主程序设计主板工作过程为:在进行系统初始化后主机向两分板发送选择地址,等待分板响应,若分板未连接或无响应,则继续向外发送选择地址。有响应,将接收到的数据存储到内存单元,调用显示程序显示温度。周而复始,完成工作。 图4-1 主板主程序流图4.3.2分板主程序设计分板工作过程:采集温度数据到内存单元,接收主机发送到的选择地址与自身地址进行比较。若相同,向主板发送数据;不同继续等待接收选择地址。图4-2 分板主程序流图 4.3.3串行通信程序设计本设计为系统设计,必然要考虑信道的利用问题。但在本系统设计中我们采用了主从式的网络设计。在主从式网络中,信道由主机进行控制,不存在竞争信道的问题。 52单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:SM0SM1SM2RENTB8RB8TIRI下面我们对各控制位功能介绍如下: 1. SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式0 0 方式0 0 1 方式11 0 方式21 1 方式32. SM2:多机通信控制位。多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0。3.REN:允许接收位。REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。4.TB8:发送接收数据位8。在方式2和方式3中,TB8是要发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。5.RB8:接收数据位8。在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。6.TI:发送中断标志位。可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 7.RI:接收中断标志位。可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。电源管理寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下SMOD在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。串行口的初始化主要就是对这两个位进行设置。 单片机通过对DE和/RE的置位或复位控制接收状态或发送状态。图4-3 主板串行口程序流图 图4-4 分板串行口程序流图 4.3.4温度采集程序设计部分温度采集程序及其发送端口初始化程序:/*以下是DS18B20的操作程序 */ sbit DQ=P33;unsigned char time; /设置全局变量,专门用于严格延时/*函数功能:将DS18B20传感器初始化,读取应答信号出口参数:flag */bit Init_DS18B20(void) bit flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; /先将数据线拉高 for(time=0;time2;time+) /略微延时约6微秒 ; DQ = 0; /再将数据线从高拉低,要求保持480960us for(time=0;time200;time+) /略微延时约600微秒 ; /以向DS18B20发出一持续480960us的低电平复位脉冲 DQ = 1; /释放数据线(将数据线拉高) for(time=0;time10;time+) ; /延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲) flag=DQ; /让单片机检测是否输出了存在脉冲(DQ=0表示存在) for(time=0;time200;time+) /延时足够长时间,等待存在脉冲输出完毕 ; return (flag); /返回检测成功标志/*函数功能:从DS18B20读取一个字节数据出口参数:dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat; /储存读出的一个字节数据for (i=0;i8;i+) DQ =1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DQ = 0; /单片机从DS18B20读书据时,将数据线从高拉低即启动读时序 _nop_(); /等待一个机器周期 DQ = 1; /将数据线人为拉高,为单片机检测DS18B20的输出电平作准备 for(time=0;time=1; if(DQ=1) dat|=0x80; /如果读到的数据是1,则将1存入datelsedat|=0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入ri for(time=0;time8;time+) ; /延时3us,两个读时序之间必须有大于1us的恢复期 return(dat); /返回读出的十六进制数据/*函数功能:向DS18B20写入一个字节数据入口参数:dat*/ WriteOneChar(unsigned char dat)unsigned char i=0;for (i=0; i8; i+) DQ =1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DQ=0; /将数据线从高拉低时即启动写时序 DQ=dat&0x01; /利用与运算取出要写的某位二进制数据, /并将其送到数据线上等待DS18B20采样 for(time=0;time10;time+) ;/延时约30us,DS18B20在拉低后的约1560us期间从数据线上采样 DQ=1; /释放数据线 for(time=0;time=1; /将dat中的各二进制位数据右移1位 for(time=0;time255) TH+; /如果低8位大于255,向高8位进1 TN=TH*16+TL/16; /实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 /这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL%16)*10/16; /计算温度的小数部分,将余数乘以10再除以16取整,TN=TH*16+TL/16; /实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 /这样得出的是温度的整数部分,小数部分被丢弃了 TD=(TL%16)*10/16; /计算温度的小数部分,将余数乘以10再除以16取整, /这样得到的是温度小数部分的第一位数字(保留1位小数) WD=TN*10+TD; /合成发送. Uart_SendChar(WD); /发送数据 图4-5 单片机控制18B20流程图 DS18B20 的测量范围从-55 - +125,测量精度为0.5。温度测量结果分别放到0,1号存储器中.存储器0的高四位为符号位。当温度为正时,此四位为零。存储器0的低四位和存储器1的高四位为温度值的整数部分,存储器1的低四位为小数部分的二进制码。如表1温度二进制输出十六进制输出1250000 0111 1101 000007D0H 25.06250000 0001 1001 00010191H0.500000000 10000000008H000000000 000000000000H表 1:温度测量结果与二进制、十六进制的关系控制器对18B20操作流程:1. 复位:首先必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在1560uS后回发一个芯片的存在脉冲。2, 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS后接收存在脉冲,存在脉冲为一个60240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。DS18B20复位初始化程序3, 控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。 本次设计只是挂接单个18B20直接跳过ROM。4, 控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。5, 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可) 4.3.5 LCD显示设计显示流程如下图所示:图4-6显示模块流程图BUSY 高电平(BUSY =1) 表示OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示OCMJ 空闲,等待接收用户命令。发送命令到OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ 请求处理当前数据线上的命令或数据。OCMJ 模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY 变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY 是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示命令,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长。通 初始化程序*函数功能:对LCD的显示模式进行初始化设置*/void LcdInt(void) delay(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 Write_com(0x38); /显示模式设置:162显示,57点阵,8位数据接口delay(5); /延时5msWrite_com(0x38);delay(5);Write_com(0x38); /3次写 设置模式delay(5);Write_com(0x0F); /显示模式设置:显示开,有光标,光标闪烁delay(5);Write_com(0x06); /显示模式设置:光标右移,字符不移delay(5); Write_com(0x01); /清屏幕指令,将以前的显示内容清除delay(5);4.4软件抗干扰技术在软件设计时采用如下措施可以有效提高系统的抗干扰能力。增加系统信息管理模块。与硬件相配合,对系统信息进行保护。其中包括防止信息被破坏,出故障时保护信息,故障排除之后恢复信息等。提高软件自身的可靠性。通常要编制一个可靠运行的应用软件,应考虑采用以下几项措施。程序设计时,将程序分成若干个具有独立功能的子程序模块。各个程序模块可以单独使用,也可与其他程序模块共同使用。各程序模块之间可通过固定的通信区和一些指定的单片进行信息传递。每个程序模块都可单独进行调整和修改,不会影响其他程序模块。采用可测试性设计。软件抗干扰以其设计灵活、节省硬件资源、降低成本等优势越来越得到广泛采用。软件抗干扰技术主要有 “软件陷阱技术”和“软件看门狗技术。结 论温度采集系统经过长时间不间断的测试,工作十分稳定,达到了设计的要求,技术性能指标良好,各项参数达到了期望值。在相同环境采集得到的一组温度数据中,传感器间的误差为 0.5 ,能满足大多数的工作需求,为了得到更高的精度,还可以软件设定912位的温度分辨率,最小可达到0.065的温度分辨率,更适应一些特殊环境下的工作要求。整个温度采集系统有体积小、工作稳定、相对成本低等优点,长时间的试验也充分证明其在实际中是可行的。更进一步的,这个温度采集系统可以按一定的要求进行外围扩展,增加一些新的功能,如温度报警、控制恒温等,满足新的需求。另外,对于整个系统的功耗方面还能进行更进一步的优化,减少电量的消耗,相对延长电池的使用时间和系统的工作时间。 致 谢本次毕业设计共经历半月时间,在老师和同学的关心帮助下才得以顺利完成。在这段时间里,不仅大大提高了我的实践经验,也使我学到了许多书本上不曾接触的知识,开阔了视野,增广了知识面,最重要的是学到了如何利用信息资源,提高了自己的自学能力。我对本课题涉及的内容本来知道的很少,经过了这次的学习和指导老师的悉心教导,现在已经对它有了深刻的认识,虽然无法达到专业水平,但也有了巨大的收获,感觉自己受益匪浅。在实物和论文完成之际,我首先谨向在我做毕业设计期间给与我无微不至的关怀、诲人不倦的老师致以崇高的敬意和真诚的谢意,其次对朝夕相处的同学在毕业设计期间给与我的支持和帮助送上我深深的谢意。 附 录附录1:实际操作效果图附录2:主板整机程序(LCD显示接收模块程序)附录3:分板整机程序(温度采集发送模块程序)开发板实际操作效果图主板整机程序(LCD显示模块程序)#include#define uchar unsigned char#define uint unsigned int#include /包含_nop_()函数定义的头文件uchar code digit11=0123456789-; /定义字符数组显示数字uchar code Str=UART DS18B20; /说明显示的是温度uchar code Temp=TEMP:; /说明显示的是温度uchar code Cent=Cent; /温度单位unsigned char flag,tltemp;/负温度标志 和临时暂存变量/*以下是对液晶模块的操作程序*/sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /忙碌标志位,将BF位定义为P0.7引脚/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i4;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;in;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部门级安全培训材料课件
- 【高考模拟】2026届普通高等学校招生全国统一考试最 新 数学模拟试卷3(含解析)
- 海藻酸盐包装力学优化-洞察及研究
- 部署消防安全培训课件
- 遨游汉字课件
- 2023-2024学年广州市东江外语实验学校八年级(下)第一次限时训练物理试题
- 2025年广东省广州市中考物理三轮冲刺《机械运动》
- 国际标准体系差异对出口型刨刀产品认证成本的结构性挤压效应
- 口腔解剖变异区域刮治效率提升的3D打印定制化工具设计
- 反向刮水器总成在极端环境(-40℃至85℃)下的热应力变形补偿机制
- 第12课《醉翁亭记》课件2024-2025学年统编版语文九年级上册
- 《激光原理及应用》全套课件
- DB11T 1497-2017 学校及托幼机构饮水设备使用维护规范
- 九年级化学(全一册)知识点总结
- ESD基础知识培训讲义
- DB11∕T 2178-2023 城市河道边坡水土保持技术规范
- 2024-2025学年小学信息技术(信息科技)六年级全一册义务教育版(2024)教学设计合集
- 2025届高考语文一轮复习:文言文主观题答题策略+课件
- 报名学车合同(2篇)
- 新高考背景下2025届高三历史一轮复习策略讲座
- 养老机构员工宿舍管理制度
评论
0/150
提交评论