嵌入式系统设计论文.doc

上传人:知****量 文档编号:43239907 上传时间:2022-09-17 格式:DOC 页数:19 大小:178KB
返回 下载 相关 举报
嵌入式系统设计论文.doc_第1页
第1页 / 共19页
嵌入式系统设计论文.doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《嵌入式系统设计论文.doc》由会员分享,可在线阅读,更多相关《嵌入式系统设计论文.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式系统设计课题名称:温室大棚温度无线测控系统班级:电信09301指导老师:王念桥课题制 罕合 程腾飞 周旋 江磊嵌入式系统设计温室大棚温度无线测控系统的设计摘要随着大棚技术的普与,温室大棚数量的不断增多,对其温度的控制就显得非常重要,而利用科学技术改善大棚温度监测条件是符合社会主义新农村建设的指导思想的,因此,开发一种能够实时、准确地处理温度信息的无线测控系统就变得很有必要。 本课题是基于单片机并采用1-wire总线技术和无线传输技术,设计一种应用于温室大棚的温度测控系统。它的原理是利用温度传感器将温室大棚的温度发给单片机处理,最后再通过无线传输模块、RS-232总线将采集的数据传送到计算

2、机,进行温度的显示、处理和报警。整个系统设计分为硬件和软件两部分。在硬件方面,对硬件的各个环节都进行了仔细的分析、选取和设计。系统以单片机AT89S51为控制核心,采用温度传感器DS18B20进行数据采集,通过无线收发模块进行无线传输。在无线接收端,利用LCD液晶显示模块进行相关数据显示,并且单片机可通过RS232接口与计算机通信,进行温度的检测与控制。在软件方面,分为下位机软件与上位机软件两部分。下位机软件采用了C51高级语言进行程序设计,实现软件编程的模块化和独立性,具有良好的可测试性和可靠性。上位机软件采用C+ Builder作为开发环境,实现与下位机通信、数据处理与显示等功能。关键词:

3、温室大棚; AT89S51; DS18B20; 温度监控; 无线传输 1.1需求分析名称温室大棚温度无线测控系统目的实现温室生产管理自动化、科学化的基本保证。通过对监测数据的分析,结合作物生长规律,控制环境条件,使作物在不适宜生长的反季节中,可获得比室外生长更优的环境条件,从而使作物达到优质、高产、高效的栽培目的。输入温度感应器、湿度感应器、亮度感应器输出手机、中央控制中心功能管理人员不需要留在现场也能监测到大棚的情况 生产成本较低功耗低性能好物理尺寸和质量适中应用系统服务器中央控制中心路由器MA8-1手机InternetGRPSMA8-6RS-232亮度感应器温度感应器湿度感应器图1.1 环

4、测温控系统1.2课题研究容本课题的任务是设计一个大棚温度无线测控系统,对温室大棚的温度进行监测和控制。本文将详细地介绍利用单片机制成的测温模块的软硬件设计和无线传输模块的具体应用,并给出温度传感器接口的软件设计方案以与上位机界面的设计方案。测量温度温度单片机数码管显示无线发射模块通过串口把数据发送大棚的温度信息显示信息无线接收模块RS232接口电平转换电脑温度电信号图1.2 大棚温度无线测控系统的信息流图2系统总体设计方案本系统主要针对温室温度,设计了以PC机为上位机,单片机为下位机的温室大棚的温度无线测控系统。综合考虑系统的精度、效率以与经济性要求这三个方面之后,最终确定下位机以AT89S5

5、1单片机为控制核心,选用性价比比较高的传感器DS18B20,实现对温度精确测量与准确控制。当单片机检测到温度超过设定值时,则启动报警措施。下位机可以通过RS-232实现和上位机的串行通讯。为了便于系统的调试、移植、修改,软件设计以C语言为基础,采用模块化设计,主要包括单片机的最小系统、数据采集模块、液晶显示模块、无线收发模块以与串行通讯模块。上位机使用C+Builder编写温度监控界面。系统的总体设计分为硬件和软件设计两方面,首先确定系统实现的功能,然后对硬件、软件分别进行规划,完成这些准备工作之后,就可以开始制作硬件电路,编写软件程序,在模块化调试结束后,进行软硬件联调,针对出现的问题对软硬

