计算机控制技术论文基于18B20的双路温度采集器设计.docx

上传人:b****6 文档编号:3303875 上传时间:2022-11-21 格式:DOCX 页数:39 大小:295.22KB
下载 相关 举报
计算机控制技术论文基于18B20的双路温度采集器设计.docx_第1页
第1页 / 共39页
计算机控制技术论文基于18B20的双路温度采集器设计.docx_第2页
第2页 / 共39页
计算机控制技术论文基于18B20的双路温度采集器设计.docx_第3页
第3页 / 共39页
计算机控制技术论文基于18B20的双路温度采集器设计.docx_第4页
第4页 / 共39页
计算机控制技术论文基于18B20的双路温度采集器设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

计算机控制技术论文基于18B20的双路温度采集器设计.docx

《计算机控制技术论文基于18B20的双路温度采集器设计.docx》由会员分享,可在线阅读,更多相关《计算机控制技术论文基于18B20的双路温度采集器设计.docx(39页珍藏版)》请在冰豆网上搜索。

计算机控制技术论文基于18B20的双路温度采集器设计.docx

计算机控制技术论文基于18B20的双路温度采集器设计

《计算机控制技术》课程设计任务书

基于18B20的双路温度采集器设计

1、设计内容

采用单片机(如AT89C52)作为控制芯片,用LCD显示测量温度值,例用数字式温度传感器18B20采集温度;设计系统的电路图,并分析电路工作过程。

写出程序的流程图,说明系统的工作原理。

设定测温环境的温度在0-50度之内,否则报警。

2、设计要求:

1)设计系统的硬件原理电路图,并说明各部分的设计及工作原理。

2)设计系统的软件,包括系统的流程框图、及系统源程序及注解源程序。

引言

 

工业控制计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专业技术,它主要研究如何将计算机技术、通信技术、和自动控制理论应用于工业生产过程,并设计所需要的计算机控制系统。

计算机控制系统的发展大致上可以分为以下几个阶段:

(1)开创时期(1955~1962年),

(2)直接数字控制时期(1962~1967年),(3)小型计算机时期(1967~1972年),(4)微型计算机时期(1972年至今)。

尤其在近代代社会,随着计算机技术的发展和各种相关理论的成熟,计算机控制技术更是取得了巨大的发展,现在工程和科学技术中,担负着重要的角色。

从本质上看,计算机控制系统的工作原理可以归纳为:

实时数据采集、实时控制决策、实时控制输出。

系统硬件一般包含测量变送、执行机构、模拟量输入输出通道、数字量输入输出通道、人机接口、内外部总线等结构。

目前常用的计算机控制系统主机有:

可编程序控制器(PLC)、工控机(IPC)、单片机(MCU)、DSP、智能调节器等。

在这些控制系统主机中,单片机以其低廉的价格和较高的性能得到了广泛应用。

通过对单片机及其外围常用元器件的学习和掌握,对进一步了解计算机控制是很有帮助的。

应此,在结束计算机控制技术这门课程的学习后,锻炼自己的动手能力,设计一个数字式温度计也是很有意义的。

本文主要讲述怎样设计一个由单片机和温度传感器构成的一个小型实时系统,给出了具体的设计过程和详细的步骤,并且此系统已经在实际中做成了实例。

目录

引言2

第一章﷒设计方案论证4

1.1系统主机选择4

1.2温度传感器选择5

1.3液晶选择6

1.4报警电路选择6

第二章硬件电路设计7

2.1单片机最小系统设计7

2.2测温电路设计10

2.3显示电路设计11

2.4报警电路设计12

第三章软件设计13

3.1测温程序13

3.2显示程序17

3.3报警程序20

3.4主程序20

第四章小结22

参考文献23

附录1原理图24

附录2元器件清单25

附录3源程序26

第一章﷒设计方案论证

日常生活中很多地方都需要应用测温系统,比如冰箱中需要知道内部的温度来决定压缩机是否工作,热水器需要知道当前的水温是否符合设定的温度值,空调需要知道室内温度以决定是否制冷等等。

一般来说一个测温系统由以下三部分组成:

