基于AT89C51的USB温度控制器.docx
《基于AT89C51的USB温度控制器.docx》由会员分享,可在线阅读,更多相关《基于AT89C51的USB温度控制器.docx(42页珍藏版)》请在冰豆网上搜索。
![基于AT89C51的USB温度控制器.docx](https://file1.bdocx.com/fileroot1/2023-1/27/8a7d6f73-3b01-4180-a4d4-9301bf03626c/8a7d6f73-3b01-4180-a4d4-9301bf03626c1.gif)
基于AT89C51的USB温度控制器
毕业设计
——基于AT89C51的USB温度控制器
班级:
嵌设1113
姓名:
学院:
指导教师:
摘要
USB(通用串行总线)是一种新型的通用串行总线(USB),它是快速、双向、同步、热可以呼叫等待,动态连接和串行接口的低价格。
基于此特点,现在很多电脑外围设备的USB接口。
新的USB接口用于设计上位机之间的通信,降低机械系统。
通过使用新型数字温度传感器测量温度,并通过USB接口通信和计算机应用软件。
本文首先介绍了该系统的背景知识和USB通信协议,并介绍了温度控制的基本含义,提出了使用USB设备芯片CH372一行类型的数字温度传感器DS18B20和单片机AT89C51来开发基于USB的温度控制系统。
温度数据的采集上电脑通过USB接口,并使用应用软件来解决它。
使用CH372接口芯片动态链接库上机器和较低的机器之间建立沟通机制。
电脑将收集温度数据显示在电脑上,并显示实时温度采集图像。
此外,应用软件可以设置为温度限制在一个范围,如简单的控制,当收集了超过一组的温度极限温度,然后报警。
其他机器仍然保持一定的资源为未来的扩张。
关键词:
AT89C51;USB协议;温度采集;一线式温度传感器;CH372
目录
引言-1-
1背景知识-2-
2系统概述-3-
2.1系统的特性-3-
2.2系统的功能-3-
2.3系统开发平台-3-
3系统总体设计-5-
3.1系统整体方框图-5-
3.2系统方案比较-5-
3.2.1系统两种可行方案-5-
3.2.2方案最终选择-7-
4系统硬件设计-8-
4.1中央处理器----AT89C51-8-
4.2温度传感器DS18B20-11-
4.3温度采集模块电路设计-16-
4.4系统接口模块电路设计-17-
4.4.1USB简介-18-
4.4.2USB芯片选择-19-
4.4.3USB设备端的接口设计-21-
4.5系统硬件整体实现-23-
5系统软件设计-24-
5.1软件设计开发工具-24-
5.2系统软件设计-24-
5.2.1下位机的软件设计-25-
5.2.2上位机软件设计-28-
6系统调试-30-
6.1硬件调试-30-
6.2.1下位机的软件调试-31-
6.2.2上位机的软件-32-
6.2.3上位机和下位机联机调试-33-
6.3系统性能指标-34-
7系统的简单操作说明-35-
8总结-35-
谢辞-37-
参考文献-38-
附录-39-
引言
温度是工农业生产的主要环境因素,它对工业和农业生产有着重要的影响,因此在快速测量和处理是一个非常特殊的意义。
温度测量模块是正确的,快速和及时的工业和农业生产,产品的质量符合预期的设计要求,并在当今世界,质量是企业生存的根本,所以大量的工业和农业生产企业控制的高温要求的温度测量系统作为企业生存的根本。
面对竞争日益激烈的市场压力,企业实现提高企业竞争能力,我们必须采用新技术企业的管理质量等各个方面的产品。
和严格的产品的温度,测量技术的生产环境的温度决定了系统可能生存和继续发展,所以很多工业生产企业高度重视温度控制系统。
对温度进行采集,并送到PC机实时处理,以前往往采用的是计算机的串行接口,但这一老式计算机接口存在着不少缺陷。
比如接口规格不统一、非共享式接口、占用资源大等等这样那样的缺点。
随着计算机的发展,USB(通用串行总线)接口是一种计算机应用领域的新型接口,USB接口的出现是计算机端接口的技术重大变革,其最早是由Compaq、DigitalEquipment、IBM、Intel、Microsoft、NEC和NorthernTelecom7家公司于1994年提出的,在2000年做出了改进,提出了USB2.0版本,随着这一版本的提出,USB越来越流行,目前它已经成为了一种标准接口,现在市场上的所有PC机都百分之百支持USB接口,本文将采用这一USB接口来对采集到的温度实时传输。
基于USB接口的温度控制系统是通过温度传感器温度测量,并利用微处理器(单片机),实时计算机通过USB接口,计算机使用软件根据要求设计了报警,等相应的处理。
这是单片机技术、计算机技术和温度传感器技术的技术。
适合行业需要一个广泛的温度实时精确处理。
1背景知识
USB之前,外围设备和PC通信主要通过不同的接口提供的电脑主板
实现,例如ISA接口,PCI接口,串行接口,等等,这些旧接口有很多缺点:
共享接口,体积大,没有一个统一的接口规范,采用传统的I/O模式等等。
为了克服这些缺点的旧接口,PC制造商和用户迫切需要一个连接外围设备的新方法。
此刻USB应运而生,它是一个双向、同步,快,快,便宜,串行接口,支持热插拔功能。
早在1995年,就已经有PC机带有USB接口了,但由于缺乏软件及硬件设备的支持,这些PC机的USB接口都闲置未用。
1998年后,随着微软在Windows98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口才逐步走进了实用阶段。
近年来,随着大量的流行支持USB电脑USB逐渐成为标准的PC接口是时代的潮流。
在主机(主机),最新的电脑近100%支持USB;在外围设备(装置),使用USB接口设备,如数码相机,扫描仪,操纵杆,磁带和软盘驱动器,成像设备、打印机、键盘、鼠标等。
支持热插拔的是一个USB、共享接口,便于携带,统一标准,可以连接多个设备等优势,使USB在快速增长。
本文将利用这一新型计算机接口来设计温度控制系统。
2系统概述
本章将对基于USB接口的温度控制系统在工业上的应用进行分析,并介绍系统的特点、功能以及使用到的开发工具。
2.1系统的特性
由于系统使用了USB接口,USB数据实时传输、信息沟通与电脑,电脑可以连接到互联网,远程电脑还可以使用互联网来查看各种操作,如温度检测系统。
系统采用先进的温度传感器,可以快速反应温度,降低机器的温度数据进行初步处理数据,然后与PC通信。
一般而言,该系统具有以下特点:
工作人员可以远离生产环境通过计算机对其进行查看处理;
·多点温度测量;
·全天候检测温度,并可以在没有工作人员的参与下对生产环境进行简单处理;
·对生产环境的温度进行设计极限温度,一旦超过极限温度,系统将对起进行报警,并停止生产环境的工作;
·测量温度误差比较精确,在0.5℃内;
2.2系统的功能
系统主要有以下特点:
(1)测试温度。
使用该系统可以远离恶劣的生产环境中,温度测量的条件下;
(2)实时采集现场温度,并显示在电脑上。
(3)使温度在PC实时图像;员工可以直观的计算机系统温度图像;
(4)简单的系统控制,通过计算机软件的应用程序可以设置为温度,一旦超过极限温度,警报,然后通知员工迅速的生产站点各种相应的操作,以防止温度超过极限温度;
(5)在PC端应用软件系统使用帮助。
用户可以使用这个功能来帮助系统。
2.3系统开发平台
本次系统需要用到的开发工具为:
keilC、C++builder、Protel、计算机、烧写器。
KeilC是目前世界上最好的MC-51单片机的汇编和C语言的开发工具。
支持汇编、c语言以及混合编程。
同时具备功能强大的软件仿真和硬件仿真。
C++builder是计算机高级语言C++比较好用的编程工具,它是属于一种可视化的计算机语言。
Protel是世界上最好的硬件电路图制作的工具。
3系统总体设计
3.1系统整体方框图
根据前面的分析,知道系统要实现以上功能,必须由以下几部分组成:
温度采集单元、下位机温度初步处理单元、USB设备接口、上位机应用程序。
系统的结构原理图如图3.1:
图3.1系统整体实现的结构原理图
温度传感器单元在生产环境温度测量,温度的测量到下位机(单片机),单片机温度采集进行初步处理,处理数据通过USB接口的PC机,PC将收集实时显示温度,如果你想处理现场环境,个人电脑可以发送命令,通过USB接口传输到下位机,一台机器根据接收到的数据进行分析,从而作出处理,如报警等各种操作。
3.2系统方案比较
对于本系统,方案的选择是根据温度传感器来选择。
目前市场上有两种传感器:
模拟传感器和数字集成传感器,对于选择不同的传感器将会有不同的方案。
下面给出两种不同的方案,并对其进行分析,最终选择其中一种方案。
3.2.1系统两种可行方案
方案1:
选择模拟传感器
所谓模拟传感器,简单的说就是传感器对被测量的物质感应,并随着检测的不同做出不同的反应,但这一反应是有规律的,而且有规律的输出模拟信号。
由于单片机是数字信号系统,只能识别数字信号,所以这种方案要想利用单片机对温度信号进行处理,必须将对模拟输出量数字化,也就是说要对其输出的模拟电压或电流转换成数字信号,这么一来就系统要加入模拟信号转换成数字信号的处理单元,通常,实现这一功能的是A/D转换器,市场对于这一A/D转换器有不少类型。
所以选择这一方案也是可以有效而快速的设计出本系统。
图3.2给出使用模拟传感器这一方案的设计原理图。
图3.2方案1的结构原理图
方案2:
选择数字传感器
今天随着计算机的飞速发展以及单片机的日益普及,世界进入了数字时代,人们在处理被测信号时首先想到的是信息处理器(单片机或计算机)。
具有输出数字信号便于电脑处理的传感器就是所谓的数字传感器。
数字传感器是近几年才出现的并得到广泛的应在在实践当中,所谓数字传感器,进一步的讲,就是将模拟传感器产生的信号经过放大、A/D转换、线性化及量纲处理后变成纯粹的数字信号,是在模拟传感器上加入数字处理单元,并将数字单元集成在一块芯片上,所以输出的是数字信号,便于数字处理机对其直接进行处理。
图3.3给出利用数字传感器设计的方案图:
图3.3方案2的结构原理图
3.2.2方案最终选择
以上已经提出了两种方案,下面对这两重方案进行分析,并做最后方案选择:
分析近几年来传感器的发展,我们知道传感器在未来的发展中将会向以下的方向发展:
(1)向高精度发展。
随着自动化生产程度的不断提高,对传感器的要求也在不断提高,必须研制出具有灵敏度高、精确度高、响应速度快、互换性好的新型传感器以确保生产自动化的可靠性。
目前能生产精度在万分之一以上的传感器的厂家为数很少,其产量也远远不能满足要求。
(2)向高可靠性、宽温度范围发展。
传感器的可靠性直接影响到电子设备的抗干扰等性能,研制高可靠性、宽温度范围的传感器将是永久性的方向。
提高温度范围历来是大课题,大部分传感器其工作范围都在-20℃~70℃,在军用系统中要求工作温度在-40℃~85℃范围,而汽车锅炉等场合要求传感器工作在-20℃~120℃,在冶炼、焦化等方面对传感器的温度要求更高,因此发展新兴材料(如陶瓷)的传感器将很有前途。
(3)向微型化发展。
各种控制仪器设备的功能越来越大,要求各个部件体积能占位置越小越好,因而传感器本身体积也是越小越好,这就要求发展新的材料及加工技术,目前利用硅材料制作的传感器体积已经很小。
如传统的加速度传感器是由重力块和弹簧等制成的,体积较大、稳定性差、寿命也短,而利用激光等各种微细加工技术制成的硅加速度传感器体积非常小、互换性可靠性都较好。
(4)向微功耗及无源化发展。
传感器一般都是非电量向电量的转化,工作时离不开电源,在野外现场或远离电网的地方,往往是用电池供电或用太阳能等供电,开发微功耗的传感器及无源传感器是必然的发展方向,这样既可以节省能源又可以提高系统寿命。
目前,低功耗损的芯片发展很快,如TI2702运算放大器,静态功耗只有1.5mA,而工作电压只需2~5V。
(5)向智能化数字化发展。
传感器一般都是非电量向电量的转化,工作时离不开电源,在野外现场或远离电网的地方,往往是用电池供电或用太阳能等供电,开发微功耗的传感器及无源传感器是必然的发展方向,这样既可以节省能源又可以提高系统寿命。
目前,低功耗损的芯片发展很快,如TI2702运算放大器,静态功耗只有1.5mA,而工作电压只需2~5V。
由于模拟传感器,没有把模拟转化为数字处理单元集成在一块芯片上,这样必带来传感检测单元的体积大等各个方面的影响,再者,模拟转化成数字单元也需要单片机对其进行处理,这样会浪费时间、资源。
所以这样一来我们知道数字传感器在未来必将取代模拟传感器。
而且随着数字传感器的发展,现在市场上数字传感也不是那么贵,本次系统对温度精度的要求不是很高,所以选择方案二。
4系统硬件设计
4.1中央处理器----AT89C51
AT89C51由美国Atmel公司生产的,是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位单片机,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
下文将对AT89C51单片机做简单介绍。
(1)AT89C51的特点
AT89C51具有以下几个特点:
①中央处理器CPU;
②AT89C51与MCS-51系列的单片机在指令系统和引脚上完全兼容;
③片内有4k字节在线可重复编程快擦写程序存储器;
④全静态工作,工作范围:
0Hz~24MHz;
⑤三级程序存储器加密;
⑥128×8位内部RAM;
⑦32位双向输入输出线;
⑧两个十六位定时器/计数器
⑨五个中断源,两级中断优先级;
⑩一个全双工的异步串行口;
(2)AT89C51的结构图如图4.1
图4.189C51的结构图
由上图,知:
AT89C51主要由CPU、存储器、I/O端口等几部分组成。
(3)AT89C51的功能描述
AT89C51是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年。
它与MCA-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。
AT89C51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。
只要程序长度小于4K,四个I/O口全部提供给用户。
可用5V电压编程,而且擦写时间仅需10毫秒,仅为8751/87C51的擦除时间的百分之一,与8751/87C51的12V电压擦写相比,不易损坏器件,没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。
工作电压范围宽(2.7V~6V),全静态工作,工作频率宽在0Hz~24MHz之间,比8751/87C51等51系列的6MHz~12MHz更具有灵活性,系统能快也能慢。
AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。
P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
(4)AT89C51引脚功能及说明
图4.2是AT89C51的引脚
图4.2
①口线:
P0、P1、P2、P3口。
P0口是三态双向口,通称数据总线口,为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
因为只有该口能直接用于对外部存储器的读/写操作。
P0口也用以输出外部存储器的低8位地址。
由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。
P1口是专门供用户使用的I/O口,是准双向口。
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P2口是从系统扩展时作高8位地址线用。
不扩展外部存储器时,P2口也可以作为用户I/O口线使用,P2口也是准双向口。
P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二功能。
作为第一功能使用时操作同P1口。
P3口的第二功能如表4.1所示。
②控制口线:
PSEN(片外选取控制)、ALE(地址锁存控制)、EA(片外存储器选择)、RESET(复位控制);
③电源及时钟:
VCC、VSS、XTAL1、XTAL2 操作方法。
表4.1P3口的第二功能
④操作方法
程序存储器加密。
AT89C51芯片程序存储器有三级硬件加密,能够有效地保证系统不被仿制和软件不被复制,加密等级设置见附录2。
工作模式。
AT89C51有间歇和掉电两种工作模式。
间歇模式是由软件来设置的,当外围器件仍然处于工作状态时,CPU可根据工作情况适时地进入睡眠状态,内部RAM和所有特殊的寄存器值将保持不变。
这种状态可被任何一个中断所终止或通过硬件复位。
掉电模式是VCC电压低于电源下限,振荡器停止振动,CPU停止执行指令。
该芯片内RAM和特殊功能寄存器值保持不变,直到掉电模式被终止。
只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位掉电模式可被终止。
4.2温度传感器DS18B20
温度传感器是该系统的测量器件,温度传感器的好坏直接影响到测量结果,所以本文将对温度传感器的选择详细介绍。
根据本次设计论文的要求,包括精度要求等,经过分析,本文决定选择数字温度传感器DSB8B20。
下面将给予介绍。
(1)DS18B20的概述
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测环境的温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
(2)DS18B20的内部结构
图4.3是DS18B20的内部结构图
图4.3DS18B20的内部结构
由图可知,DS18B20主要由4部分组成:
64位ROM、温度传感器、非挥发的温
警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图4.4所示,
图4.4DS18B20的管脚排列
DS18B20的3个管脚说明如下:
DQ为数字信号输入/输出端。
是漏极开路一线接口。
也在寄生电源接线方式时,给设备提供电源。
GND为电源地。
VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
DS18B20的64位ROM保存了设备的唯一序列码,是DS18B20的地址序列码,每一个DS18B20的地址序列码是不同的,这样就可以实现一根总线上挂接多个DS18B20。
高速闪存(scratchpad)包括2个字节的温度寄存器。
保存了温度传感器的数字输出。
该闪存还提供了对上限(TH)和下限(TL)的超标报警寄存器、配置寄存器(一个字节)的访问。
TH、TL和配置寄存器是EEPROM,所以系统掉电时可以保存数据。
DS18B20利用DALLAS的单总线控制协议,实现了利用单线控制信号在总线上进行通信。
由于所有的设备通过漏极开路端(DQ脚)连在总线上,控制线需要一个大约5K上拉电阻。
在这一总线控制系统中,微控制器通过唯一的64位地址序列码识别和访问总线上的器件。
由于地址序列码不同,所以连接在总线上的DS18B20可以说是无限的。
(3)DS18B20的寄存器
DS18B20存储器组织结构如表4.2所示:
表4.2存储器的组织图
高速闪存(上电状态)
字节0
温度底字节
字节1
温度高字节
字节2
高温报警用户字节“1”
字节3
低温报警用户字节“2”
字节4
配置寄存器
字节5
保留(FFH)
字节6
保留(0CH)
字节7
保留(10H)
字节8
CRC校验
字节0和字节1分别包含温度寄存器的LSB和MSB,这些字节是只读的,字节2和字节3提供对TH(上限报警触发寄存器)和TL(下限报警触发寄存器)的访问,字节4包配置寄存数据,字节5、6和7保留做器件内部使用,不能被改写,当读时,这些字节返回全1值,字节8是只读的,含有字节0到字节的CRC校验。
高速闪存的第四个字节包含配置寄存器,其组织结构如下表4.3所示:
表4.3配置寄存器
Bit7bit6bit5bit4bit3bit2bit1bit0
0
R0
R1
1
1
1
1
1
表4.4测温分辨率配置
R1
R1
分辨率
最大转换时间
0
0
9bit
93.75ms
0
1
10bit
187.5ms
1
0
11bit
375ms
1
1
12bit
750ms
(4)DS18B20的读写时序
访问DS18B20的顺序如下:
----初始化;
----ROM命令(接着是任何需要的数据交换);
----DS18B20的函数命令(接着是任何需要的数据交换);
每一次访问DS18B20时必须要按照这一顺序,如果其中的任何一个步骤缺少或打乱,DS18B20将不会响应。
1初始化时序
初始化时序如图4.5:
图4.5DS18B20初始化时序
所有与DS18B20的通信都要首先初始化,从而才能进行下一部的工作:
控制器发出复位脉冲,DS18B20以存在脉冲响应。
图4.5给出了描述。
当DS18B20发出存在脉冲对复位响应时,它指示控制器该DS18B20已经在总线上并准备好操作。
②读/写时序
控制器在写时序到数据到DS18B20,在读时序从DS18B20中读数据,每一个总线时序传送一个数据位。
读/写时序见下图4.6
(a)写时序
(b)读时序
图4.6DS18B20的工作时序图
③写时序
有两种类型的写时序:
写1时序和写0时序。
控制器用写“1”时序写逻辑“1”到DS18B20,用写“0”时序写逻辑“0”到DS18B20。
所有写时序必须持续60μs,每一个写时序之间必须要至少有1μs的恢复时间。
两种类型的写时序都从控制器把总线拉低开始。
为产生写“1”的时序,在将总线拉低之后,总线控制器必须在15μs内释放总线。
总线释放后,5K的上拉电阻将总线电平抬高。
为产生写“0”时序,在总线拉低后,控制器在整个时序内必须持续控制总线为低电平(至少60μs)。
DS18B20在控制器发出写时序后的15-60μs的时间内采样总线。
如果在采样窗口期间总线为高,“1”就被写到DS18B20;如果在采样窗口期间为低电平,则“0”就被写入DS18B20。
④读时序
当总线发出读时序时,DS18B20可以发送数据到控制器。
所有读时序必须持续最少60μs,每一个读时序之间必须有至少1μs的恢复时间。
读时序从控制设备将总线拉低至少1μs后释放总线开始。
控制器启动读时序后,DS18B20开始在总线上传送“1”或者“0”。
DS18B20通过保持总线为高发送“1”,将总线拉低发送“0”。
发送“0”时,DS18B20在60μs时释放总线