6、件进行相应的修改,直到调试成功为止。系统的总体设计流程图如图2.1所示。明确功能要求软件与硬件的功能分配硬件电路设计电路细节设计软件设计硬件调试软件调试 需要开发工具支持软硬件联调 程序固化 需要程序烧写器支持运行有问题?结束软硬件修改YN图2.1 系统总体设计流程图2.1系统工作原理单片机首先通过温度传感器DS18B20采集温室大棚的温度,再通过无线发射模块,利用单片机的串口进行编程,将测得大棚的温度一位一位地传送到监控室的接收模块中;接收模块通过RS232接口与电脑相连,把数据传给电脑。在上位机中,利用C+Builder编程,让电脑和单片机正常地进行数据传输,同时上位机界面显示大棚的温度,

7、并对异常的温度变化进行报警,实现对大棚温度的无线测控,保证了农作物在适宜的温度下生长。2.2系统组成整个无线监测系统主要分为三部分:即温度检测、无线传输和PC机对温度的监测环节。温室大棚无线传输模块测温装置监控室的电脑图2.2 系统的整体连接图(1)温度检测模块的组成在温度检测中,由单片机AT89S51主控制器所组成的最小系统以与外部接口模块主要有温度传感器(DS18B20)、LED八段码显示器,无线发射模块,各模块连接如下图所示。温室大棚无线发射模块主控制器时钟控制器复位单元电源温度传感器数码管显示图2.3 单片机温度检测模块(2)温度无线传输模块的组成无线传输系统主要有单片机AT89S51

8、组成的最小系统以与无线接收模块,液晶1602显示和串口通讯模块组成。在本设计中,在无线接收端采用1602液晶(16引脚带背光接口)进行显示。液晶是一种极低功耗的显示器件。在袖珍式仪表或低功耗应用系统中使用较多。各模块的连接框图如下图所示。液晶显示单元无线接收模块主控制器时钟控制器复位单元电源图2.4 无线传输模块(3)上位机对温度的监测实现大棚温度的显示并且实时绘制出曲线,一旦温度有异常变化马上让电脑发出报警提示。还加以整个系统的介绍和图片,方便使用者了解系统的原理和功能。电脑显 示Max232电平转换单元RS232接口无线接收模块图2.5 上位机的监测模块2.3系统性能指标本系统具有良好的可

9、靠性和经济性,能够实现对温室大棚温度的准确测量和控制,在实际应用中有一定价值。具体性能指标分述如下。l 测温围:0+50;l 测温分辨率:0.1;l 工作电压:220V;l 功耗:600mW;l 监测距离:200m左右;3硬件电路设计3.1单片机的选择在此次设计中,采用AT89S51作为系统的控制芯片。AT89S51是一个低功耗,高性能CMOS 8位单片机,片含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统与80C51引脚结构,芯片集成了

10、通用8位中央处理器和ISP Flash存储单元。3.2单片机的最小系统设计在本设计中采用了AT89S51单片机作为核心处理器,因此在电路中首先设计的是AT89S51的最小系统。AT89S51单片机的最小系统包含以下几部分。l 单片机供电电路:AT89S51需要可靠的5V供电,在电路图中的VCC和GND为供电网络标识符;l 振荡电路:AT89S51需要一个稳定的振荡电路才能够正常工作,单片机的时钟信号是用来提供单片机各种微操作的基准。在该电路中采用了12MHz的晶振作为AT89S51的时钟源;这里采用的是部振荡方式,在引脚XTAL1和XTAL2外接晶振,通过部振荡得到的时钟信号比较稳定,在电路中

11、使用较多。在下面的电路图中可以看到在晶振两侧连了两个电容C2,C3,它们是起稳定振荡频率、快速起振的作用,电容值一般为530pF。本设计中用的是30pF的电容。l 复位电路:复位电路是单片机正常运行的一个必要部分。复位操作一般有两种基本形式:上电复位和开关复位。在本设计中采用的是第二种。复位电路应该保证单片机在上电的瞬间进行一次有效的复位,在单片机正常工作时将RST引脚置低。此外通过一个按键进行手动复位,在单片机运行不正常时使用。上电后,由于电容充电,是RST持续一段高电平时间。当单片机已经在运行时,按下复位键也能使RST持续一段高电平,从而实现上电且开关复位的操作。通常我们选择的复位电容为1

