基于RX485的温度采集与显示.doc_第1页
基于RX485的温度采集与显示.doc_第2页
基于RX485的温度采集与显示.doc_第3页
基于RX485的温度采集与显示.doc_第4页
基于RX485的温度采集与显示.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计 论 文 基于RS485的多机温度采集与显示 陈 红 香 指导老师姓名: 晏 文 靖 专 业 名 称:电子信息工程技术 班 级 学 号: 07136337 论文提交日期: 2010年01月07日 论文答辩日期: 2010年01月13日 2010年 01月 13 日【摘要】温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。多机温度监测系统可实现对多点温度的测量,并能根据设定值对环境温度进行调节,实现控温的目的。本设计基于DS18B20传感器的温度测量和AT89S52单片机的控制装置,通过MAX485通信模块将温度数据传回计算机控制端,从而实现对环境温度进行监测。 本设计就是利用一台PC机与两块单片机所组成的主从式温度监测系统。在本系统中上位机以PC和Windows操作系统为软硬件资源,下位机采用ATMEL公司的AT89S52,总线采用的是测控系统常用的RS-485。【关键词】AT89S52 PC机与单片机通信 MAX485 【Abstract】Temperature is the main accused in the industrial control one of the parameters, especially in the metallurgical, chemical, building materials, food, machinery, oil industry, has held the role of heavy-light foot. As electronic technology and the rapid development of micro-computer, computer measurement and control technology has been rapid development and wide application. SCM has a deal can be strong, fast, low power consumption advantages, applications in temperature measurement and control, control is simple and convenient, measuring a wide range of high precision.Multi-machine temperature monitoring system can realize the multi-point temperature measurements, and according to set value to adjust to the ambient temperature to achieve temperature control purposes. The design is based on DS18B20 sensor temperature measurement and control unit MCU AT89S52, through the MAX485 communication module the temperature data back to computer-controlled side, thus bringing about the ambient temperature monitoring.This design is the use of a PC, and composed of two master-slave microcontroller temperature monitoring system. In this system, host computer and the Windows operating system to PC hardware and software resources, the next-bit machine using ATMEL Corporation AT89S52, the bus uses a control system commonly used in RS-485.【KeyWords】 AT89S52 PC and Single-chip communication MAX485 目 录绪 论1第1章 系统设计原理及要求21.1 设计思路21.2 总体设计思路框图21.3 各部分组件说明2第2章 AT89S52单片机的原理与结构32.1 AT89SXX系列单片机的内部结构42.2 AT89S52单片机的引脚功能42.2.1 I/O端口线输入输出引脚42.2.2 控制线控制引脚42.2.3 外接晶体线52.3 AT89S52存储器组织52.4 AT89S52程序存储器52.5 AT89S52的复位方式62.6 AT89S52的时钟电路6第3章 串口通信的基本原理73.1 串口通信的有关概念73.2 RS-232有关的串行通信概念73.3 与串行口有关的SFR73.3.1 串行通信控制寄存器SCON73.3.2 电源控制器PCON83.4串行口的工作方式83.5串行口的初始化103.5.1 串行口波特率103.5.2 初始化步骤10第4章 DS18B20温度传感器114.1 DS18B20的简介114.2 DS18B20的特点114.3 DS18B20的封装结构114.4 DS18B20的测温原理124.5 DS18B20与单片机的典型接口电路124.6 DS18B20的软件设计13第5章 定时/计数器与中断的原理及应用145.1 定时器/计数器有关的概念145.1.1 与T/C有关的特殊功能寄存器145.1.2 定时器/计数器的工作方式155.1.3 定时器/计数器的初始化165.2 中断有关的概念165.2.1 中断源165.2.2中断的控制175.2.3中断响应18第6章 硬件电路其他元器件简介196.1 单片机的最小系统196.2 数码管的显示电路196.3 MAX485串口通信电路206.3.1 MAX485芯片简介206.3.2 通信方式216.3.3 与PC机通信方式22第7章 系统软件的设计与实现方法237.1 软件的使用237.1.1 AT89S52的编程器的使用237.1.2串口调试助手V2.2的使用方法237.2 程序设计框图237.2.1 DS18B20温度采集设计237.2.2 PC机与单片机的通信程序设计24第8章 调试278.1 调试环境278.1.1 硬件调试278.1.2 软件调试278.2 调试过程278.2.1 硬件278.2.2 软件278.3 硬件调试过程的问题及解决办法278.4 软件调试过程的问题及解决办法288.5 本次设计结果28结 论29致 谢30参考文献31附 录32附录A 硬件电路实物图32附录B VB6.0效果图33绪 论基于RS485的多机温度采集与显示是通过DS18B20检测温度,然后通过MAX485通信模块,将检测到的温度发射到电脑端的接收端,从而在电脑上(VB界面)显示检测到的温度。系统中使用到的主要材料有:MAX485通信模块,多功能开发板,温度传感器(DS18B20),RS232-RS485接口.在实际检测时,主要通过温度传感器(DS 18B20)的温度检测功能,以及MAX485通信模块的多机串行通信功能,去实现多组温度在电脑端的显示。电脑端主要通过VB程序(Visual Basic),得以将开发板上的温度检测系统(DS 18B20)所测得的温度在电脑端显示。通信模块采用了MAX485总线通信模块,这种模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。RS-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,可以实现一台PC和多台单片机之间的串行通信;而且RS-485的最长的传输距离为1200m,适合中距离的传输。多功能开发板通过下载温度检测程序(由AT89S52接收程序),与温度检测模块(DS 18B20)连接,再连接MAX485通信模块,再通过RS232-RS485转接口与PC机连接即可实现PC与多单片机的多机通信。第1章 系统设计原理及要求1.1 设计思路有两个智能开发板每个开发板上安装DS18B20温度传感器并显示当前检测温度值,板上的MAX485和RS232与485转换接口与PC机连接。在PC微机上用VB建立一界面显示两个智能板上所测的温度。1.2 总体设计思路框图图1-2 基于RS485的多机温度采集与显示总体设计框图1.3 各部分组件说明DS18B20是“一线总线”数字化温度传感器,测量温度范围为-55+125,在-10+85,精度范围为0.5。51系列单片机采用AT89S52单片机。通信模块采用了MAX485总线通信模块,这种模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。RS-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,可以实现一台PC和多台单片机之间的串行通信;而且RS-485的最长的传输距离为1200m,适合中距离的传输。在计算机接收端,编辑一个VB程序,用于接收数据和显示温度。第2章 AT89S52单片机的原理与结构2.1 AT89SXX系列单片机的内部结构ATMEL89系列(以下简称AT89)单片机是美国ATMEL公司生产的8位高性能单片机,其主要技术优势是内部含有可编程Flash存储器,用户可以很方便地进行程序的擦写操作,在嵌入式控制领域中被广泛的应用。内部结构如图2-1所示图2-1 MCS-51系列单片机的内部结构图下面对各功能部件作进一步的说明:数据存储器(RAM):片内为128个字节(单元),AT89S52单片机内部有256个字节的RAM数据存储器,片内最多可外扩64K字节。程序存储器(ROMEPROM):803l无此部件,8051为4KROM;8751则为4KEPROM。AT89S51单片机内部有4KB的闪存程序存储器(Flash),当不够使用时,可扩展为64 KB外部程序存储器。它们的逻辑空间是分开的,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛型结构单片机。中断系统:具有5个中断源,2级中断优先权。定时器/计数器:2个16位的定时器计数器,具有四种工作方式。串行口;一个全双工的串行口,具有四种工作方式。Pl口、P2口、P3口、P0口:为4个并行8位IO口。特殊功能寄存器(SFR):共有21个,用于对片内各功能模块进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM区。微处理器(CPU):为8位的CPU,且内含一个1位CPU(位处理器),不仅可处理字节数据,还可以进行位变量的处理。8位机在数据采集,运算处理有明显的长处。ATMEL52子系列功能增强的具体如下四个方面。(1) 片内ROM从4 KB增加到8 KB。(2) 片内RAM从128 B增加到256 B。(3) 定时/计数器从2个增加到3个。(4) 中断源从5个增加到6个。 2.2 AT89S52单片机的引脚功能图2-2 AT89S52单片机的引脚图2.2.1 I/O端口线输入输出引脚P0.0P0.7(3932):P0口是一个漏极开路型准双向IO口。在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1.0P1.7(1-8):P1口是带内部上拉电阻的8位双向IO口。在EPROM编程和程序验证时,它接收低8位地址。P2.0P2.7(21-28):P2口是一个带内部上拉电阻的8位双向IO口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。P3.0P3.7(10-17):P3口是一个带内部上拉电阻的8位双向IO口。在MCS5l中,这8个引脚还兼有专用功能,P3的8条口线都定义有第二功能,详见表2-2-1:表2-2-1:P3口各引脚与第二功能2.2.2 控制线控制引脚ALE(30脚)地址锁存控制信号。在系统扩展时,ALE用于控制P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。PSEN(29脚)外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。EA/Vpp(31脚)访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。RSTVpp (9脚) 复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。2.2.3 外接晶体线XTAL1(19脚)和XTAL2(18脚)外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。主电源引脚高VCC和低VSSVCC(40脚)+5V电源。VSS(20脚)地线(GND)。 2.3 AT89S52存储器组织ATMEL89S52单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。ATMEL89S52片内有256字节数据存储器RAM和4KB的程序存储器ROM。除此以外,还可以在片外扩展RAM和ROM,并且各有64KB的寻址范围。也就是最多可以在外部扩展264KB存储器。ATMEL89S52的存储器组织结构如图2-3所示:图2-3-1 ATMEL89S52存储器组织结构2.4 AT89S52程序存储器ATMEL89S52最多可外扩64K字节程序存储器,64K程序存储器中有5个单元具有特殊用途。5个特殊单元分别对应于5种中断源的中断服务程序的人口地址,见表2-4:表2-4 各种中断的子程序入口地址通常在这些人口地址处都放一条约对跳转指令。加跳转指令的目的是,由于两个中断入口间隔仅有八个单元,存放中断服务程序往往是不够用的。2.5 AT89S52的复位方式单片机的复位方式有上电自动复位和手工复位两种,其中C22uF,R200,Rk1k。RST引脚是复位信号的输入瑞。复位信号是高电平有效。图2-5 上电复位电路2.6 AT89S52的时钟电路单片机的晶振电路也叫时钟电路,是单片机时序的基础。单片机内部有振荡器,可以产生时钟。时钟可以由两种方式产生:内部方式和外部方式。外部方式:可以通过XTAL1和XTAL2接入外部时钟。内部方式:在XTAL1和XTAL2端外接入石英晶体作定时元件,内部振荡器自激振荡,产生时钟。时钟发生器对振荡脉冲进行二分频,因此,时钟是一个双相信号,由P1相和P2相构成。FOSC可在2MHZ-12MHZ选择。小电容可以取30PF左右。图2-6内部方式时钟电路其中电容为30PF,这种无极性电容是使单片机易起振并保持串口通信,准确计算出波特率。一般情况晶振选用12MHZ,但串行通信时,使用11.0592MHZ。第3章 串口通信的基本原理 3.1 串口通信的有关概念1、RS-232是串行数据接口标准,最初都是美国EIA(电子工业联合会)制订并发布的,1969年公布的通信协议,适合的数传率为020bps。2、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600和19200。在通信为保证通信正确,必须通信双方必须同一波特率。3、RS-232-C标准:RS-232-C标准对逻辑电平的各种信号线的功能作了规定,即信号电平标准和控制信号线的定义。RS-232C采用负逻辑规定逻辑电平,信号电平与通常的TTL电平不兼容,逻辑“1”=-3V-15V逻辑“0”=+3V+与TTL电平不一样可用TTL/EIA转换器进行转换。4、RS232接口芯片实现了TTL标准和RS-232-C标准之间的电平转换。5、AT89S52单片机片上有通用异步接收发送(UART)用于串行通信,发送时数据由TXD端送出,接收时数据由RXD端输入。有两个缓冲器SBUF,一个作发送缓冲器,另一个作接收缓冲器。它是可编程的全双工的串行口。短距离的机间通信可使用UART的TTL电平,使用驱动芯片(MAX232或14881489)可接成RS232C和通用微机进行通信。波特率时钟必须从内部定时器1或定时器2获得。若应用要求RS232完全的握手功能,必须借助单片机其它管脚用软件处理。3.2 RS-232有关的串行通信概念RS232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个接脚 (DB-9) 或是25个接脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。3.3 与串行口有关的SFR3.3.1 串行通信控制寄存器SCONSCON是串行口控制和状态寄存器,其格式如下:SM0、SM1:串行口工作方式控制位,具体工作方式见表3-3-1所示:表3-3-1 串行口工作方式控制SMO SM1工作方式说 明波特串0 0方式0同步移位寄存器fosc120 1方式110位异步收发由定时器控制1 0方式211位异步收发fosc32或fosc641 1方式311位异步收发由定时器控制SM2:多机通信控制位(方式2,3)。1一只有接收到第9位(RB8)为1,RI才置位。 0-收到字符N就置位。REN:串行口接收允许位。1一允许串行口接收。 0一禁止串行口接收。TB8:方式2和方式3时,为发送的第9位数据,也可以作奇偶校验位。RB8:方式2和方式3时,为接收到的第9位数据;方式1时,为接收到的停止位。TI:发送中断标志。由硬件置位,必须由软件清0。RI:接收中断标志。由硬件置位,必须由软件清0。3.3.2 电源控制器PCONPCON的第7位SMOD是与串行口的波特率设置有关的选择位。SMOD:串行口波特率加倍位。1方式1,3波特率定时器1溢出率16;方式2波特率为fosc32; 0方式1,3波特率定时器1溢出率32;方式2波特率为fosc64。GF0、GF1:两个通用标志位。PD、IDL:CHMOS器件的低功耗控制位。3.4串行口的工作方式1方式0方式0为移位寄存器输入输出方式。串行数据通过RXD输入输出,TXD则用于输出移位时钟脉冲。方式0时,收发的数据为8位,低位在前。波特率固定为fosc12,其中fosc为单片机外接晶振频率。发送是以写SBUF寄存器的指令开始的,8位输出结束时TI被置位。方式0接收是在REN1和RI0同时满足时开始的。接收的数据装入SBUF中,结束时RI被置位。 2方式1方式1是10位异步通信方式,1位起始位(0),8位数据位和1位停止位(1)。其中的起始位和停止位在发送时是自动插入的。任何一条以SBUF为目的寄存器的指令都启动一次发送,发送的条件是TI=0,发送完置位TI。方式1接收的前提条件是SCON中的REN为1,同时以下两个条件都满足,本次接收有效,将其装入SBUF和RB8位。否则放弃接收结果。两个条件是:(1)RI=0; (2)SM2=0或接收到的停止位为1。方式1的波特率是可变的,波特率可由以下计算公式计算得到:方式1波特率2SMOD(定时器1的溢出率)32其中的SMOD为PCON的最高位。定时器1的方式0,1,2,都可以使用,其溢出率为定时时间的倒数值。3方式2和方式3这两种方式都是11位异步接收发送方式,它们的操作过程完全一样,所不同的是波特率:方式2波特率2SMOD(fosc/64)方式3波特率同方式1(定时器1作波特率发生器)。方式2和方式3的发送起始于任何一条“写SBUF”指令。当第9位数据(TB8)输出之后,置位TI。方式2和方式3的前提条件也是REN为1。在第9位数据接收到后,如果下列条件同时满足:(1)RI0;(2)SM20或接收到的第9位为1,则将已接收的数据装入SBUF和RB8,并置位RI;如果条件不满足,则接收无效。ATMEL89S52串行口的不同寻常的特征是包括第九位方式。这允许在串行口通信增加的第九位用于标志特殊字节的接收。对简单网络,第九位方案允许接收单片机仅当字节具有一个第九位时才能被中断。用这种方法,发送器可以广播一个字节让第九位为高作为“每个人请注意”字节。字节可以为节点地址,地址相同的节点可以打开接收接下来的字符。所接续字节(第九位为低)不能引起其它单片机中断,因为未送它们的地址。用这种方式。一个单片机可以和大量的其它单片机对话而不打扰不寻址的单片机。这种系统必须工作在严格的主从方式,由软件进行取舍安排。3.5串行口的初始化3.5.1 串行口波特率通常情况下,使用单片机的串行口时,选用的晶振比较固定6MHz,12MHz,110592MHz。常用于和微机的通信;选用的波特率也相对固定。串行口常用的波特率及相应的设置见表3-5-1所示:表3-5-1 串行口波特率表3.5.2 初始化步骤在使用串行口之前,应对它进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:确定定时器1的工作方式编程TMOD寄存器; 计算定时器1的初值装载TH1、TL1;启动定时器1编程TCON中的TR1位;确定串行口的控制编程SCON; 串行口在中断方式工作时,须开CPU和源中断编程IE寄存器。第4章 DS18B20温度传感器4.1 DS18B20的简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。4.2 DS18B20的特点(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任何外围元件。 (3)可用数据线供电,电压范围:+3.0 +5.5 V。 (4)测温范围:-55 +125 。固有测温分辨率为0.5 。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,多个DS18B20可并联在惟一的三线上,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。4.3 DS18B20的封装结构图4-3 DS18B20的封装结构图DS18B20引脚功能:GND 电压地 DQ 单数据总线 VDD 电源电压 NC 空引脚4.4 DS18B20的测温原理DS18B20的测温原理如图4-4所示,图中低温度系数晶振的振荡频率受温度的影响很小1,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图4-4中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 图4-4 DS18B20的测温原理图4.5 DS18B20与单片机的典型接口电路图4-5 DS18B20与CPU的接口电路上图采用寄生电源供电方式, P1.0口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管和89C51的P1.0来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 s。采用寄生电源供电方式是VDD和GND端均接地。由于单线制只有一根线,因此发送接收口必须是三态的。主机控制DS18B20完成温度转换必须经过3个步骤:初始化、ROM操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12 MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始,实际在实验中不用这种方式,只要在数据线上加一个上拉电阻4.7 k,另外2个脚分别接电源和地。 4.6 DS18B20的软件设计较少的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18 B 20进行读写编程时,必须严格保证读写时序,否则将无法读取测温结果。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。软件流程如图4-6所示:图4-6 DS18B20读写框图在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦DS18B20接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。第5章 定时/计数器与中断的原理及应用5.1 定时器/计数器有关的概念805l系列单片机至少有两个16位内部定时器计数器,若是计数内部晶振驱动时钟,则它是定时器;若是计数8051的输入引脚的脉冲信号,则是计数器。805l的TC是加1计数的。定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数,由于脉冲周期固定,由计数值可以计算出时间,有定时功能。当TC工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加1,计数率fosc/12。当晶振为6MHz时,计数率500 kHz,每2us计数值加1。当TC工作在计数器时,计数脉冲来自外部脉冲输入管脚T0(P34)或T1(P35),当T0或T1脚上负跳变时计数值加1。识别管脚上的负跳变需两个机器周期,即24个振荡周期。所以T0或T1脚输入的可计数外部脉冲的最高频率为fosc/24。当晶振为12MHz时,最高计数率为500 kHz,高于此频率将计数出错。5.1.1 与T/C有关的特殊功能寄存器1计数寄存器TH和TLTC是16位的,计数寄存器由TH高8位和TL低8位构成。在特殊功能寄存器(SFR)中,对应TC0为TH0和TL0,对应TC1为TH1和TL1。定时器计数器的初始值通过TH1TH0和TL1TL0设置。2定时器计数器控制寄存器TCON TR0,TR1:TC0,1启动控制位。1-启动计数。 0-停止计数。TCON复位后清“0”,TC需受到软件控制才能启动计数,当计数寄存器计满时,产生向高位的进位TF,即溢出中断请求标志。3TC的方式控制寄存器TMODCT:计数器或定时器选择位。1一为计数器。 0一为定时器。GATE:门控信号。1-TC的启动受到双重控制,即要求TR0TR1和INT0/INT1同时为高。0-TC的启动仅受TR0或TR1控制。M1和M0:工作方式选择位。由M1和 M0的四种组合状态确定,见表5-1-1表5-1-1 定时器计数器工作方式M1M0方式功 能000为13位定时器计数据,TL存低5位,TH存向8位011为16位定时器计数器102常数自动装入的8位定时器计效器113仅适用于TC0,两个8位定时器计数器5.1.2 定时器/计数器的工作方式1方式0当TMOD中M1M000时,TC工作在方式0。方式0为13位的TC,由TH提供高8位,TL提供低5位的计数值,满计数值2,但启动前可以预置计数初值。TC启动后立即加1计数,当13位计数满时,TH向高位进位,此进位将中断溢出标志TF置1,产生中断请求,表示定时时间到或计数次数到。若T/C开中断(ET1)且CPU开中断(EA1),则当CPU转向中断服务程序时,TF自动清0。2方式1当TMOD中M1M001时。TC工作在方式1。方式1与方式0基本相同。唯一区别在于计数寄存器的位数是16位的,由TH和TL寄存器各提供8位,满计数值为2“。3方式2 当TMOD中M1M010时,TC工作在方式2。方式2是8位的可自动重装载的TC,满计数值为2。在方式0和方式1中,当计数满后,若要进行下一次定时计数,须用软件向TH和TL重装预置计数初值。方式2中TH和TL被当作两个8位计数器,计数过程中,TH寄存8位初值并保持不变,由TL进行8位计数。计数溢出时,除产生溢出中断请求外,还自动将TH中初值重装到了L,即重装载。 除此之外,方式2也同方式0。4方式3方式3只适合于TC0。当T/C0工作在方式3时,TH0和TL0成为两个独立的计数器。这时,TL0可作定时器计数器,占用TC0在TCON和TMOD寄存器中的控制位和标志位;而TH0只能作定时器用,占用TC1的资源TR1和TF1。在这种情况下,TC1 仍可用于方式0、1、2,但不能使用中断方式。只有将TC1用作串行口的波特率发生器时,TC0才工作在方式3,以便增加一个定时器。5.1.3 定时器/计数器的初始化在使用8051的定时器计数器前,应对它进行编程初始化,主要是对TCON和TMOD编程;计算和装载TC的计数初值。一般完成以下几个步骤:(1)确定TC的工作方式编程TMOD寄存器;(2)计算TC中的计数初值,并装载到TH和TL;(3)TC在中断方式工作时,须开CPU中断和源中断编程IE寄存器;(4)启动定时器计数器编程TCON中TR1或TR0位。5.2 中断有关的概念 所谓中断,是指当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊请求,CPU暂时中止现行程序,转去对随机发生的更紧迫事件进行处理,处理完毕后,CPU自动返回原来的程序继续执行。中断允许软件设计不需要关心系统其它部分的定时要求,算术程序不需要考虑隔几个指令检查IO设备是否需要服务。相反,算术程序编写时好像有无限的时间做算术运算而无其他工作在进行。若其它事件需要服务时,通过中断告诉系统。8051单片机有5个中断源,有2个中断优先级,每个中断源的优先级可以编程控制。中断允许受到CPU开中断和中断源开中断的两级控制。5.2.1 中断源中断源是指任何引起计算机中断的事件,一般一台机器允许有许多个中断源。增加很少的硬件就可把各种硬件中断源“线或”成为一个外部中断输入,然后再顺序检索引起中断的特定源。8051单片机的5个中断源是:外部中断请求0,由INT0(P32)输入;外部中断请求1,由INT1(P33)输入;片内定时器计数器0溢出中断请求;片内定时器计数器1溢出中断请求;片内串行口发送接收中断请求。为了了解每个中断源是否产生了中断请求,中断系统对应设置多个中断请求触发器(标志位)实现记忆。这些中断源请求标志位分别由特殊功能寄存器TCON和SCON的相应位锁存。定时器计数器控制寄存器TCON(Time/counter Control Register)IT0,IT1:外部中断0,1触发方式选择位,由软件设置。1一下降沿触发方式,INT0INT1管脚上高到低的负跳变可引起中断。0一电平触发方式,INT0INT1管脚上低电平可引起中断。IE0,IE1:外部中断0,1请求标志位。当外部中断0,1依据触发方式满足条件产生中断请求时,由硬件置位(IE0IE1=1). 当CPU响应中断时,由硬件清除(IE0IE10)。TF0,TF1:定时器计数器0,1(TC0,TC1)溢出中断请求标志。当TC0,l计数溢出时,由硬件置位(TF0TF11)。当CPU响应中断时,由硬件清除(TF0TF10)。2串行口控制寄存器SCONRI:串行口接收中断请求标志位。当串行口接收完一帧数据后请求中断,由硬件置位(RI=1)。RI必须由软件清零。TI:串行口发送中断请求标志位。TI必须由软件清零。当串行口发送完一帧数据后请求中断时,由硬件置位(TI1)。5.2.2中断的控制中断的控制主要实现中断的开关管理和中断优先级的管理。这个管理主要通过对特殊功能寄存器IE和IP的编程实现。中断允许寄存器IEEX0,EX1:外部中断0,1的中断允许位。1一外部中断0,l开中断。 0一外部中断0,1关中断。ET0,ET1:定时器计数器0,1(TC0,TC1)溢出中断允许位。1-T/C,TC1开中断。 0-TC0,T/C1关中断。ES:串行口中断允许位。1-串行口开中断。 0一串行口关中断。ET2:定时器计数器2(TC2)溢出中断允许位。1一T/C2开中断。 0一TC2关中断。EA:CPU开关中断控制位。1一CPU开中断。 0一CPU关中断。8051复位时,IE被清“0”,此时CPU关中断,各中断源的中断也都屏蔽。若系统需用中断方式进行事件处理,则系统初始化程序中需编程IE寄存器。若仅一个定时器用来提供中断,其它定时器中断可被屏蔽。若程序中所有中断都不使用时,使用EA禁止。2中断优先级寄存器IP当系统中多个中断源同时请求中断,CPU按中断源的优先级别,由高至低分别响应。8051单片机有两个中断优先级,高优先级和低优先级,每个中断源都可以编程为高优先级或低优先级。这可以实现两级中断嵌套,嵌套的原则是:一个正在执行的中断服务程序可以被较高级的中断请求中断,而不能被同级或较低级的中断请求所中断。两级中断通过使用IP寄存器设置。PX0,PX1:外部中断0,1中断优先级控制位。PT0,PT1:定时器计数器0,1中断优先级控制位。PS:串行口中断优先级控制位。其中上面所有都是:1一高优先级。 0一低优先级。8051复位时,IP被清“0”,5个中断源都在同一优先级,这时若其中几个中断源同时产生中断请求,则CPU按照片内硬件优先级链路的顺序响应中断。硬件优先级由高到低的顺序如下:中断源外部中断0(IE0) 高定时器计数器0(TF0)外部中断1(IE1)定时器计数器1(TF1)串行口中断(RI十TI) 低5.2.3中断响应8051的CPU在每个机器周期采样各中断源的中断请求标志位,如果没有下述阻止条件, 则将在下一个机器周期响应被激活了的最高级中断请求。阻止条件如下:1CPU正在处理同级或更高级的中断;2现行机器周期不是所执行指令的最后一个机器周期;3正在执行的是RETI或是访问IE或IP的指令。CPU在中断响应后完成如下的操作:1硬件清除相应的中断请求标志;2执行一条硬件子程序,保护断点,并转向中断服务程序人口;3结束中断时执行RETI指令,恢复断点,返回主程序。第6章 硬件电路其他元器件简介此次电路设计中主要是由单片机的最小系统与显示电路、DS18B20测温电路、MAX485串口通信、VB程序在计算机把温度值显示等部分组成。6.1 单片机的最小系统最小系统的核心是AT89S52单片机,其内部带有8KB的FLASH ROM,256B片内RAM,基本上能满足最小系统的设计要求。如接上时钟电路、复位电路即可加电工作。如图6-1所示:图6-1 单片机最小系统6.2 数码管的显示电路通过2个LED显示模块组成8个LED指示灯,P0口输出段码信号,P2输出位码信号。这些信号由89SC52软件生成。LED显示器又称数码管,八段LED显示器由8个发光二极管组成。其中7个发光二极管构成字型“8”的各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是发光二极管的阴极都连在一起的,为共阴极LED显示器。如图6-2-2所示:共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字型代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示P字符,即对于共阴极LED显示器, “P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。图6-2-2 LED数码管共阳极和共阴极示图LED显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。也就是说我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。6.3 MAX485串口通信电路6.3.1 MAX485芯片简介在工业控制及测量领域较为常用的网络之一就是物理层采用MAX485通信接口所组成的工控设备网络。这种通信接口可以十分方便地将许多设备组成一个控制网络。从目前解决单片机之间中长距离通信的诸多方案分析来看,MAX485总线通信模式由于具有结构简单、价格低廉、通信距离和数据传输速率适当等特点而被广泛应用于仪器仪表、智能化传感器集散控制、楼宇控制、监控报警等领域。MAX485是芯片接口的一种类型 ,MAX485接口芯片是Maxim公司的一种RS485芯片。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只

温馨提示

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

评论

0/150

提交评论