完整版温度采集系统毕业课程设计.docx
《完整版温度采集系统毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版温度采集系统毕业课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
完整版温度采集系统毕业课程设计
1引言
1.1单片机概述
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
它又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了IO设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
1.2温度采集设计背景
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。
在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技构中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域己经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段
①传统的分立式温度传感器
②模拟集成温度传感器
③智能温度传感器
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍AD590的结构特征及控制方法,它是美国ANALOGDEVICES公司的单片集成两端感温电流源,并对以此传感器,AT89C51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。
与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。
该设计控制器使用ATMBL公司的AT89C51单片机,测温传感器使用AD590,最终用LED来实现温度显示。
2设计目的任务和要求
2.1设计目的
本设计包括确定控制任务、系统总体方案设计、硬件系统设计、软件程序的设计等,使学生进一步学习与理解计算机控制系统的构成原理、接口电路与应用程序,巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践技能;
2.2设计任务
以8086CPU(或单片机)为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。
2.3设计内容
本设计所用器件主要有传感器,AD转换器,8086CPU(或单片机),可编程并行接口8255(或不用),LED显示器等。
首先传感器把所测的温度转换为电压,输入AD转换器中进行转换,然后再把得到的二进制数经过CPU在LED上显示出来。
3系统总体方案设计
3.1方案设计
该系统主要有温度测量和数据采集两部分电路组成,在温度测量中用电测法测量温度时,首先要通过温度传感器将温度转换成电量,温度传感器有好多种方式,这里选择AD590,它是一种半导体感受式的,由测温电阻、二极管和集成电路器件组成。
利用温度传感器测出温度后,在将随被测温度变化的电压或电流采集过来,利用AD转换器即ADC0809转换后,就可以用单片机进行数据的处理,在显示电路上,将被测温度显示出来。
3.2总体设计框图
4系统器件的选择和性能介绍
4.1CPU的选择
本次设计以CPU选用AT89C5l作为控制芯片.AT89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上.使用方便等优点。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的引脚结构图所图示,其管脚说明如下:
图
(1)AT89C51管脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据地址的第八位。
P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的16。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EAVPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
4.2温度传感器
AD590是一种单片集成的两端式温度敏感电流源,它有金属壳,小型的扁平封装芯片和不锈钢等几种封装形式,实验平台利用IC温度传感器AD590作为测温器,AD590是一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1A最大电流的变化或1摄氏度等效误差。
图
(2)传感器工作原理图
上图给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有10℃的变化时输出电压变化为20mV,即该电路M点电压随温度变化为2mV℃。
将温度传感器输出的小信号跟随放大19.2倍左右后,送至8位AD转换器转换成数字量。
4.3AD转换器
模数转换采用ADC0809,它是芯片输出端具有可控的三态门,这种芯片的输出端可以直接和系统总线相连,由读信号控制三态门,转换结束后,CPU执行一条输入指令,从而产生读信号,将数据从AD转换器取出。
ADC0809是典型的8位8通道逐次逼近式AD转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存译码电路,其转换时间为100µs左右。
ADC0809内部结构如图所示,图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个AD转换,地址锁存与译码电路完成对A、B、C3个地址位进行锁存和译码,其译码输出用于通道选择。
8位AD转换器是逐次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。
输出器用于存放和输出转换得到的数字量。
图(3)AD转换器工作原理图
因为所选的AD0809所转换的电压范围不大,这样一来,当所采集的温度是0时,时,通过8255A编程就可在显示器上显示3℃。
4.48255并行接口
当温度通过AD590后,连续的物理量转换为连续的电压量,电压信号输入到AD
模拟信号输入端。
当工作时,CPU用输出指令将PC0置零,使BC端得到一个低电平从而启动转换。
此后用输入指令不断读端口PC4~PC7测试并判断PC4是否为零。
如果PC4为零则说明完成一次AD转换。
此时在CPU的读周期作用下它向8255A发出个读信号。
之后便从A端口读数据;在写周期的作用下CPU向8255A发出写信号,此后数据就会从B端口输出。
B端口连接着LED,它们在PC3~PC1的控制下显示当前温度。
8255A方式0的工作特点:
方式0也叫基本输入输出方式。
在这种方式下,端口A和端口B可以通过方式择字规定为输入口或者输出口,端口C分为两个4位端口,高4位一个端口,低4一个端口。
这两个四位端口也可由方式选择字规定为输入口或输出口。
方式0的使用场合有两种,一种是同步传送,另一种是查询式传送。
这里采用查方式。
查询式传输时,需要有应答信号。
但是,在方式0情况下,没有规定固定的答信号,所以,这时将端口A和端口B作为数据端口,把端口C的4个数位(高或低4均可)一些控制信号,而把端口C的另外4个数位规定为输入口,用来读入设的状态。
这样,就利用端口C配合了端口A和端口B的输入输出操作。
4.5LED介绍
由于输出的电压量范围是0~5V即转换为数字量后为0~FF之间。
所以,要使温
度表范围为0~85℃,需把0~FF除以3。
经过CPU未经处理过的数值是以ASCII码的方显示在电脑屏幕上的,还需将ASCII码转换成十进制显示。
为了便于读数。
在LE灯上的显示将设计为8421码的方式显示。
转换方法在程序中有所注明。
图(4)LED实物图
5系统整体硬件电路
5.1主板电路
系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单机板电路等,见附录。
其中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同LED数码管将没有被测温度值显示。
5.2显示电路
显示电路是使用74HC373锁存器和74LS138译码器分别控制段选和位选,利用动态显示。
处是LED数码管数量大时,电路简单。
图(5)LED电路显示图
5.3分频电路
ADC0809需要提供时钟信号,单片机在工作时ALE引脚输出2MHZ时钟信号,需要分频后供0809做时钟信号使用。
图(6)ADC0809芯片的分频电路
5.4时钟电路设计
晶振的频率决定了微控制器的时钟频率,8051晶振的频率范围,0Hz~33MHz。
电容器C1、C2起稳定振荡频率、快速起振的作用。
电容值一般为20~40pf。
微控制器内部有一个高增益运算放大器和一个反馈电阻器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
图(7)晶振电路原理图
5.5温度报警电路
本设计的发挥部分,是加入了报警,如果我们所设计的系统是监控某一设备,当设备的温度达到我们所设定的温度值时,系统会产生报警.报警时由单片机产生一定频率的脉冲,由P2.7引脚输出,P2.7外接一只PNP的三极管来驱动杨声器发出声音,以便操作员来维护,从而达到报警的目的。
图(8)温度报警电路
6系统流程图
图(9)系统流程图
7软件程序设计
PORTAEQU020H;定义端口地址
PORTBEQU021H
PORTCEQU022H
PORTDEQU023H
DATASEGMENT
TABLEDB40H
DB4FH
DB24H
DB30H
DB19H
DB12H
DB02H
DB78H
DB00H
DB10H
BUFDA1DB?
BUFDA2DB?
BUFDA3DB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,98H
OUTPORTD,AL;8255的初始化
;*****************************
MOVAL,01
OUTPORTC,AL
MOVAL,00
OUTPORTC,AL;PC0为0,启动AD转换
FIND:
INAL,PORTC
TESTAL,010H
JNZFIND;读PC4的值,如为1则继续查询
MOVAL,01
OUTPORTC,AL;使PC0为1,撤消启动信号
INAL,PORTA;读取转换数据
;******************************
MOVCL,100;计算百位,十位,个位
DIVCL
MOVBUFDA1,AL
XORAL,AL
MOVCL,10
MOVBL,AH
MOVAL,BL
MOVAH,0
DIVCL
MOVBUFDA2,AL
MOVBUFDA3,AH
;******************************
DISPLAY:
MOVBX,OFFSETTABLE
MOVAL,[DI+0]
XLAT;换码
MOVDX,PORTB
OUTDX,AL
MOVCX,30H;延迟程序
DELAY:
LOOPDELAY
RET
;**********************************
MOVCX,30H
DISPLAY1:
MOVAL,06H
OUTPORTD,AL
MOVAL,05H
OUTPORTD,AL
MOVAL,03H
OUTPORTD,AL
MOVDI,OFFSETBUFDA1
CALLDISPLAY;使LED0工作
MOVAL,07H
OUTPORTD,AL
MOVAL,04H
OUTPORTD,AL
MOVAL,03H
OUTPORTD,AL
MOVDI,OFFSETBUFDA2
CALLDISPLAY;使LED1工作
MOVAL,07H
OUTPORTD,AL
MOVAL,05H
OUTPORTD,AL
MOVAL,02H
OUTPORTD,AL
MOVDI,OFFSETBUFDA3
CALLDISPLAY;使LED2工作
LOOPDISPLAY1;延迟
;***********************************
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
8总结心得
本课程设计是基于AT89C51单片机的温室检测系统。
该课程是以单片机8051为核心,以热敏电阻为测温元件对温度进行有效的测量,通过ADC0809芯片将电压信号转化为数字信号,经过单片机处理后通过8255芯片扩展的IO以动态方式显示,再加上相应的时钟电路、复位电路、分频电路,最后编写程序,温度采集系统的设计就完成了。
在做课程设计的过程中,除了了解相关设计的硬件原理电路图外,还要了解具体的型号,熟悉相关软件的使用,如AutoCAD、Protel、Word等,虽然在实际操作过程中遇到了很多困难,但经过不懈努力还是完成了本课程的设计。
在这一周的设计中,不仅使我增长了很多课堂上所学不到的知识,而且还让我对AD转换和扩展IO有了更深入的了解。
对一些单片机原理及应用有了更加深刻的认识。