12、050F,电阻为110k。在本设计中复位电容选的是47F的,电阻选的是10k的。AT89S51的最小系统电路如图3.1所示。图3.1 AT89S51的最小系统电路3.3温度传感器的选择在选择温度传感器时,应考虑的主要因素有温度的测量围、精度、测温时间、稳定性、灵敏度和经济性。(1)数字温度传感器简介数字温度传感器部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。这些芯片在检测点已把被测信号数字化了,因此在单总线上传送的是数字信号,这使得系统的抗干扰性好、可靠性高、传输距离远。由于AT

13、89S51单片机没有A/D转换器,为了准确地采集温度,一种方法是在外围电路中加A/D转换器,但是这样就使软硬件设计更加复杂化;还有一种更简单的方法就是使用数字温度传感器。所以,在本设计中,采用的是单总线数字温度传感器(DS18B20)。它能够满足本设计要求,而且它具有体积小、构成的系统结构简单并且成本低等优点,应用越来越广泛。(2)DS18B20的功能介绍DS18B20是Maxim-Dallas公司生产的一款高性能、宽测温围的串行数字接口温度传感器。它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统。DS18B20的ROM中的64位序列号是出厂前被光刻

14、好的,共分为8个字节,字节0的容是该产品的厂家代号28H,字节16的容是48位器件序列号,字节7是ROM前56位校验码。它可以看作是该DS18B20 的地址序列码, 每个DS18B20的64位序列号均不一样,这样就可以实现1根总线上并接多个DS18B20温度传感器而互不影响。在单片机容量允许,最多可以挂接256个DS18B20(实际应用中最多挂 8 个,超过 8个就需要解决微处理器的总线驱动问题)。以下将简要地介绍它的使用。1)DS18B20的性能指标 DS18B20温度传感器的主要性能指标如下:l 供电电压:3.0V5.5V;l 测量温度围:-55+125;l 测量温度精度:在-10+85是

15、0.5;l 测温分辨率可达0.0625;2)DS18B20的引脚定义与结构DS18B20具有8-Pin的SOIC封装和TO-92的封装,其引脚分布如图3.2所示。图3.2 DS18B20的引脚DS18B20的各引脚功能说明如下: l DQ:数据端;l VDD:供电电源;l GND:电源供给地;DS18B20主要有64位ROM、温度敏感元件、非易失性温度报警触发器TH和TL与配置寄存器四部分组成。配置寄存器为高速暂存存储器的第5个字节。DS18B20在工作时按此寄存器的分辨率将温度转换成相应精度的数值。DS18B20 对所测数据的转换结果以 16bit 带符号位扩展的二进制补码的形式存放在寄存器

16、中。DS18B20 通过其部的数字转换电路将模拟量转换为数字量 ,通过显示模块直接以数字方式显示温度。其典型的温度值数据如表3.1所示。表3.1 DS18B20典型温度数值温度数字输出对应的二进制码十六进制码+1251000007D0H+85100000550H+25.0625100010191H+10.1250001000A2H+0.5010000008H0000000000H-0.511000FFF8H-10.12511110FF5EH-25.062501111FD6FH-5510000FC90H3)DS18B20的电源供电方式DS18B20的电源供电方式有2种:外部供电方式和寄生电源方式

17、。工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给部电容充电,当DQ为低电平时释放能量为DS18B20供电。但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时) ,同时芯片的性能也有所降低。因此,在条件允许的场合,尽量采用外供电方式。4)DS18B20的单片机接口电路当使用AT89S51控制DS18B20进行温度测量时,只需要使用AT89S51的一个引脚和DS18B20的数据端口相连即可,其电路图如图3.3所示。使

18、用4.7k上拉电阻的作用:因为DS18B20是单总线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一个上拉即可稳定的工作。图3.3 DS18B20的接口电路3.4无线收发模块无线收发模块的一种重要的用途就是配合单片机来实现数据通讯,在本设计中就是利用它的这个功能。(1)无线发射模块电路采用ASK方式调制,就是用数字调制信号的通断。当数据信号停止时发射电流降为零,功耗很低。电路本身未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路与单片机接口,而不必考虑编

19、码电路的工作电压和输出幅度信号值的大小。模块输出功率由电压决定,电压变化时发射频率基本不变,发射电压为3V时,空旷地传输距离约2050m,发射功率较小,当电压5V时约100200m,当电压9V时约300500m,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60mA,空旷地传输距离700800m,发射功率约500mW。在本设计中,温度的传输距离大于200m。l 主要技术指标:1)通讯方式:调幅AM2)工作频率:315MHz3)频率稳定度:75KHz4)发射功率:500mW5)发射电流:350mA6)工作电压:DC 312V(2)无线接收模块无线接收模块采用的是超外差接收模