控制部分、测量部分、显示部分。

当然,显示部分并不是必需的,但有显示部分的系统更能让使用者了解系统的运行。

1.1系统主机选择

计算机控制系统各主机有各自的特点:

·PLC专为在工业环境下应用而设,可靠性高,编程容易,功能完善,扩展灵活,安装调试方便。

·工控机是一种面向工业控制、采用标准总线技术和开放式体系结构的计算,配有丰富的外围接口,具有可靠性高,可维修性好,环境适应力强,控制实时性强,输入输出通道完善等优点。

·单片机体积小、功能全、价格低、软件丰富、面向控制、开发应用方便。

·DSP采用改进型的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊指令,可以用来快速地实现各种数字信号处理。

·智能调节器是一种数字化的智能仪表,以为处理器或单片微型计算机为核心,具有数据通信功能,能完成生产过程1~4个回路直接数字控制任务,在DCS的分散过程控制级中得到广泛应用。

考虑成本、开发周期、应用等方面,在本次设计中采用单片机来作为控制系统主机。

目前市场上主流的单片机有Intel公司的MCS系列、Motorola公司的M68HC系列、Microchip公司的PIC系列、以及Philips、Atmel、NEC、STC等公司的产品。

本次设计选择的是Atmel公司的AT89C52,是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。

有关AT89C52的功能特性,可以参看第二章,硬件电路设计部分。

1.2温度传感器选择

温度传感器是检测温度的器件,其种类最多,应用最广,发展最快。

目前最市场山主要有热敏电阻、双金属片、集成化半导体温度传感器和热电偶四大类。

·热敏电阻(其中分正温度和负温度特性两类),其根据电阻材料随温度的变化而影响材料的电阻率随之相应变化的原理实现温度传感的,其特点是工作温度范围广,成本低、但线性差,误差较大,适用于温控精度要求不高的场合。

·双金属片通常是将两片不同的金属叠在一起,根据不同金属的热膨胀率的差异,导致双金属机构产生于温度变化相对应的形变的原理做成的,其特点的温度范围大,但精度极低。

·集成化半导体温度传感器是由硅二极管和运算放大器组成的,是三端器件,其根据硅二极管正向压降随温度的升高而线性降低的原理,由于线性降低的线性精度虽然良好,但变化值微小,所以要通过运算放大器线性放大,另外,通过改变运算放大器的负反馈电阻的值,实现输出不同电压变化范围的各规格产品,以适应不同设备的要求。

其特点是精度高,热惯性小,响应快,输出负载能力大(抗电磁干扰能力强),成本较高,温度适用范围小。

·热电偶是根据两个不同导体或半导体在不同的温度下之间产生电动势的所谓的温差发电效应产生的传感器,其并非真正意义上的温度传感器,但它对温差敏感。

它们的工作原理可以查看相关资料,这里不做详细阐述。

本次设计中采用的是集成化半导体温度传感器DS18B20。

DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。

与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

1.3液晶选择

液晶显示器(LCD)的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。

LCD以其微功耗、体积小、重量轻、超薄型等诸多优点在袖珍式仪表和低功耗系统中得到越来越广泛的应用。

应用当中通常是将显示屏和控制器集成在一块电路板上,称为液晶显示模块(LCM)。

目前市场山主要有段式、字符式、点阵式三种类型的液晶显示模块,其中字符型液晶显示模块已经成为单片机应用设计中最常用的信息显示器件。

本设计中,显示的内容比较简单(字母或者数字),因此选择字符型的显示模块性价比高。

这里采用LCD1602,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单。

1.4报警电路选择

目前市场上存在各种各样的报警电路,比如声光触发、触摸断线出发、红外触发等等。

一般来说,一个系统都需要设计一个报警电路,以提醒使用者当前系统所出现的错误或者需要引起操作者的注意。

考虑本次设计的数字式温度表,只需要在测量的温度超出范围时,提醒使用者即可。

因此,相应的报警电路不需要复杂的功能,只需采用一个发光二极管和一个蜂鸣器即可。

第二章硬件电路设计

