毕业论文基于单片机的数字温度监测系统.doc_第1页
毕业论文基于单片机的数字温度监测系统.doc_第2页
毕业论文基于单片机的数字温度监测系统.doc_第3页
毕业论文基于单片机的数字温度监测系统.doc_第4页
毕业论文基于单片机的数字温度监测系统.doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

广州工程技术职业学院毕业设计(论文)题目:基于单片机的数字温度监测系统系 (院): 信息工程系 专业班级: 09级 计算机应用技术(1)班 学生姓名: 学号: 指导教师: 完成日期: 摘 要随着现代工农业的发展和人们对生活环境要求的提高,人们需要对某些特定的环境温度进行准确地监测,进而控制控制温度。所以人们需要一种适用范围广且性价高的数据采集系统。采用单片机来对环境温度进行采样不仅具有精确度高、易于控制,易于扩展等优点,而且可以通过通信接口与PC机进行实时通信,从而达到PC机与单片机配合工作。PC机用于对采集到的数据进行复杂处理,单片机用于精确地采集温度,从而降低了单片机的单机工作量,提高了稳定性,提高了系统的整体性能。温度控制在生产过程中占有相当大的比例,温度检测技术已经比较成熟。传统的测温元件有热电偶和热敏电阻。而热电偶和热敏电阻测出的一般都是电压,再转换成对应数字量,这些方法相对比较复杂,需要比较多的外部硬件支持。 本设计采用美国DALLAS半导体公司推出的一种智能数字温度传感器DS18B20作为检测元件,温度范围为-55125 C,最高分辨率可达0.0625 C。DS18B20可以直接读出环境温度值,而且采用单线接口与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。本文介绍一种基于AT89S52单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0+100,使用LED模块显示.配合上位机软件可以设置温度报警上下限,温度记录等功能。从而实现了数据处理功能强大,显示直观,界面友好,性价比高的数字式温度检测系统。关键词:温度测量;DS18B20;AT89S52;PC通信AbstractWith the development of modern agriculture development and the people to the living environment, people need to be specific to certain temperature accurately monitor and control, temperature control. So people need a wide application range and the highest bid data acquisition system.The use of single-chip microcomputer to the ambient temperature sampling not only has high accuracy, easy to control, easy to extend the advantages, but also through communication interface and PC communications in real time, thereby achieving the PC and SCM with. PC machine is used for the data collection for complex processing, single chip microcomputer is used to precisely collect temperature, thereby reducing the SCM Single workload, improves stability, improving the overall performance of the system.Temperature control in the production process has quite large proportion, temperature detection technology is relatively mature. The traditional temperature measuring component thermocouple and thermal resistance. While the thermocouple and the thermistor measured are generally voltage, then converted into corresponding digital quantity, these methods are relatively complex, need more external hardware.This design uses the American DALLAS semiconductor company introduced an intelligent digital temperature sensor DS18B20 as a detecting element, a temperature range of - 55 125 degrees C, the maximum resolution of up to 0.0625 degrees C. DS18B20 can directly read out the temperature value, and adopts the single interface is connected with the single chip microcomputer, a decrease of the external hardware circuit, with low cost and easy to use features.This paper introduces a kind of SCM AT89S52 based on a temperature measurement and alarm circuit, the circuit uses DS18B20 as temperature monitoring element, the measuring range of 0 DEG C to + 100 C, the use of LED display modules. With PC software can set temperature alarm limits, temperature records and other functions. In order to achieve the function of data processing, display and intuitive, user-friendly, cost-effective digital temperature detection system.Keywords:Temperatur measurement; DS18B20; AT89C52; PC communication 目 录第一章 绪论11.1课题背景及意义11.2 课题设置目的11.3 主要实现功能11.4 课题研究内容1第二章 总体方案设计22.1 基本原理22.2 总体方案设计22.2.1 温度传感器的选择22.2.2 主控芯片的选择22.2.3 显示方式的选择32.2.4 通信模块的选择4第三章 开发工具53.1 Proteus软件53.2 Keil软件7第四章 详细设计84.1 硬件设计84.1.1 温度采集电路84.1.2 显示电路94.1.3 单片机基础电路104.1.4 USB通信模块114.2 软件设计134.2.1 下位机程序设计134.2.1.1 DS18B20初始化及数据处理134.2.1.2 通信端口初始化及数据发送174.2.1.3 温度显示214.2.2 上位机程序214.2.2.1 MSComm控件及数据相关处理21第五章 调试26结 论28参考文献29附 录30附录A 下位机程序清单30附录B 上位机代码清单36广州工程技术职业学院2012届毕业设计(论文)第一章 绪论1.1课题背景及意义随着技术的不断开发与应用,近年来单片机发展十分迅速,从原始的4位机到现在最新的32位单片机,其中8位单片机的技术最为成熟。一个以微机应用为主的新技术革命浪潮已经到来,单片机的应用已经渗透到通信、汽车、家电等各个方面。传统的温度采集方法不仅费时,而且精度差,很多重复的动作需要人力不断重复地完成。传统的温度采集方式已不能满足高精度,高速度的控制要求,从而导致温度的控制更加不如人意。如传统的液体温度计,最大的缺点就是精度不高,而且需要人工读数计数;再如热电偶和热敏电阻,测出的都是模拟量,需要用到复杂的外设来进行转换,从而使精度和速度都受到了不小的影响。随着测量技术的发展,新一代的数字式温度传感器的面世,使得温度测量更加地准确且容易。多种控制方式也快速地发展起来。如:PID控制、模糊控制等,这些控制技术提高了控制精度,不但使控制变得简便,而且降低了产品的成本。本系统使用S52单片机,外接数字式温度传感器DS18B20,使用USB通用串行接口与微机通信,构成本系统下位机的核心。上位机软件使用VB6.0开发,其中MSComm控件是上位机软件的核心部件。1.2 课题设置目的巩固、加深单片机应用的知识,提高综合及灵活运用所学知识实现系统各项功能的能力;培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。1.3 主要实现功能本课题研究的重点是基于单片机的温度监测系统,系统由两部份构成:下位机系统和上位机系统。下位机系统主要实现的功能有:a) 处理从DS18B20传入的信号b) 显示温度当前c) 向PC发送实时数据上位机系统主要实现的功能有:a) 接收从单片机发送过来的信息b) 对信息进行多种处理411.4 课题研究内容1) 设置与读取DS18B20对硬件结构简单的单线数字温度传感器DS18B20进行操作,需要用较为复杂的程序完成。编程时必须严格按照芯片数据手册提供的相关操作顺序进行,读、写时间片段程序要严格按照要求编写。2) 温度显示单片机的性能强大,但是并不“聪明”,不能把传感器转换过来的温度直接直接传给I/O口进行显示,需要对数据进行正确的处理才能正确显示。在硬件连接上,I/O口的特性也要考虑。3) 微机USB口通信现有的大多数书籍与资料都是介绍RS232串口通信,介绍USB通用串行总线通信的资料相对较少。但是考虑到自身的情况及现在新型的微机主板已经不带DB9接口,所以使用USB接口作为通信端口。在收发过程中,要严格遵守相关的通信协议,否则,无法正确通信。4) 上位机系统上位机系统的主要功能是完成对接收到的数据进行处理,其中显示数据是最基础的功能。设置控制功能,对单片机实行控制。第二章 总体方案设计2.1 基本原理单片机作为主控芯片,从温度传感器传送回来的数据进行处理,再发送到LED数码管进行显示。当连接上PC机时,显示完温度后再把数据通过PC通信模块发送到PC。由上位机软件进行进一步地处理。2.2 总体方案设计2.2.1 温度传感器的选择方案一:采用热敏电阻,如铜电阻、铂电阻。可以满足40摄氏度到90摄氏度的测量范围,但是热敏电阻的阻值与温度的关系非线性严重、元件的一致性差,互换性差、易老化,稳定性较差,只能检测出10-6的温度变化,精度太低。方案二:模拟温度传感器,常见的模拟温度传感器有LM3911、LM335、LM45、AD22103电压输出型、AD590电流输出型等。但是芯片输出的都是模拟信号,必须通过A/D转换成数字信号后才能传给单片机进行相关处理。这样使得外部设备的复杂度大大增加,且转换之后可能会出现较大的延时或测量到的精度变低。方案三:采用数字温度传感器,如MAX6575/76/77数字温度传感器、DS1612、DS18B20等。以DS18B20为例,其输出的是数字信号,便于单片机处理及控制,省去传统测温方法的很多外围电路。且该芯片的物理、化学性质很稳定,它能用做工业测温元件,此元件线性较好。在0100摄氏度时,最大线形偏差小于1摄氏度;采用单一总线传输数据,能简易实现多点测温。采用温度芯片DS18B20测量,可以体现系统芯片化这个趋势,符合数字化时代的特点。部份功能电路的集成,使得总体电路更简洁,塔建与焊接电路时更快,更不容易出错。而且该芯片的抗干拢能力强,测量精度高。本系统采用DS18B20作为温度传感器。2.2.2 主控芯片的选择方案一:PIC单片机。PIC系列单片机是Microchip公司生产的,主要有8位、16位、32位单片机。其中8位单片机的市场占有率尤为特出。PIC16F877A是PIC8位单片机系列中较为先进且常见的一款。该型号有8KB 14位FLASH程序存储器、368B RAM、内置256B EEPROM、2个8位计数器、1个16位计数器、2个CCP(捕捉、比较、脉宽调制)、10位多通道模/数转换器、14个中断源、8级深度的硬件堆栈、USART总路线、14位指令宽度等功能,有较高的性价比。方案二:AT89S52 8位单片机。采用AT89S52八位单片机实现。单片机软件编程的自由度大,能实现与PC通信,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。PIC系列8位单片机的市场占有率从1990年的第20位上升到2010年的第一位,可以说是8位单片机家族的“新贵”。这与它的优越性能是直接相关的。但是从资料的丰富程度来说,PIC在国内能找到的相关资料和书籍比较少,应用例子也相对较少;且PCI单片机的价格相对于51系列单片机来说,高了不少。AT89C51单片机是8位单片机中的“经典”,AT89S52继承了AT89C51的所有优点,在工艺和功能上都有不少的提升,延续了C51的经典。在资料上,可以说是极其丰富,大多数单片机入门的书籍都是用C51单片机为例来介绍应用,自然而然应用例子就丰富了起来,有大量的例子可以参考;在价格方面,AT89S52在市场上的零售价一般都在58元,可谓低廉。本系统由于使用到上位机,大多复杂的数据处理由上位机完成,所以没有必要使用性能较为强大的PIC系列单片机;出于成本方面考虑,例如流行的PIC16F877A的零售价一般在1525元,价格比AT89S52高了不少;C51的资料比PIC丰富很多。所以本系统采用AT89S52作为主控芯片。2.2.3 显示方式的选择方案一:LED七段数码管显示。LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。LED数码管有共阳与共阴之。如图2-1。图2-1 七段数码管方案二:LCD液晶显示屏。例如常用的1602字符型LCD,是一种专门用于显示字母、数字、符号等点阵式LCD,当然也是显示汉字的最好选择。目前常用16*2、20*2和40*2行等的模块。本系统的显示部分只需要显示当前的温度,都是数字,没有其他字符;同时出于成本的考虑,字符型LCD的价格一般较高;控制的复杂度方面,控制LCD显示远比LED复杂。所以选择使用LED数码管作为显示设备。2.2.4 通信模块的选择方案一:串口通信模块。RS232是常用的接口,配合使用的转换芯片是MAX232。RS232接口在TxD和RxD上:逻辑1(MARK)=-3V-15V ,逻辑0(SPACE)=+3+15V。所以与单片机通信时,需要进行TTL电平转化。并且传输速度慢,容易受到共模干扰。使用该接口进行通信时需要MAX232来进行转化。方案二:USB通信模块。USB接口配合PL2303芯片一起使用。USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps, USB3.0是5 Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点。USB自从1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。触点功能(主机)功能(设备)1VBUS (4.755.25 V)VBUS (4.45.25 V)2D-D-3D+D+4接地接地USB采用四线电缆,USB 信号使用分别标记为 D+ 和 D- 的双绞线传输,它们各自使用 半双工的差分信号并协同工作,以抵消长导线的电磁干扰。,另两根为下游(Downstream)设备提供电源,电脑USB端口可以提供5V,最大电流为500mA。出于自身的条件与方便开发,本系统采用USB通信模块。图2-2 下位机系统框图AT89S52LED数码管显示DS18B20复位电路时钟电路USB通信模块综上,下位机系统框图如下:第三章 开发工具3.1 Proteus软件Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 该软件的特点是:1. 实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51系列、AVR、PIG等常用的MCU)及其外围电路(如LCD、RAM、ROM、键盘、LED、A/D、D/A)组成的系统仿真。2. 提供了多种虚拟仪器。如示波器、逻辑分析仪、信号发生器等,调试非常方便。3. 提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件。4. 具有强大的原理图绘制功能。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用阉脱节的矛盾和现象。同时,当硬件调试成功后,利用Proteus ARES软件,很容易获得其PCB图,为今后的制造提供了方便。四大功能模块1. 智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件。 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件。 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间。 支持总线结构:使用总线器件和总线布线使电路设计简明清晰。 可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 图3-1 PROTEUS ISIS界面2. 完善的电路仿真功能(Prospice)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真。 超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入。丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等。 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等。 3. 独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器。 支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信。 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。4. 实用的PCB设计平台原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计。先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理。 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览。 多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。3.2 Keil软件Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。安装MDK组件后,可以用于ARM开发。 第四章 详细设计详细设计包括硬件设计和软件设计。4.1 硬件设计硬件设计主要包括温度采集电路设计、显示电路设计、单片机基础电路设计、USB通信模块四个部分。4.1.1 温度采集电路温度芯片DS18820是Dallas公司生产的一线式数字典度传感器,具有3引脚TO-92小体积封装形式和16-PIN SSOP超微型贴片封装。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。测量温度范围为-55+125,在-10+85范同内,精度为+0.5。其工作电源既可在远端引入,也可以采用寄生电源力方式产生。CPU只需一根端端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。由于每一个DS18B20都有唯一系列号,因此多个DS18820可以存在同一条单总线上。图4-1 DS18B20引脚图DS18B20有两种供电模式:寄生供电和外部供电。在寄生电源模式工作时,会在I/O口或VDD引脚处于高电平时“偷”能量。当有特定的时间和电压需求时,I/O要提供足够的能量。寄生供电有两个好处:1、进行远距离测温时,无需本地电源;2、可以在没有常规电源的条件下读ROM。要DS18B20能够进行精确的温度转换,I/O口必须在转换期间保证电压。DS18B20 的工作电流达到1mA,以至于仅靠4.7K上拉电阻提供电源比较勉强,当要接多个DS18B20时更不可能。DS18B20GNDVDDVCCI/O4.7k图4-2 寄生供电第二种是外部供电,从VDD引脚接入一个外部电源。这样做的好处是I/O线上不需要加强上拉,而且总线控制器不用在温度转换转换期间总是保持高电平。这样在转换新时期可以允许在单总线上进行其他数据往来。同时,在单总线上可以挂任意多片DS18B20。但要注意加上外部电源时,GND引脚不能悬空。DS18B20GNDVCCVCCI/O4.7k图4-3 外部供电本系统采用外部供电模式。4.1.2 显示电路本系统采用四位共阳极LED数码管来作为显示设备。利用单片机的P0口与P2口的部分引脚构成了4位LED数码管驱动电路。LED数码管采用共阳型,使用4只PN8550 PNP型三极管作为片选端的驱动。PN8550的发射极E接上+5V电源,基极B接上P0相应的I/O口,集电极C接上LED数码管的各位公共端。当P0.0P0.3中某个口输出低电平时,电流就注入对应位的公共端,LED数码管被点亮。由于P0口没有内置上拉电阻,所以在输出时外挂上一个10K的上拉排阻,同时,为了保护P0口给每个P0口接上一个1K的限流电阻,以保护P0口不会被烧坏。图4-4 显示部分电路图4.1.3 单片机基础电路单片机的基础电路包括复位电路和晶振电路.电路如下:图4-5 基础电路本系统使用11.0592MHz的石英晶振,目的是为了在与PC进行通信时方便波特率的计算与设置。从而较方便地完成通信。4.1.4 USB通信模块PC机具有强大的监控和管理能力,而单片机则具有快速及灵活的控制特点,通过PC机的RS232串口技术与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB接口有着一系列串口无法比拟的优点,USB接口正在逐步取代RS232串口,成为外设接口的主流。现在大多数的笔记本电脑和部分新型台式机主板出于各种原因,RS232串口已经不再设置。这都约束了RS232串口与PC联机的单片机设备和使用。所以本系统使用USB接口来通信,从而达到即插即用的特点。现在在市场上能找到的一些简易USB通信模块都是使用虚拟串口技术来实现通信。该技术最大的特点就是在PC虚拟出一个COM口,其COM口拥有自己的串口号,逻辑上与接上USB通信模块的USB口相联,从而达到通信的目的。这种方法最大的优点就是兼容性强,能方便地把RS232串口升级成USB口通信,但不需要更改原有的通信协议,唯一的不足就是要安装上对应的驱动才能使用USB通信模块。本系统使用PL2303HX来作为USB通信模块。PL2303HX采用28脚贴片SOIC封装,工作频率为12MHZ,全速兼容USB 2.0通信协议,可以直接将USB信号转换成串口信号,波特率从751228800,有22种波特率可以选择,通信波特率高达6Mb/s,并支持5、6、7、8、16共5种数据比特位,可调节的35V输出电压等性能。接口电路如下:图4-6 PL2303接口电路图由于USB通信芯片十分小,都要是采用超微型贴片封装,如果是自己动手焊接具有很高的难度,极容易损坏芯片及其他元件。出于这些考虑,决定直接购买市面上已经做好完速通信模块来使用,从而降低风险及制作难度。模块如下:图4-7 USB通信模块USB转串口使用时仅需三个引脚,分别是GND,TXD,RXD。GND接单片机的GND,TXD接单片机的RXD即P30,RXD接单片机的TXD即P31。同时,该模块还提供有5V和3.3V供电,可以方便地为系统提供电源,也能为日后的扩展提供便利。使用前需要安装PL2303所配套的驱动程序才能正常地使用该模块。安装成功后如下图:图4-8 驱动成功安装后虚拟出的串口COM6就是PL2303驱动程序虚拟出来的串口,该串口如普通串口一样地使用。以上介绍的是本系统的几个重要组成部分,这几个部分共同组成了本系统的主体。4.2 软件设计软件设计主要分成两个部分:下位机软件和上位机软件。下位机软件由C语言来编写,通过C51编译器编译成HEX文件,再由编程器把程序文件烧入AT89S52芯片当中。上位机软件由VB6.0来编写,运行在PC机系统当中,用于接收和处理单片机发送过来的数据,并且发送控制信号控制单片机的工作。4.2.1 下位机程序设计下位机程序主要包括DS18B20初始化及数据处理、通信端口初始化、LED显示、收发数据。这四个部分共同构成下位机程序。4.2.1.1 DS18B20初始化及数据处理DS18B20采用单一总线型设计,外部电路十分简洁,绘制作电路板时提供了不小的便利。但同时,简洁的外部电路需要用到比较复杂的软件程序来控制,从而使它正常稳定地工件。在对DS18B20进行读/写编程时,必须严格保证读/写时序,否则将无法读取测温结果,根据DS18B20通信协议,单片机控制DS18B20完成温度转换必须以下步骤进行:每一次读/写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求单片机将数据线下拉480s-960s,然后释放,DS18B20收到信号后等待16-60s,然后发出60-240s的存在低脉冲,单片机收到此信号表示复位成功。图4-9 DS18B20初始化复位代码如下:图4-10 复位代码段完成复位后,DS18B20进入了等待接收ROM操作命令或RAM操作指令。所有ROM操作命令均为8位长。本系统使用到的ROM操作指令和RAM操作指令有:1. Skip ROM( 跳过ROM )CCh在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。2. Read Scratchpad(读暂存存储器)BEh这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。3. Convert T(温度变换)44h这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。向DS18B20写入操作命令时,涉及到了写1操作;讲习取测温数据时,涉及读1操作。程序如下:图4-11 读数据和写命令代码段单片机无论是发送操作命令还是接收数据,都是数据都是二进制的形式,所以需要一位位地读,一位位地写。图4-12 发送命令及读取温度代码段采用12位分辨率进行A/D转换时,最少需要750ms的等待时间,才能完成一次转换。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。图4-12 高速暂存存储器分配图温度/0C二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01111101000007D0H+25.06250 0 0 0 0001100100010191H+10.1250 0 0 0 00001010001000A2H+0.50 0 0 0 0000000010000008H00 0 0 0 0000000000000000H-0.51 1 1 1 111111111000FFF8H-10.1251 1 1 1 111101011110FF5EH-25.6251 1 1 1 111001101111FE6FH-551 1 1 1 110010010000FC90H图4-13 DS18B20温度数据表上表是DS18B20温度采集转化后得到的11位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图4-14 温度转换代码段本程序使用temp_data2数组来保存从DS18B20读取的数据,temp_data0用于保存数据的低8位,temp_data1用于保存数据的高8位。从temp_data0中取上低4位,低4位是小数部分,把它单独提取出来乘以10/16(即0.625),得到小数部分的数值。temp_data0的高4位与temp_data1的低四位合并成一个字节。由于本系统只测量0摄氏度上的温度,并没有考虑到负温度,所以并没有把有关负温度的处理写进程序里面。把得出来十进制的温度分解成每个位的数值,再把各位的数值压进数组里面,作为查表的依据。以上是DS18B20的初始化处理及数据处理部分,该部分是本系统的核心部分。只有获得了正确的测温数据,余下的部分才会有意义。这部分最关键的是严格遵守元件的读写时序,DS18B20的读写都要是通过时间隙来完成的,这是单总线型元件的一大特点,也是编写控制程序的难点。相对简单的外部电路,就需要相对复杂的程序来控制。4.2.1.2 通信端口初始化及数据发送本系统使用的USB通信模块是通过虚拟串口来实现与USB口通信的,所以在下位机不必使用USB的通信协议来收发数据,使用RS232串口的协议来通信既可,其余的处理工作由PL2303芯片来完成.本系统使用的是串行异步通信。异步方式通信ASYNC(Asynchronous Data Communication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。它是以字符为单位进行传输的,字符之间没有固定的时间间隔要求,而每个字符中的各位则以固定的时间传送。收、发双方取得同步的方法是采用在字符格式中设置起始位和停止位。图4-15 串行异步通信数据格式在一个有效字符正式发送前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。从上图中可以看到以下几点: 1. 起始位:起始位必须是持续一个比特时间的逻辑“0”电平,标志传送一个字符的开始。 2. 数据位:数据位为5-8位,它紧跟在起始位之后,是被传送字符的有效数据位。传送时先传送字符的低位,后传送字符的高位。数据位究竟是几位,可由硬件或软件来设定。 3. 奇偶位:奇偶校验位仅占一位,用于进行奇校验或偶校验,也可以不设奇偶位。 4. 停止位:停止位为1位、1.5位或2位,可有软件设定。它一定是逻辑“1”电平,标志着传送一个字符的结束。 5. 空闲位:空闲位表示线路处于空闲状态,此时线路上为逻辑“1”电平。空闲位可以没有,此时异步传送的效率为最高。AT89S51集成了一个全两工串行口(UART),串行口通过引脚RXD(P3.0,串行口数据接收端)和引脚TXD(P3.1,串行口数据发送端)与外部设备之间进行串行通信。图4-16 单片机串行口结构两个串行口缓冲寄存器(SBUF),一个是发送寄存器,一个接收寄存器,以便于单片机能以全双工方式进行通信。串行发送时,从片内总线向发送SBUF写入数据;单片机接收时,从接收SBUF向片内总线读出数据。在接收数据时,串行数据通过引脚RXD进入;在发送方式下,串行数据通过引脚TXD发出。AT89S51串行端口有四种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分成分布式多微机系统。串行口通信由两个特殊功能寄存器对数据的接收和发送进行控制,分别是串行口控制寄存器SCON和电源控制寄存器PCON.串行口控制寄存器SCON地址为98H,位地址为9FH98H,具体格式如下:SM0 SM1SM2RENTB8RB8TIRI9FH 9EH8DH9CH9BH9AH99H98H(1).SM0、SM1串行口工作方式控制位。 SM0SM1工作方式00方式001方式110方式211方式3(2).SM2多机通信控制位。 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第9位数据是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表示帧接收完成。 在串口中断处理时,TI,RI都需要软件清0,硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要ES=0,以防止中断出现。电源管理寄存器PCON的单元地址是87H,不可位寻址,其结构格式如下:D7 D6D5D4D3D2D1D0SMOD -GF1GF0PDID与串行口工作有关的仅有它的最高位SMOD,SMOD称为串行口的波特率倍增位。当SMOD=1时,波等率加倍;系统复位时,SMOD=0。本系统使用工作方式1收发数据,方式1以10位数据为一帧进行传输,设有1个起始位、8个数据位、1位停止位,格式如下:起始D0D1D2D3D4D5D6D7停止方式1的波特率是可变的。且以定时器T1作为波特率发生器。一般选用定

温馨提示

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

评论

0/150

提交评论