20、块,它是一款性能十分优异的高频接收模块,采用最先进的RF集成电路,超外差工作方式, 工作稳定可靠,广泛应用在各种干扰大、环境恶劣的场合。实物图如图3.5所示。l 适用范围:1)车库门无线控制系统 2) 各类防盗系统3) 工业遥控、遥测4)低波特率的数据传输l 主要技术指标:1)通讯方式:调幅AM2)工作频率:316.8MHz3)频率稳定度:75kHz4)工作电流:5mA5)工作电压:DC 5V6)输出方式:TTL电平 3.5串口通信(1)通信接口的选择在本设计中,选择RS-232接口就可以满足通信需求了。1)RS-232串行接口目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS

21、-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通信。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5+15V,负电平在-5-15V电平。当无数据传输时,线上为TTL电平,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。完整的RS-232接口有25根线,采用一种25芯(针)的插头座,彼此连接十分方便。现在经常采用一种9针的插座来互相连接,因为25条线中最经常使用的只有9条线。由于一般的微机中都有RS-232接口,利用RS-232通信进行测量,连接、携带、运输方便。在那些临时

22、、快速测量而测量的通道数又不多的场合下,利用RS-232接口的测量模块十分方便。其传送距离最大为约15m,最高速率为20kb/s。在单片机通信中最简单的通信只需连这三根线。由于单片机的串行发送线TXD和接收线RXD是TTL电平,而PC机的COM1或COM2的RS-232C连接器(D型9针插座)是EIA电平,因此单片机需加接MAX232芯片,通过串行电缆线和PC机相连接。单片机和PC机的连接如图3.6所示。适基本的数据传送引脚TXD:数据发送引脚;RXD:数据接收引脚;GND:信号地线;图3.6 单片机和PC机的连接图2)EIA标准:它是以正负电压来表示逻辑状态,而TTL以高低电平来表示器逻辑状

23、态。(2)通信协议的设计在进行数据通信时,必须解决好两个方面的问题:一是可靠性,二是速度。可靠性是第一位的,速度只是在可靠的基础上的追求。可靠快速传输的实现,需要上、下位机软件以与通信协议等各个环节的可靠和相互配合。在串行通信的硬件设计完成后,通信双方(在本系统中指单片机和上位机)必须约定通信协议,否则将无法保证通信数据的可靠性,从而失去通信的意义。协议一方面要规定通信的基本参数,如通信波特率、数据位数、停止位数与奇偶校验的方式等,更重要的一方面是要规定双方传输数据的格式,以与传输数据时控制数据流的方式。现约定系统的通信协议如下: 1)串行通信波特率为1.2kbps;2)数据传送格式为1个起始

24、位,8个数据位,1个停止位;3)无奇偶校验;4)串行通信方式采用查询方式;4软件设计4.1下位机软件设计下位机采用C51在keil uvision3的开发环境进行编程,在仿真软件中调试成功后,再把生成的HEX文件烧到单片机中,在真实的硬件环境下进行测试。具体设计主要分两部分,一是温度传感器的驱动和测温程序,另一个是利用单片机串口编写的无线传输程序。(1) 温度传感器接口软件设计主机(单片机)控制DS18B20完成温度转换要经过三个步骤:每一次读写之前都要DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线

25、下拉至少480,然后释放,当DS18B20受到信号后等待1560,然后发出60240的存在低脉冲,主CPU收到此信号表示复位成功。流程图如图4.1所示。初始化DS18B20开始应答脉冲?发跳过ROM的命令(0XCC)延时YN发转换温度的指令(0X44)跳过ROM读取暂存器中的数据(0XBE)读取第一、二字节即为温度数据图4.1 下位机软件设计的流程图l 初始化:总线控制器发出一个复位脉冲(一个最少保持480的低电平信号),然后释放总线,进入接收状态。单线总线由4.7k的上拉电阻拉到高电平。探测到I/O引脚上的上升沿后,DS1820等待1560,然后发出存在脉冲(一个60240的低电平信号)。图