本次设计的双路测温系统主要由以下部分组成:

控制电路(AT89C52)、测量电路(两个DS18B20)、显示电路(LCD1602)、报警电路。

图1所示为系统的组成框图。

报警电路

显示电路

测量电路

图1系统框图

图2AT89C52(PDIP封装)

2.1单片机最小系统设计

单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:

单片机、晶振电路、复位电路、按键输入、显示输出等。

应用89C52单片机设计并制作一个单片机最小系统,达到如下基本要求:

具有上电复位和手动复位功能。

使用单片机片内程序存储器。

具有基本的人机交互接口:

按键输入、LED显示功能。

具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。

由于本次设计中并没有按键输入功能,严格来说,并不能称为最小系统,使用它来称呼只是为方便叙述。

一AT89C52功能特性

1.特性概述

AT89C52与MCS—51产品指令和引脚完全兼容,自带8k字节Flash闪速存储器和256字节内部RAM有,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,0Hz—24MHz全静态操作,并支持两种软件可选的节电工作模式。

AT89C52极限参数:

工作温度-55℃至+125℃

最高工作电压6.6v

直流输出电流15mA

任一引脚对地电压-1.0v至+7.0v

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

图2为PDIP封装的AT89C52。

限于篇幅,有关AT89C52的详细内容,这里不做阐述,读者可以参看其数据手册或者相关书籍。

2.相关引脚及功能:

·P0口:

P0口是一组8位漏极开路型双向I/O口(引脚32~39),也即地址/数据总线复用口。

一般在使用时,需外加上拉电阻。

·P1、P2、P3口:

P1(引脚1~8)、P2(引脚21~28)、P3(引脚10~17)是带内部上拉电阻的8位双向I/O口。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。

P3口除了作为一般的I/O口线外,每个引脚都具有第二功能。

·RST:

复位输入(引脚9)。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

·ALE/PROG:

(引脚30)当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

·PSEN:

程序储存允许(PSEN)输出(引脚29)是外部程序存储器的读选通信号。

·EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

·XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

·XTAL2:

振荡器反相放大器的输出端。

3.存储器资源

AT89C52采用哈佛结构,程序存储器和数据存储器分开,具有各自独立的寻址方式、寻址空间和控制信号,并且均可扩展外部存储器,最大寻址空间寻址为64K。

·程序存储器:

如果EA引脚接地,程序读取只从外部存储器开始。

如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:

2000H~FFFFH。

·数据存储器:

AT89C52有256字节片内数据存储器,高128字节与特殊功能寄存器重叠。

也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的,通过寻址方式决定是访问RAM还是特殊功能寄存器空间。

二时钟电路

时钟电路是单片机正常工作的基础,AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3。

石英晶体时:

C1,C2=30pF±10pF

图3内部振荡器

外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,推荐电容使用30pF±10pF。

晶体振荡频率f一般选择f≤12MHz。

三复位电路

89C52在上电时,在复位引脚RST上出现两个机器周期以上的高电平,单片机内则初始复位;当RST由高电平变低电平时,89C52从0000H地址开始执行程序。

有时因为外界的干扰而使得程序进入死循环或者偏离正常的程序执行,须由人工复位。

结合以上两种情况,常用的复位电路如图4所示。

其中:

开关RST用于人工复位,接通时可以保证RST引脚获得足够长时间的高电平;极性电容C,在89C52上电时,对C充电,C与电阻R相连的一段端保持高电平,从而保证RST引脚获得大于两个机器周期的高电平;无极性电容Ch主要起滤波作用,滤去高频谐波;二极管VD的作用是,当电源电压瞬间下降时,使电容迅速放电。

C=22uF,Ch=0.01uF,R=10k(经验值)

图4复位电路

2.2测温电路设计

DALLAS

18B20

123