26、4.2 DS18B20初始化时序复位子程序如下:void reset () DS = 0;Delay(90);/ 精确延时大于480,当总线停留在低电平超过480,总线上所以器件都将被复位DS = 1;/产生复位脉冲后,微处理器释放总线,让总线处于空闲状态Delay(4);l ROM操作命令主机收到DS18B20在线信号后,就可以发送四个ROM操作命令中的一个,这些命令字均为8位的16进制数(最低位在前),现将这些命令说明如下。33H:读ROM,通过该命令主机可以读出ROM中8位系列产品代码、48位产品序列号和8位CRC码;55H:匹配ROM,多片DS18B20在线时,主机发出该命令和一个64

27、位数列,DS18B20部ROM与主机数列一致者,才响应主机发送的寄存器操作命令,其他DS18B20等待复位。该命令也可以用在单片DS18B20情况。CCH:跳过ROM 序列号检测命令,对于单片DS18B20在线系统,该命令允许主机跳过ROM序列号检测而直接对寄存器操作,从而节省时间。l 存贮器操作命令44H:开始温度转换l DS18B20 的读写操作1)写时间片,包括写0时隙和写1时隙。所有写时隙至少需要60,且在2次独立的写时隙之间至少需要1的恢复时间,两种写时隙均起始于主机拉低总线。写时序如图4.3所示。 图4.3 DS18B20写时序2)读时间片,1Wire总线器件仅在主机发出读时隙时,

28、才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时隙,以便从机能够传输数据。所有读时隙至少需要60,且在2次独立的读时隙之间至少需要1的恢复时间。每个读时隙都由主机发起,至少拉低总线1。主机在读时隙期间必须释放总线, 并且在时隙起始后的15之采样总线状态。时序图如图4.4所示。(2) 温度无线传输软件设计图4.4 DS18B20读时序此模块的软件设计主要是要确保接收到正确的温度数据,所以在程序中要加一些数据头进行校验。1)发送温度程序:while(1) /温度转换,获得温度SBUF=0xaa; /以下这段程序是为了防止无线接收模块受到干扰,接到的数据不对 while(!TI);

29、/所以加上两个数据头,只有在正确接收到它俩后,才能开始接收我们需要的数据 TI=0;SBUF=0x55;while(!TI);TI=0;SBUF=table3a; /将测得的温度值的各位与小数点逐位的发送出去while(!TI);/百位TI=0; /依次发送其他各位2)接收温度程序void receive()while(!RI);RI=0;i=SBUF;if(i=0xaa) /判断是否接收到0xaa,接收到的话再执行下去while(!RI);RI=0;i=SBUF;if(i=0x55) /再继续判断是否接收到0x55,接收到的话就可以继续接收正确的数据write_(0x80);while(!R

30、I);RI=0;a=SBUF; /接收百位write_data(a); /液晶显示百位SBUF=a; /再把百位发送给电脑while(!TI);TI=0;delay(100); /延时 /个位、十位小数点依次发送4.2上位机软件设计上位机监测界面采用C+Builder进行编写。4.2.1 C+Builder的介绍C+Builder 是Borland公司98年推出的全新32位Windows开发工具。它使用简便,功能强大,效率高等特点,而且它还结合C+语言所有优点.是一个Windows环境下基于C+语言进行快速程序开发的集成开发环境,提供了一个强大的可视化控件库,能够使用C+语言方便、快速、高效地

31、进行Windows应用程序开发,尤其是开发界面、数据库等Windows应用程序更加快速、高效。Borland C+ Builder是一种面向对象的可视化应用程序开发工具,为程序开发人员提供了十分轻松而快捷的开发环境。它以其友好的界面设计和方便的编程实现,广泛应用于工程实践中。C+ Builder作为一个开发快、界面友好的应用软件,已经广泛应用于工程项目的开发中。然而在工程中十分常见的就是实验数据的串行传输和可视化处理。4.2.2关键技术用C+Builder具体实现串口的通信,必须掌握C+Builder中对串口操作的方法,每种语言都提供了对串口读写操作,方法一般各有不同,在C+Builder6.

32、0环境下串口的实现方法:利网上的串口通信控件TComm,编程最简单方便,且可靠。但无论用哪种方法来开发串口通信程序,其实现步骤差不多,如图4.5所示。其中使用API通信函数实现步骤稍有不同,它是先打开串口,在得到串口句柄后,再进行串口参数的配置。打开串口接收数据和发送数据程序关闭串口配置串口参数图4.5 串口通信程序实现步骤本设计使用的是第四种方法,利用TComm控件实现串口通信。TComm控件可以实现DTR/DSR、RTS/CTS硬件流控制,是比较完善的串口控件。TComm控件的串口通信参数设置与MSComm类似默认情况下。TComm控件接收和发送数据支持字符串和字节两种传输模式。在接收和发

33、送数据前需要初始化串口,用SetPortOpen()方法打开串口,退出程序时用CloseComm()方法关闭串口。/打开串口、接收和发送数据的语句Comm1-PortOpen=true; /打开串口mReceive-Text = Comm1-Input; /接收数据mTransmit-Text= Comm1-Output; /发送数据/ 接收下位机温度与将获得的数据绘制成曲线的程序C+Builder提供了一个功能强大的可视化控件TChart,非常便于数据的图形化显示。通过设置组件属性,可以生成点图、线图、饼图、柱状图、区域图,能够显示一维序列或二维序列,可以自由设定刻度线和坐标。给序列添加一个

34、数据只需调用AddX、AddY、AddXY方法,非常方便。因为需要得到温度的实时曲线图,所以在定时器timer的OnTimer事件中编写程序,关键的语句如下:if (Comm1-PortOpen) /判断串口是否打开 mReceive-Text = Comm1-Input ; /把接收到的温度放到一个memo里 Buf = Trim(Comm1-Input); /删除了string字符串首部和尾部空格的字符串 ReceiveStr = ReceiveStr + Buf; /不断加上受到的数据 do Dot= ReceiveStr.Pos(); /检查空格的位置 if (Dot=0) break

35、; ReceiveDatai = StrToFloat( ReceiveStr.SubString(1,Dot-1); /数据放进数组 ReceiveStr =ReceiveStr.Delete(1,Dot); /留下未处理的数据 Chart1-Series0-AddXY(i,ReceiveDatai,i,clRed); /把接收到的温度绘成曲线 i=i+1; /接收下一个数据 while (1); /直到找不到空格ReceiveStr = ; /存储接收到的数据和对应的时间关键的语句如下:FILE *fp;fp=fopen(.data.txt,a); /把数据存放到data.txt的文件里f

36、printf(fp,%s%sn,mReceive-Text,TimeToStr(Time();fclose(fp);5系统调试与结果分析5.1硬件电路的调试5.1.1仿真(1) 仿真软件的介绍Proteus 是一款用于电路分析与实物仿真的软件。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能,具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。(2) 测温环节的仿真在软件Proteus里画出电路图,主要是把数码管连上,把温度传感器连到对应的管

37、脚上;再把程序放进去,点击运行进行仿真。仿真图与结果如图5.1所示。图5.1 测温环节仿真(3) 串口通信环节的仿真在本例中是利用单片机的串口进行无线发送和接收,所以先进行串口调试。把发射板的TXD和接收板的RXD相连,分别把发射程序和接收程序下载到芯片中,测试接收板的液晶能否显示正确的温度。仿真电路图如图5.2所示。图5.2 串口通信仿真5.2系统可靠性与抗干扰设计5.2.1软件可靠性软件可靠性主要包括两方面的含义:一是在规定的条件下,软件不引起系统失效的概率;二是在规定的周期,在所述条件下程序执行所要求的功能的能力。在本设计中,主要涉与的是与第二方面有关的容。51单片机不适合浮点数运算,甚

38、至尽量不要用浮点数,因为51单片机部没有浮点运算单元,实现的浮点运算都是软件实现的,效率不高,精度也不高。但在本设计中由于温度值是浮点型,所以需要对它加以处理。在实验初期,对从温度传感器中读出的温度进行转换的函数是如下编写的:c=read_byte(); /读低八位 e=read_byte(); /读高八位temp=e; temp=8; temp=temp|c; tt=temp*0.0625; temp=tt*10; 在进行调试的时候,发现程序执行tt=temp*0.0625花的时间就比较长;0.0625其实是十六分之一,把这个数右移4位就行了,单片机处理移位指令比较容易,左移或右移一位只需用

39、一个周期数,相比处理浮点数,对单片机来说,就轻松多了。改进后的程序如下:c= read_byte(); /低八位;e=read_byte(); /高八位;e=e4; /低八位的高四位其实是转换后温度的个位m=c|e; /移位后的俩数相或得到的是温度的整数部分;n=c&0fh; /与0f与完后,剩下低八位的低四位;p=n4; /移位后获得温度值的小数部分;temp=(m+p)*10; /最后,把转换后的温度值扩大十倍,变成整数,方便显示程序中进行个十百位的分离;l 结论:在编写程序时,如果对于同一个问题的实现有多种方法,应对它们加以分析、比较,选择对单片机运算要求尽量低的、指令周期短的算法实现。

40、采用上述修改,对系统软件的可靠性有一定提高。5.2.2系统抗干扰设计(1) 无线模块的抗干扰措施1) 合理的通讯速率无线数据模块的最大传输数据速率为9.6kbps,一般控制在2.5k左右,过高的数据速率会降低接收灵敏度与增大误码率甚至根本无法工作。在本设计一开始使用的就是9.6kbps的波特率,受到的数据就有乱码,改为1.2kbps就正常了。2) 合理的信息码格式单片机和无线模块工作时,通常自己定义传输协议,不论用何种调制方式,所要传递的信息码格式都很重要,它将直接影响到数据的可靠收发。码组格式推荐方案:前导码同步码数据帧。前导码长度应大于是10ms,以避开背景噪声,因为接收模块接收到的数据第

41、一位极易被干扰(即零电平干扰)而引起接收到的数据错误。所以采用CPU编译码可在数据识别位前加一些乱码以抑制零电平干扰。数据帧不宜采用非归零码,更不能长0和长1。同步码主要用于区别于前导码与数据。有一定的特征,好让软件能够通过一定的算法鉴别出同步码,同时对接收数据做好准备。3) 单片机对收发模块的干扰51系列单片机工作的时候,会产生比较强的电磁辐射,频率围在9MHz-900MHz,因此它会影响任何此频率的无线接收设备的灵敏度,解决的方法是尽量降低CPU 晶体的频率。测试表明:在1MHz晶体的辐射强度,只有12MHz晶体时的1/3,因此,如果把晶体频率选择在500k以下,可以有效降低CPU的辐射干