DS18B20采用单总线技术,既可通过串行口线,也可通过其它I/O口线与微机接口,传感器内部内置A/D,直接输出9~12位(含符号位)的被测温度值,测温范围为-55℃~+125℃,测量分辨率最高可达0.0625℃,12为精度转换时间750ms(典型);每片DS18B20内含64bit经过激光修正的只读存储器ROM,开始8位是产品类型编码,接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC(循环冗余校验)码,因此任意多个DSl820可以存放在同一条单线总线上;从DSl8B20送出或从主机送入DS18B20仅需一条线(和地线);每只DS18B20都可以设置成两种供电方式即数据总线供电方式和外部供电方式,采取数据总线供电方式可以节省一根导线但完成温度测量的时间较长,采取外部供电方式则多用一根导线但测量速度较快。

DS18B20的引脚图如图5所示。

引脚说明:

GND地线

DQ数据I/O

Vdd可选电源线

图5DS18B20

根据18B20的单总线特性,结合设计的目的(两路温度测量),因此这里采用的方案是:

利用单片机的一个I/O口作为单总线使用,两路18B20挂接在单总线上,由于单总线的开漏特性,需要外接一个4.7k的上拉电阻,18B20采用外电源供电工作方式,以提高测量速度。

设计的电路如图6所示。

16................1

图7LCD1602

图6两路DS18B20

2.3显示电路设计

1602字符型LCD模块的应用非常广泛,而各种液晶厂家均有提供几乎都是同样规格的1602模块或兼容模块,尽管各厂家的对其各自的产品命名不尽相同;1602字符型LCD模块最初采用的LCD控制器采用的是HD44780,在各厂家生产的1602模块当中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的;当然,很多厂商提供了不同的字符颜色、背光色之类的显示模块。

通常所见到的1602基本规格:

显示容量:

16x2个字符

芯片工作电压:

4.5~5.5v

工作电流:

2.0mA(5.0v)

模块最佳工作电压:

5.0v

引脚说明:

1GND电源地

2Vcc电源+5V

3Vo对比度调节

4RS寄存器选择(H=数据选择,L=指令选择)

5RW读写信号

6E使能信号

7~14DB0~DB7数据线

15ALED+

16KLED-(不带背光功能的1602只有1~14引脚,没有15、16引脚)

图7为LCD1602示意图,设计的显示电路如图8所示。

为便于调节对比度,在1、2引脚间加一可调电阻。

7~14数据引脚接89C52的P0口,RS、RW、E三个控制端接三个I/O口。

两个背光引脚这里不使用。

图9报警电路

图8显示电路

2.4报警电路设计

本次设计的报警电路比较简单,由一个放光二极管和一个蜂鸣器组成。

由于89C52I/O口驱动电流较小,因此发光二极管外接电源,串联一个电阻后接至I/O口;蜂鸣器由一个三极管驱动,三极管由89C52的I/O口控制(图9)。

主要电路的设计都已完成,考虑今后的可扩展性,上面所述未分配的引脚按如下方式分配:

DS18B20:

P2.0作为两路18B20的单总线使用;

LCD1602:

RS–P1.2,RW–P1.1,E–P1.0;

报警电路:

P1.3控制发光二极管,P3.1控制蜂鸣器。

第三章软件设计

根据第二章中系统的组成,相应程序的设计思路:

系统初始化

 

测量温度

图11单总线处理次序

是否超过范围

报警

显示温度

图12测温程序框图

图10系统程序框图

3.1测温程序

由于DS18B20采用单总线方式来与主机实现通信,而单总线在任何时刻只能有一个控制信号或数据,数据要能在单片机和单总线芯片之间实现可靠的传送,遵循单总线处理次序通信协议,确保数据有条不紊地传送,图11为处理次序示意图。

一DSl8B20工作过程及时序

DSl8B20工作过程中的协议:

初始化→RoM操作命令→存储器操作命令→处理数据

ROM操作命令:

MatchROM(匹配ROM)[55H]、SkipROM(跳过ROM][CCH]、SearchROM(搜索ROM)[F0H]

存储器操作命令:

ReadScratchpad(读暂存存储器)[BEH]、ConvertTemperature(温度变换)[44H]

除上述命令外还有其他操作指令,详细的可以参考相关技术文档。

由于是双路测温,总线上挂有两个DS18B20,因此必须分辨是对哪个器件的操作,