42、扰。另外一个比较好的方法是:将接收模块通过一个3芯屏蔽电缆(地,+5V,DATA,屏蔽线的地线悬空)将模块引出到离开单片机2米以外,则不管51CPU使用哪个频率的晶体,这种干扰就会基本消除。(2) 电源的抗干扰设计电源质量的高低直接关系到系统能否正常工作。所以可以采取以下措施:加隔离变压器,它可以通过屏蔽层减少分布电容,以提高抗共模干扰的能力;加低通滤波器,减少电源高次谐波干扰。在本设计中给电源加了滤波电容后,发现电源变的比以前稳定。(3) 配置去藕电容 在应用系统各个器件适当配置去藕电容是一种常规每个集成电路芯片在它的电源端配一个0.1F的瓷电容器。电源输人端配接大于100F的电解电容器。单

43、片机复位端配接0.01F的去藕电容。(4) 软件抗干扰措施在程序中多设置些接受标志,发些冗余码,再加上算术运算,把编码编的长一点的话,出错的几率也会小很多。1) 设置软件陷阱当由于干扰使操作系统失控而进入非程序区时,用引导指令强行将捕获到的乱飞程序引向复位入口地址,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。2) 看门狗技术看门狗技术是一种通过不断监视程序循环运行时间使程序脱离死循环困境的软件抗干扰技术。它通过不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序回到 0000H 处安排一段出错处理程序,使系统运行纳入正轨。本设计

44、使用AT89S51芯片,它的部设置了看门狗电路。心得体会本次课设体会在于作品是几个人共同协作的成果。这种合作方式既有缺点又有优点。优点是各个人共同寻找资料、设计整体思路与各个单元模块的搭建,能提高效率,且将不同的方案从各个方面还有整体上进行分析对比,更有利于找到最优的解决方案。我们五人相互讨论,相互交流,对课题的理解有了一致的想法。我们最终选择了相对合理的现行方案,对各个模块的划分以与具体功能有了具体的分配。但是同时,五个人的工作分配、意见的统一也为设计带来了另一方面的问题。总之,此次课程设计首先锻炼的是我们的团结合作的能力。本次课设提供了我们一个对所学理论知识融会贯通的机会。虽然以前接触过单片机,接触过传感器和LED,但从来没有亲自利用它们组装一个有目的嵌入式系统,所以这一过程中的芯片选用、电路原理、搭建方式,是超出课本上的理论知识围的。对于一个新接触的芯片,由完全不了解,到了解它的功能、结构、接入方式,是一个有难度但更有喜悦和收获的过程,收获的是

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