因此需要使用matchrom命令,确定哪个器件在与主机通信,以保证通信的正确。

由此可得出测温程序的流程框图(图12)。

DS18B20正常工作对时序要求比较严格,图13(a、b、c)所示分别为初始化、读时间隙、写时间隙的时序图。

二源程序

a初始化时序

1.延时函数

由于DS18B20的时序精准读多为us级的延时,因此有必要独立编写延时函数。

voiddelay5(ucharus)

{

while(--us)

b读时间隙

{_nop_();_nop_();_nop_();}

}

对于12M晶振,忽略函数调用和返回时间(2+2=4us)us=1时,函数可以延时约为5us(对于11.0592M晶振,时间会大于5us),如果调用时us较大,误差是可以接受的。

c写时间隙

2.初始化函数

voidds18b20rst()

{

ds_dq=1;//拉高电平,准备复位

delay5

(1);//稍作延时

ds_dq=0;//ds_dq拉低,复位信号作用,DS18B20复位

delay5(96);//精确延时大于480us(非常重要)

ds_dq=1;//释放总线,如果总线上存在18B20,会拉低电平60~240us

delay5(90);

}

3.读/写数据

单总线传输,每次只能传送一位数据,参照图13b、c编写的读/写一位数据如下:

bitreadbit()

{

bitv;

ds_dq=1;//拉高电平,准备读取

_nop_();

_nop_();

ds_dq=0;//拉低电平,开始读时间隙

_nop_();

_nop_();

_nop_();

_nop_();

ds_dq=1;

_nop_();

_nop_();

_nop_();

_nop_();

v=ds_dq;//读取值

delay5(12);

returnv;

}

voidwritebit(bitv)

{

ds_dq=1;//拉高电平,准备写

_nop_();

_nop_();

ds_dq=0;//开始写时间隙

ds_dq=v;//发送数据

delay5(12);

ds_dq=1;

delay5

(1);

}

实际应用当中,需要读取一个字节或写一个字节数据(8为数据),因此编写了读/写一字节的函数,具体见附录三中都是ds18b20.h中的ds18b20rd()和ds18b20wr()函数。

4.匹配ROM

假定DS18B20的64位rom编码存放在数组sensor中,程序如下:

voidmatchrom(uchar*sensor)

{

uchari;

ds18b20wr(MatchRom);//发送匹配ROM命令

for(i=0;i<8;i++)ds18b20wr(*(sensor+i));//发送ROM代码

}

3.搜索ROM

初始化时,单片机并不知道总线上有几个DS18B20,或者并不知道他们的器件ROM编号,系统对总线上器件的数量和每个器件的ROM的识别与搜索是通过searchrom命令与算法配合来实现的。

具体工作过程:

总线主机发布ROM搜索命令后执行一次读,总线上所有器件就把它们各自ROM编码的第一位放到总线来作出响应。

这次读获得的数据是所有器件放在总线上数据的“与”。

再执行一次读,因为ROM搜索命令正在执行所以总线上所有器件把各自ROM编码的第一位的补码放在总线上,第二次读获得的数据也是所有器件放在总线上数据的“与”。

对第一位的“两读”就此完成。

之后主机再次进行的“两读”则是针对ROM编码的第二位,以此类推。

从“两读”获得的数据意义见表1。

对ROM编码的某一位“两读”之后,对该位进行“-写”操作。

“-写”操作写的数据要根据“两读”获得的数据来确定。

如果“两读”数据为00,则表示总线上器件在该位上数据发生冲突,“-写”写的数据此种情况下具有“排除”的作用,如果器件ROM编码在该位上的数据与“-写”写的数据相同,则继续保持与总线的联系。

如果不相同则此器件从总线上“排除”,不再响应主机发布的命令,直到主机进行下一次复位。

如果“两读”数据为01,则表示总线上所有器件在该位上均位0,为保持器件与总线的联系,“-写”操作主机应写0。

同理,如“两读”数据为10,主机则应写1。

表1“两读”数据意义

“两读”数据

解释

00

有器件在总线上,总线上所有器件在此数据位上发生冲突

01

有器件在总线

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1