数字温度计电路设计
摘 要
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术。本文将介绍一种基于单片机控制的数字温度计,这款简易数字温度计主要由集成温度传感器AD590、信号处理电路和逐次逼近式A/D转换器ADC0809和基于AT89C51的4位共阳极LED数码管扩展显示器组成。这种温度计具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便,软硬件结构模块化,电路简单,易于实现的特点,十分具有创新性、科学性、可行性。
关键词:温度传感器,A/D转换器,LED数码管,单片机
Design of Digital Thermograph Circuit
Abstract
With the progress of The Times and development, Chip technology has spread to our life, work, scientific research, each field, has become a more mature technology. This paper introduces a method based on single chip microcomputer control digital thermometer, this simple digital thermometer mainly by integrated temperature sensor AD590 to, signal processing circuits and successive approximation of the A/D converter ADC0809 based on AT89C51 and four altogether anode LED digital display expansion pipe. The thermometer has excellent linearity, high sensitivity, stable performance, strong anti-jamming capability, use convenient, software and hardware structure, the circuit module is simple and easy to implement, and very innovative, scientific and feasible.
Key words: The temperature sensor, A/D converter, LED digital tube , Micro Controller
1 概述
温度是表征物体冷热程度的物理量,是国际单位制七个基本物理量之一,它对产品的质量、生产效率、能源节约、生产安全、人体健康起着非常重要的作用。在日常生活和工农业生产中,经常需要测量温度,但普通温度计存在许多的缺陷,如测温时间长、量程小、精确度低、无法远距离测量等,给温度的测量带来了不便。随着单片机技术在日用电子产品中的应用越来越广泛,基于单片机应用的集成电路数字温度计能完全克服以上缺点,数字式温度计不仅读数方便,而且测量较精确,得到广泛应用。
本课题设计的一款简易数字温度计主要由集成温度传感器AD590、信号处理电路和逐次逼近式A/D转换器ADC0809和基于AT89C51的4位共阳极LED数码管扩展显示器组成。这种温度计具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便,软硬件结构模块化,电路简单,易于实现的特点,该设计十分具有创新性、科学性、可行性。
2 设计过程
2.1分析设计要求,构思总体方案
从题目可知该课题的任务主要有三个方面。其一是设计温度采集电路,采集周围环境温度;其二是数据转换电路,从而实现所测温度模拟量转化为易输出的数字量;其三是数据输出电路,实现所采集温度值的显示。所以,整个系统可分为三部分,即采温电路、转换电路、显示电路,其中,采温电路包括温度采集电路和放大器;转换电路是最复杂最重要的,它由A/D转换器和单片机处理芯片组成。
2.2 主要元器件选取
通常,在自然情况下,窗户的开与关与生活环境和人体的舒适度有关,温度的检测系统是该设计的关键。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,我们在设计采温电路时,虽然传感器有很多种,但由于很多原因,如:热敏电阻的线性不是太好,而热电偶虽有:1)温度测范围宽;2)性能稳定、准确可靠;3)信号可以远传和记录的特点,但热电偶由于热电势小,因而灵敏度较低,而且我所要求的范围也不是太高,所以我们选择AD590温度信号的采集电路。温度传感器AD590具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。
模-数转换器(简称ADC或A/D转换器)用来将模拟量转换成数字量。N位模-数转换器输出N位二进制数,它正比于加在输入端的模拟电压。A/D转换器的种类很多,按工作原理的不同,可以分为双积分型、逐次比较型、并行比较型等。并行比较型ADC的速度最快,但成本也最高;双积分型ADC精度高、抗干扰能力强,但速度太慢,适合转换缓慢变化的信号;逐次比较型ADC有较高的转换精度、工作速度中等、成本低等优点,因此获得广泛的应用。本设计采用逐次逼近式A/D转换器ADC0809,它有8路模拟量输入,有利于系统设计,同时也便于与AT89C51单片机连接。
本设计采用AT89S51单片机,它是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4 kbytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,
功能强大。AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
2.3 数字温度计的工作原理
利用温度传感器AD590采集温度,通过运算放大器将温度引起的电流变化转化为电压变化,然后经过逐次逼近式A/D转换器ADC0809将模拟信号转化为数字信号,并送入单片机处理芯片AT89C51处理,经过处理的信号送入显示电路,由共阳极LED数码管显示采集到的温度值。原理框图如图2.1所示。
图2.1 原理框架图
3 单元电路介绍
3.1 采温电路
采温电路用二端温度传感器AD590M采集数据,放大电路输入口连接温度传感器AD590的两个引脚,信号经放大器放大。在设计测温电路时,首先应将温度变化引起的电流变化转换成电压变化。由于AD590为电流输出元件,它的温度每升高或降低1K,电流就增加或减少1μA。当AD590的电流通过一个10kΩ的电阻时,这个电阻上的压降为10mV,即转换成10mV。为了使此电阻精确到0.1%,可用一个9.6kΩ的电阻与一个1kΩ电位器串联,然后通过调节电位器来获得精确的10kΩ。AD590是一个随温度变化而输出不同电流的恒流源,温度每升高1K,电流就增加1μA。当温度为0℃时,输出电流约为273μA,所以图中A点电压≈273μA×10kΩ≈2.73V。A1和R2组成高输入阻抗(约1013Ω)、低输出阻抗(约10-1Ω)的电压跟随器,以减小后续测量电路对的UA干扰,UA=UB(UB为B点电压)。
另外,A2和R3、R4、R5、R6、W1组成反相加法器,UC=-[UB
R35VR6]R4,(UC为C
点电压)。调节R6的大小,可以使UC=-kt℃(k为比例系数)即t=0℃,UC=0k;t=20℃
时,UC=-20k。又A3和R7、R8、R9组成反相放大器,可得UD=-UCR8
R7kR8R7t℃,(UD
为D点电压)。R10和电位器W2组成分压器,改变W1和W2的大小,可以使数字显示电路显示不同范围的温度数值。其电路如图3.1所示。
图3.1 采温电路
3.2 数据转换电路
为了便于与AT89C51单片机连接,同时又有利于系统设计,A/D转换器选了ADC0809芯片,ADC0809是逐次逼近型芯片,片内带有锁存功能的8路模拟多路开关,可对8路0~~5V的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、比较器、256R电阻T型网络、树状电子开关、逐次逼近寄存器SAR,控制与时序电路等。输出具有TTL三态锁存缓冲器,可直接连到单片机数据总线。ADC0809的分辨率为8位,单一5V供电,功耗为15mW,不必进行零点和满刻度调整,外部时钟频率范围为10KHz~~1280KHz,ADC0809和AT89S51的硬件接口有三种方式:查询方式、中断方式、等待延时方式,此测量仪采用中断方式。
利用单片机对7FFFH口写数据启动A/D转换器,A/D转换结束时ADC0809的EOC向AT89C51发出中断请求信号,CPU响应中断请求信号,并通过对7FFFH口的读操作,读取转换结果,并存入被测量的缓存单元中。再重新选择被测量(修改各相关指针),再次启动A/D转换后,中断返回。A∕D转换器ADC0809与单片机的连接实现的数据转换电路如下图3.2所示
图3.2 数据转换电路
3.3 数据显示电路
ADC0809的8个通道我们这里只用了一个,连接温度传感器的测量和放大电路的输出。ADC0809通道0输入的模拟电压转换成数字量,要送往显示缓冲区驱动指示灯显示数值。单片机系统中常用的显示器有发光二极管、七段数码显示器、液晶显示器等。其中LED显示器从外观可分为“8”字形的七段数码管、米字形数码管、点阵块、矩形平面显示器、数字笔划显示器等。
本设计采用发光二极管简称LED(Light Emitting Diode)显示数值,七段LED数码管显示器能够显示十进制或十六进制数字及某些简单字符。但控制简单,使用方便,在单片机系统中应用较多,其结构如图3.3(a)所示。数码显示管a~g七个笔划(段)及小数点dp均为发光二极管。数码管显示器根据公共端的连接方式,可以分为共阴极数码管和共阳极数码管。共阳极数码管连接如图3.3(b)
图3.3(a) 图3.3 (b)
单片机系统扩展LED数码管时多用共阳LED。共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻,而且它的主要特点是坚固耐用,驱动简单,价格低,特别适合电子试验。因此LED被广泛用于各种电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。经AT89C51单片机处理后的信号经373类锁存器与LED数码管相连,由译码驱动器和LED数码管知,只要接通+5电源和将十进制数的BCD码接至译码器的相应输入端,即可显示0到9的数字。显示电路如图3.4所示
图3.4 显示电路
4 所用元器件介绍
4.1 集成温度传感器AD590M
4.1.1 AD590简介
AD590是美国模拟器件公司生产的单片集成两端感温电流源,具有体积小、反应快、测量精度高、稳定性好、校准方便和价格低等优点,因而获得了广泛的应用。它的主要特性如下:
(1)流过器件的电流(Ma)等于器件所处环境的热力学温度(开尔文)度数,即:
(4.1)
式中:Ir—流过器件(AD590)的电流,单位为mA;T─热力学温度,单位为K。
(2)AD590的测温范围为-55℃~+150℃。
(3)AD590的电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。另外AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
(4)输出电阻为710MΩ。
(5)精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
4.1.2 AD590的工作原理
图4.1(a)是 AD590的封装形式,图4.1(b)是AD590用于测量热力学温度的基本应用电路。
图4 .1 AD590的封装及基本应用电路
图中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了阻值,因而在基准温度下可得到1μA/K的I值。由于流过AD590的电流大小与热力学温度的大小成正比,当电阻R1和电位器R2的电阻之和为1kΩ时,输出电压VO 随温度的变化为1mV/K。但由于AD590的增益有偏差,电阻也有误差,因此应对电路进行调整。调整的方法为:把AD590放于冰水混合物中,调整电位器R2,使VO=273.2mV。或在室温下(25 ℃)条件下调整电位器,使VO=273.2+25 mV =298.2mV。但这样调整只可保证在0℃或25 ℃附近有较高精度。在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串接一个1kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。AD590温度与电流的关系如表
4.1所示。
表4.1 温度与电流的关系
4.2 A/D转换器芯片ADC0809
4.2.1 ADC0809引脚功能
ADC0809芯片为28引脚为双列直插式封装,其引脚排列如图4.2。
图4.2 ADC0809引脚图
对ADC0809主要信号引脚的功能说明如下: IN7~IN0——模拟量输入通道。
ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。
A、B、C——地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚,通常使用频率为500KHz的时钟信号。
EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连,D0为最低位,D7为最高。
OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc—— +5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V)。 4.2.2 ADC0809的主要性能
(1) 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。 (2) 带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。
(3) 输出具有三态锁存功能。
(4) 分辨率:8位,转换时间:100μs。 (5) 不可调误差:±1LBS,功耗:15mW。
(6) 工作电压:+5V,参考电压标准值+5V。
(7) 片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。 4.2.3 ADC0809的多路转换与转换时序
在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。因此,对各路进行转换是分时进行的。此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。
首先输入地址选择信号,在
ALE信号作用下,地址信号被锁存,产生译码信号,
选中一路模拟量输入。然后输入启动转换控制信号START(不小于100ns),启动A/D转换。转换结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。 4.2.4 ADC0809的内部结构
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。ADC0809的内部逻辑结构图如图4.3所示。
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表4.2为通道选择表。
图4.3 ADC0809内部逻辑结构
地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表4.2为通道选择表。
表4.2 通道选择表
4.3 AT89C51单片机的结构
4.3.1 AT89C51单片机的基本组成功能方块图。
AT89C51单片机主要组成部分包括CPU、存储器、可编程I/O口、定时器/计数器、
串行口等,各部分通过内部总线相连。如图4.4所示
外时钟源 外部事件计数
外中断 控制 并行口 串行通信 图4.4 AT89C51功能方块图 1) 中央处理器(CPU)
中央处理器是单片机最核心的部分,是单片机的大脑和心脏,主要完成运算和控制功能。AT89C51的CPU是一个字长为8位的中央处理单元,即它对数据的处理是按字节为单位进行的。
2) 内部数据存储器(内部RAM)
AT89C51 中共有256个RAM单元,但其中能作为寄存器供用户使用的仅有前面128个,后128个被专用寄存器占用。 3) 内部程序存储器(内部ROM)
AT89C51 共有4 KB掩膜ROM,用于存放程序、原始数据等。 4) 定时器/计数器
AT89C51 共有2 个16 位的定时器/计数器,可以实现定时和计数功能。
5) 并行I/O 口
AT89C51 共有4 个8 位的I/O口(P0、P1、P2、P3口),可以实现数据的并行输入、输出。 6) 串行口
AT89C51有1 个全双工的可编程串行口,以实现单片机和其他设备之间的串行数据传送。 7) 时钟电路
AT89C51 单片机内部有时钟电路,但晶振和微调电容需要外接。时钟电路为单片机产生时钟脉冲序列。 8) 终端系统
AT89C51的中断系统功能较强,可以满足一般控制应用的需要。它共有5个中断源:2个外部中断源/INTO和/INT1 ;3个内部中断源,即2个定时/计数中断,1个串行口中断。
由上所述,AT89C51虽然是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机。
4.3.2 AT89C51管脚说明
ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装(DIP)
形式,如图4.5所示。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。
图4.5 DIP封装引脚图
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址
信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表4.3所示:
AT89C51的一些特殊功能口,如表4.3所示。
表4.3 AT89C51的一些特殊功能口
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/
:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地
址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器
周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。
/VPP
:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不
将内部锁定为RESET
;当
端保持
管是否有内部程序存储器。注意加密方式1时,高电平时,此间内部程序存储器。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 4.3.3 AT89C51主要特性 1) 与MCS-51 兼容
2) 4K字节可编程闪烁存储器 3) 寿命:1000写/擦循环 4) 数据保留时间:10年 5) 全静态工作:0Hz-24Hz 6) 三级程序存储器锁定 7) 128*8位内部RAM 8) 32可编程I/O线 9) 两个16位定时器/计数器 10) 5个中断源 11) 可编程串行通道
12) 低功耗的闲置和掉电模式 13) 片内振荡器和时钟电路 4.3.4 AT89C51单片机的工作周期
单片机有了硬件和软件就可以在控制器发出的控制信号作用下有条不紊地工作,控制信号必须定时发出,为了定时计算机内部必须有一个准确的定时脉冲。这种定时脉冲是由晶体振荡器产生的,并组成下面几种工作周期,如图4.6所示。
图 4.6 振荡周期、状态周期、机器周期和指令周期
振荡周期:是指为单片机提供时钟脉冲信号的振荡源的周期。即由单片机的晶体振荡器产生的时钟脉冲的周期。
状态周期:每个状态周期为振荡周期的2倍,是振荡周期经二分频后得到的。在一个状态周期中有两个时钟脉冲,通常称它为P1、P2。
机器周期:一个机器周期包含6个状态周期S1~S6, 也就是12个振荡周期。在一个机器周期内,CPU可以完成一个独立的操作。
指令周期:它是指CPU完成一条操作所需的全部时间。
控制部件是单片机的神经中枢,以主振频率为基准(主振周期即为振荡周期),控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,它将各个硬件环节组织在一起。
一般情况下,算术逻辑操作发生在时相P1期间,而内部寄存器之间的传送发生在时相P2期间,这些内部时钟信号无法从外部观察,故用XTAL2引脚振荡信号作参考。 4.3.5 AT89C51单片机的工作过程和工作方式
单片机工作过程遵循现代计算机的工作原理(冯·诺依曼原理),即程序存储和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据, 通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的指令,加以分析并执行规定的操作。
单片机的工作方式有:复位、程序执行、掉电保护和低功耗、编程、校验与加密等方式。
1) 复位方式
通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。复位方式
是单片机的初始化操作。单片机除了正常的初始化外,当程序运行出错或由于操作错误而使系统处于死循环时,也需要按复位键重启机器。MCS—51单片机复位后, 程序计数器PC和特殊功能寄存器复位的状态如表4.4所示。复位不影响片内RAM存放的内容, 而ALE、PSEN在复位期间将输出高电平。由表4.4可以看出,复位后:
(1)(PC)=0000H 表示复位后程序的入口地址为0000H,即单片机复位后从0000H单元开始执行程序;
(2)(PSW)=00H,其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器0组;
(3)(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立;
(4) P0口~P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,无须向端口写1。
定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响。
表 4.4 PC与SFR复位状态表
单片机在时钟电路工作以后, 在RST/VPD端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2µs。
复位方法一般有上电自动复位和外部按键手动复位以及“看门狗”复位三种类型。前两种见图4.7所示。 “看门狗”电路则是一种集成有单片机的电源监测、按键复位以及对程序运行进行监控,防止程序“跑飞”而出现死机而设计的电路。
图4.7 (a)上电复位电路; (b)上电/外部复位电路
2) 程序执行方式
程序执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始,为此就得在0000H处开始的存储单元安放一条无条件转移指令,以便跳转到实际程序的入口去执行。
3) 待机方式
待机方式也称空闲方式,是一种节电工作方式。在待机工作方式中,振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,但时钟脉冲不再送到CPU,因而CPU停止工作。
4) 掉电方式
掉电方式,也被称为停机方式。在掉电方式中,振荡器工作停止,单片机内部所有功能部件停止工作。它同样是一种为降低功耗而设计的节电工作方式。
待机方式和掉电方式都是为了进一步降低功耗而设计的节电工作方式,它们特别适合于电源功耗要求很低的应用场合。这类系统往往是直流供电或停电时依靠备用电源供电,以维持系统的持续工作。CHMOS型单片机的节电方式是由特殊功能寄存器PCON控制,其具体使用可参考相关书籍和手册。空闲和掉电模式外部引脚状态 如下表 所示。
图3-9 空闲和掉电模式外部引脚状态
5电路的组装与调试
5.1 组装电路
按上面的整体电路图把A/D转换数字温度计的逻辑图连接好。
5.2 发光二极管的检测
用万用表检测:利用具有×10kΩ挡的指针式万用表可以大致判断发光二极管的好坏。正常时,二极管正向电阻阻值为几十至200kΩ,反向电阻的值为∞。如果正向电阻值为0或为∞,反向电阻值很小或为0,则易损坏。这种检测方法,不能实地看到发光管的发光情况,因为×10kΩ挡不能向LED提供较大正向电流。如果有两块指针万用表(最好同型号)可以较好地检查发光二极管的发光情况正常情况下,接通后就能正常发光。若亮度很低甚至不发光,可将两块万用表均拨至×1Ω,若仍很暗,甚至不发光,则说明该发光二极管性能不良或损坏。应注意,不能一开始测量就将两块万用表置于×1Ω,以免电流过大,损坏发光二极管。
5.3 温度值的显示
5.3.1 所用流程图
如图5.1
图5.1 流程图
5.3.2 观察并运行程序
实验程序如下:
ORG 0000H
LJMP MAIN ; 转主程序
ORG 0003H ; 中断服务入口地址
LJMP INT0F ; 中断服务。
ORG 0100H
MAIN: MOV R0, #30H ; 内部数据指针指向30H单元 MOV DPTR, #7FF8H ; 指向P2.7口,且选通IN0(低3 位地址为 000)
SETB IT0 ; 设置下降沿触发
SETB EX0 ; 允许中断
SETB EA ; 开总中断允许
MOVX @DPTR, A ; 启动A/D转换
LJMP $ ; 等待转换结束中断
INT0F: MOVX A, @DPTR ; 取A/D转换结果
MOV @R0, A ; 存结果
INC R0 ; 内部指针下移
INC DPTR ; 外部指针下移,指向下一路 CJNE R0,#39H,NEXT ; 未转换完8路,继续转换 CLR EX0 ; 关中断允许
RETI ; 中断返回
NEXT: MOVX @DPTR, A ; 启动下一路A/D转换
RETI ;中断返回,继续等待下一次 DSP8255: MOV DPTR, #7FFFH
MOV A, #80H ; 8255A工作方式设置
MOVX @DPTR, A ; 工作方式字送8255A控制口
MOV R0, #40H ; 显示数据起始地址
MOV R1, #3H ; 待显示数据个数
MOV DPTR, 7FFCH ; 第一个数据在PA口显示 LOOP : MOV A, @R0 ; 取出第一个待显示数据
ADD A, #06H ; 加上偏移量,查表指令到表TAB有6
个字节指令
MOVC A, @A+PC ; 查表取出字形码
MOVX @DPTR, A ; 字形码送8255A端口显示 INC R0 ; 指向下一个数据存储位置 INC DPTR ; 指向下一个七段数码显示器 DJNZ R3, LOOP ; 未显示结束,返回继续
RET
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H ; 0, 1, 2, 3 字形码表
DB 99H, 92H, 82H, 0F8H ; 4, 5, 6, 7
DB 80H, 90H, 88H, 83H ; 8, 9, A, b
DB 0C6H, 0A1H, 86H, 8EH ; C, d, E, F
END
将模数转换单元的CLK与控制总线单元的ALE相连、IN0与0~5V模拟电压电位
器W1相连。连续运行程序,LED显示器右边二位显示当前采集的电压值转换后的数字量,调节W1,LED的内容将随着电压变化而相应变化,LED以对应显示数字量。连接图如图
5.2
图5.2
调节W1使基准电压为100毫伏,使数字电压表量程为200毫伏。首先调节为400欧姆,让电压与温度构成的函数斜率为1,然后调节反向加法器使温度为0时,显示器读数为0000,最后调节电位器使温度为25℃时读数为25.00。
总 结
综合以上各个部分的电路设计,加深了我对单片机更进一步的学习,它体积小、功耗低、功能强、可靠性高、实时性强、简单易学、使用方便灵巧、易于维护和操作、性能价格比高、易于推广应用、可实现网络通信等技术。同时也对逐次逼近式A/D转换器ADC0809将模拟信号转化为数字信号的转换过程有了较为清楚的认识,还掌握了共阳极LED数码管的显示方式。
通过查阅参考文献,我学习到了很多以前没接触到的知识,更加认识到网络资源的重要性,有了网络我们可以方便快速的学习我们所需的知识,并解决我遇到的问题。通过图书馆的相关书籍以及“万方学士学位论文数据库论文网”“维普期刊网”,使我对之前所学的基础知识和专业知识有了进一步的理解和掌握。
另外,在此毕业设计中,老师为我指出了此课题的大概方向和需要查阅的相关书籍以及在后面会遇到的主要问题,可谓受益颇多。通过查阅相关的文献资料,结合本次的设计,更进一步掌握了模电和数电等方面的相关知识,加深对其的理解。在学习了相关于本次设计的知识后,我便开始了实际的设计部分,在这个过程中确实也遇到了相当的问题和困难,比如AT89C51与LED如何实现连接,在此我也要感谢老师在此过程中给与的耐心指导。
通过对本课题的研究,将电子设计方面的知识加以综合,我不仅更进一步的巩固了以往所学的知识,而且很好的了解和掌握了原来不知道或掌握不好的知识结构,特别是了解和掌握了很多专用芯片的功能以及用法,这些芯片的功能和用法都是的实际生产生活紧密相关的,在实际的研发过程中都具有很强的代表性,所以,掌握好这些知识结构能够为以后走上工作岗位,解决实际问题打下良好的基础。
实践是检验真理的唯一标准,经过几年的理论学习而这次在即将走向工作岗位的时候能将理论与实践相结合的机会来锻炼自己可谓是难得的一次提高,在此感谢学校为我们安排的这个教学环节,也感谢在此次设计过程中给与我极大帮助和理解的老师和同学。
致 谢
毕业设计的这段时间是自己人生阶段中很难忘的一段经历,从设计之初的无从下手到设计工作的圆满完成,期间遇到了诸多的问题和困难。但在李老师的细心指导和帮助下,通过自己的努力,我按时完成毕业设计并使自己的专业知识与综合能力都得到了相应的提高。在毕业设计过程中,老师首先细致地为我解题,当我迷茫于众多的资料时,她又为我提纲挈领、梳理脉络,使我确立了本文的框架。感谢老师对我不厌其烦的细心指点。在论文写作中,每周都能得到老师的亲切指点。从框架的完善,到内容的扩充;从行文的用语到格式的规范;老师都严格要求,力求完美。而且我还从老师那里学到了严谨、务实、认真的工作态度和极强的敬业精神。
半年的设计时间虽然短暂,我却从中学到了很多的东西。我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友和亲人。 特别感谢我的导师李老师,半年来她一直对我悉心指导,严格要求、热情鼓励,为我创造了很多锻炼提高的机会。李老师洞察全局、高屋建瓴,为我的论文的顺利完成指出了很好的方向李老师渊博的知识、宽广无私的胸怀、夜以继日的工作态度、对事业的执著追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我毕生受益。
在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师、同学们致以最诚挚的感谢!
参考 文献
[1] 彭介华.电子技术课程设计指导[M].北京:高等教育出版社,2004.
[2] 何希庆.MCS一51单片计算机原理[M].山东:山东大学出版社,1999.
[3] 何小艇.电子系统设计[M].浙江:浙江大学出版社,2000.
[4] 孙建民.传感器技术[M].北京:清华大学出版社,2005.
[5] 张端.实用电子电路手册:数字电路分册[M].北京:高等教育出版社,1999.
[6] 汪云洋.数字电路[M].北京:电子工业出版社,2002.
[7] 江晓安,杨有瑾,钱建秋.计算机电子电路技术—数字电子部分[M].西安:西安电子科技大学出版社,1999.
[8] 陈伟人.单片微型计算机原理与应用[M].北京:清华大学出版社, 2006.5.
[9] 孙肖子.电子技术应用[M].北京:高等教育出版社,2003.
[10] 康华光.数字电子技术基础[M].北京:清华电子学教研室高教出版社,1985
[11] 陈伟人.单片微型计算机原理与应用[M].北京:清华大学出版社, 2006.5.
[12] 杨素行.模拟电子技术基础简明教程(第二版)[M].北京:高等教育出版社,1985.
[13] 吴显鼎.集成电子电子线路设计手冊[M].福州:福建科技出版社,2003.
[14] Paul Horowitz, Winfield Hill. The Art of Electronics. England: Cambridge University Press, 1989, 9.
[15] K.J.Astrom. Where is the intelligence in intelligent control [J]. IEEE Control. May1991..
数字温度计电路设计
摘 要
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术。本文将介绍一种基于单片机控制的数字温度计,这款简易数字温度计主要由集成温度传感器AD590、信号处理电路和逐次逼近式A/D转换器ADC0809和基于AT89C51的4位共阳极LED数码管扩展显示器组成。这种温度计具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便,软硬件结构模块化,电路简单,易于实现的特点,十分具有创新性、科学性、可行性。
关键词:温度传感器,A/D转换器,LED数码管,单片机
Design of Digital Thermograph Circuit
Abstract
With the progress of The Times and development, Chip technology has spread to our life, work, scientific research, each field, has become a more mature technology. This paper introduces a method based on single chip microcomputer control digital thermometer, this simple digital thermometer mainly by integrated temperature sensor AD590 to, signal processing circuits and successive approximation of the A/D converter ADC0809 based on AT89C51 and four altogether anode LED digital display expansion pipe. The thermometer has excellent linearity, high sensitivity, stable performance, strong anti-jamming capability, use convenient, software and hardware structure, the circuit module is simple and easy to implement, and very innovative, scientific and feasible.
Key words: The temperature sensor, A/D converter, LED digital tube , Micro Controller
1 概述
温度是表征物体冷热程度的物理量,是国际单位制七个基本物理量之一,它对产品的质量、生产效率、能源节约、生产安全、人体健康起着非常重要的作用。在日常生活和工农业生产中,经常需要测量温度,但普通温度计存在许多的缺陷,如测温时间长、量程小、精确度低、无法远距离测量等,给温度的测量带来了不便。随着单片机技术在日用电子产品中的应用越来越广泛,基于单片机应用的集成电路数字温度计能完全克服以上缺点,数字式温度计不仅读数方便,而且测量较精确,得到广泛应用。
本课题设计的一款简易数字温度计主要由集成温度传感器AD590、信号处理电路和逐次逼近式A/D转换器ADC0809和基于AT89C51的4位共阳极LED数码管扩展显示器组成。这种温度计具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便,软硬件结构模块化,电路简单,易于实现的特点,该设计十分具有创新性、科学性、可行性。
2 设计过程
2.1分析设计要求,构思总体方案
从题目可知该课题的任务主要有三个方面。其一是设计温度采集电路,采集周围环境温度;其二是数据转换电路,从而实现所测温度模拟量转化为易输出的数字量;其三是数据输出电路,实现所采集温度值的显示。所以,整个系统可分为三部分,即采温电路、转换电路、显示电路,其中,采温电路包括温度采集电路和放大器;转换电路是最复杂最重要的,它由A/D转换器和单片机处理芯片组成。
2.2 主要元器件选取
通常,在自然情况下,窗户的开与关与生活环境和人体的舒适度有关,温度的检测系统是该设计的关键。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,我们在设计采温电路时,虽然传感器有很多种,但由于很多原因,如:热敏电阻的线性不是太好,而热电偶虽有:1)温度测范围宽;2)性能稳定、准确可靠;3)信号可以远传和记录的特点,但热电偶由于热电势小,因而灵敏度较低,而且我所要求的范围也不是太高,所以我们选择AD590温度信号的采集电路。温度传感器AD590具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。
模-数转换器(简称ADC或A/D转换器)用来将模拟量转换成数字量。N位模-数转换器输出N位二进制数,它正比于加在输入端的模拟电压。A/D转换器的种类很多,按工作原理的不同,可以分为双积分型、逐次比较型、并行比较型等。并行比较型ADC的速度最快,但成本也最高;双积分型ADC精度高、抗干扰能力强,但速度太慢,适合转换缓慢变化的信号;逐次比较型ADC有较高的转换精度、工作速度中等、成本低等优点,因此获得广泛的应用。本设计采用逐次逼近式A/D转换器ADC0809,它有8路模拟量输入,有利于系统设计,同时也便于与AT89C51单片机连接。
本设计采用AT89S51单片机,它是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4 kbytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,
功能强大。AT89S51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
2.3 数字温度计的工作原理
利用温度传感器AD590采集温度,通过运算放大器将温度引起的电流变化转化为电压变化,然后经过逐次逼近式A/D转换器ADC0809将模拟信号转化为数字信号,并送入单片机处理芯片AT89C51处理,经过处理的信号送入显示电路,由共阳极LED数码管显示采集到的温度值。原理框图如图2.1所示。
图2.1 原理框架图
3 单元电路介绍
3.1 采温电路
采温电路用二端温度传感器AD590M采集数据,放大电路输入口连接温度传感器AD590的两个引脚,信号经放大器放大。在设计测温电路时,首先应将温度变化引起的电流变化转换成电压变化。由于AD590为电流输出元件,它的温度每升高或降低1K,电流就增加或减少1μA。当AD590的电流通过一个10kΩ的电阻时,这个电阻上的压降为10mV,即转换成10mV。为了使此电阻精确到0.1%,可用一个9.6kΩ的电阻与一个1kΩ电位器串联,然后通过调节电位器来获得精确的10kΩ。AD590是一个随温度变化而输出不同电流的恒流源,温度每升高1K,电流就增加1μA。当温度为0℃时,输出电流约为273μA,所以图中A点电压≈273μA×10kΩ≈2.73V。A1和R2组成高输入阻抗(约1013Ω)、低输出阻抗(约10-1Ω)的电压跟随器,以减小后续测量电路对的UA干扰,UA=UB(UB为B点电压)。
另外,A2和R3、R4、R5、R6、W1组成反相加法器,UC=-[UB
R35VR6]R4,(UC为C
点电压)。调节R6的大小,可以使UC=-kt℃(k为比例系数)即t=0℃,UC=0k;t=20℃
时,UC=-20k。又A3和R7、R8、R9组成反相放大器,可得UD=-UCR8
R7kR8R7t℃,(UD
为D点电压)。R10和电位器W2组成分压器,改变W1和W2的大小,可以使数字显示电路显示不同范围的温度数值。其电路如图3.1所示。
图3.1 采温电路
3.2 数据转换电路
为了便于与AT89C51单片机连接,同时又有利于系统设计,A/D转换器选了ADC0809芯片,ADC0809是逐次逼近型芯片,片内带有锁存功能的8路模拟多路开关,可对8路0~~5V的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、比较器、256R电阻T型网络、树状电子开关、逐次逼近寄存器SAR,控制与时序电路等。输出具有TTL三态锁存缓冲器,可直接连到单片机数据总线。ADC0809的分辨率为8位,单一5V供电,功耗为15mW,不必进行零点和满刻度调整,外部时钟频率范围为10KHz~~1280KHz,ADC0809和AT89S51的硬件接口有三种方式:查询方式、中断方式、等待延时方式,此测量仪采用中断方式。
利用单片机对7FFFH口写数据启动A/D转换器,A/D转换结束时ADC0809的EOC向AT89C51发出中断请求信号,CPU响应中断请求信号,并通过对7FFFH口的读操作,读取转换结果,并存入被测量的缓存单元中。再重新选择被测量(修改各相关指针),再次启动A/D转换后,中断返回。A∕D转换器ADC0809与单片机的连接实现的数据转换电路如下图3.2所示
图3.2 数据转换电路
3.3 数据显示电路
ADC0809的8个通道我们这里只用了一个,连接温度传感器的测量和放大电路的输出。ADC0809通道0输入的模拟电压转换成数字量,要送往显示缓冲区驱动指示灯显示数值。单片机系统中常用的显示器有发光二极管、七段数码显示器、液晶显示器等。其中LED显示器从外观可分为“8”字形的七段数码管、米字形数码管、点阵块、矩形平面显示器、数字笔划显示器等。
本设计采用发光二极管简称LED(Light Emitting Diode)显示数值,七段LED数码管显示器能够显示十进制或十六进制数字及某些简单字符。但控制简单,使用方便,在单片机系统中应用较多,其结构如图3.3(a)所示。数码显示管a~g七个笔划(段)及小数点dp均为发光二极管。数码管显示器根据公共端的连接方式,可以分为共阴极数码管和共阳极数码管。共阳极数码管连接如图3.3(b)
图3.3(a) 图3.3 (b)
单片机系统扩展LED数码管时多用共阳LED。共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。通常每个段笔画要串一个数百欧姆的降压电阻,而且它的主要特点是坚固耐用,驱动简单,价格低,特别适合电子试验。因此LED被广泛用于各种电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。经AT89C51单片机处理后的信号经373类锁存器与LED数码管相连,由译码驱动器和LED数码管知,只要接通+5电源和将十进制数的BCD码接至译码器的相应输入端,即可显示0到9的数字。显示电路如图3.4所示
图3.4 显示电路
4 所用元器件介绍
4.1 集成温度传感器AD590M
4.1.1 AD590简介
AD590是美国模拟器件公司生产的单片集成两端感温电流源,具有体积小、反应快、测量精度高、稳定性好、校准方便和价格低等优点,因而获得了广泛的应用。它的主要特性如下:
(1)流过器件的电流(Ma)等于器件所处环境的热力学温度(开尔文)度数,即:
(4.1)
式中:Ir—流过器件(AD590)的电流,单位为mA;T─热力学温度,单位为K。
(2)AD590的测温范围为-55℃~+150℃。
(3)AD590的电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。另外AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
(4)输出电阻为710MΩ。
(5)精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
4.1.2 AD590的工作原理
图4.1(a)是 AD590的封装形式,图4.1(b)是AD590用于测量热力学温度的基本应用电路。
图4 .1 AD590的封装及基本应用电路
图中的电阻R是在硅板上形成的薄膜电阻,该电阻已用激光修正了阻值,因而在基准温度下可得到1μA/K的I值。由于流过AD590的电流大小与热力学温度的大小成正比,当电阻R1和电位器R2的电阻之和为1kΩ时,输出电压VO 随温度的变化为1mV/K。但由于AD590的增益有偏差,电阻也有误差,因此应对电路进行调整。调整的方法为:把AD590放于冰水混合物中,调整电位器R2,使VO=273.2mV。或在室温下(25 ℃)条件下调整电位器,使VO=273.2+25 mV =298.2mV。但这样调整只可保证在0℃或25 ℃附近有较高精度。在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串接一个1kΩ的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号。AD590温度与电流的关系如表
4.1所示。
表4.1 温度与电流的关系
4.2 A/D转换器芯片ADC0809
4.2.1 ADC0809引脚功能
ADC0809芯片为28引脚为双列直插式封装,其引脚排列如图4.2。
图4.2 ADC0809引脚图
对ADC0809主要信号引脚的功能说明如下: IN7~IN0——模拟量输入通道。
ALE——地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。
A、B、C——地址线。通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。
CLK——时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚,通常使用频率为500KHz的时钟信号。
EOC——转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。
D7~D0——数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连,D0为最低位,D7为最高。
OE——输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vcc—— +5V电源。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V)。 4.2.2 ADC0809的主要性能
(1) 8位逐次逼近型A/D转换器,所有引脚的逻辑电平与TTL电平兼容。 (2) 带有锁存功能的8路模拟量转换开关,可对8路0~5V模拟量进行分时切换。
(3) 输出具有三态锁存功能。
(4) 分辨率:8位,转换时间:100μs。 (5) 不可调误差:±1LBS,功耗:15mW。
(6) 工作电压:+5V,参考电压标准值+5V。
(7) 片内无时钟,一般需外加640KHz以下且不低于100KHz的时钟信号。 4.2.3 ADC0809的多路转换与转换时序
在实时控制与实时检测系统中,被控制与被测量的电路往往是几路或几十路,对这些电路的参数进行模/数、数/模转换时,常采用公共的模数、数模转换电路。因此,对各路进行转换是分时进行的。此时,必须轮流切换各被测电路与模数、数模转换电路之间的通道,以达到分时切换的功能。
首先输入地址选择信号,在
ALE信号作用下,地址信号被锁存,产生译码信号,
选中一路模拟量输入。然后输入启动转换控制信号START(不小于100ns),启动A/D转换。转换结束,数据送三态门锁存,同时发出EOC信号,在允许输出信号控制下,再将转换结果输出到外部数据总线。 4.2.4 ADC0809的内部结构
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5V的输入模拟电压信号分时进行转换。模拟多路开关由8路模拟开关和3位地址锁存译码器组成,可选通8路模拟输入中的任何一路,地址锁存信号ALE将3位地址信号ADDA、ADDB、ADDC进行锁存,然后由译码电路选通其中的一路,被选中的通道进行A/D转换。A/D转换部分包括比较器、逐次逼近寄存器(SAR)、256R电阻网络、树状电子开关、控制与时序电路等。另外ADC0809输出具有TTL三态锁存缓冲器,可直接连到CPU数据总线上。ADC0809的内部逻辑结构图如图4.3所示。
图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表4.2为通道选择表。
图4.3 ADC0809内部逻辑结构
地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,表4.2为通道选择表。
表4.2 通道选择表
4.3 AT89C51单片机的结构
4.3.1 AT89C51单片机的基本组成功能方块图。
AT89C51单片机主要组成部分包括CPU、存储器、可编程I/O口、定时器/计数器、
串行口等,各部分通过内部总线相连。如图4.4所示
外时钟源 外部事件计数
外中断 控制 并行口 串行通信 图4.4 AT89C51功能方块图 1) 中央处理器(CPU)
中央处理器是单片机最核心的部分,是单片机的大脑和心脏,主要完成运算和控制功能。AT89C51的CPU是一个字长为8位的中央处理单元,即它对数据的处理是按字节为单位进行的。
2) 内部数据存储器(内部RAM)
AT89C51 中共有256个RAM单元,但其中能作为寄存器供用户使用的仅有前面128个,后128个被专用寄存器占用。 3) 内部程序存储器(内部ROM)
AT89C51 共有4 KB掩膜ROM,用于存放程序、原始数据等。 4) 定时器/计数器
AT89C51 共有2 个16 位的定时器/计数器,可以实现定时和计数功能。
5) 并行I/O 口
AT89C51 共有4 个8 位的I/O口(P0、P1、P2、P3口),可以实现数据的并行输入、输出。 6) 串行口
AT89C51有1 个全双工的可编程串行口,以实现单片机和其他设备之间的串行数据传送。 7) 时钟电路
AT89C51 单片机内部有时钟电路,但晶振和微调电容需要外接。时钟电路为单片机产生时钟脉冲序列。 8) 终端系统
AT89C51的中断系统功能较强,可以满足一般控制应用的需要。它共有5个中断源:2个外部中断源/INTO和/INT1 ;3个内部中断源,即2个定时/计数中断,1个串行口中断。
由上所述,AT89C51虽然是一块芯片,但它包括了构成计算机的基本部件,因此可以说它是一台简单的计算机。
4.3.2 AT89C51管脚说明
ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装(DIP)
形式,如图4.5所示。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。
图4.5 DIP封装引脚图
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址
信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表4.3所示:
AT89C51的一些特殊功能口,如表4.3所示。
表4.3 AT89C51的一些特殊功能口
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/
:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地
址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器
周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。
/VPP
:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不
将内部锁定为RESET
;当
端保持
管是否有内部程序存储器。注意加密方式1时,高电平时,此间内部程序存储器。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 4.3.3 AT89C51主要特性 1) 与MCS-51 兼容
2) 4K字节可编程闪烁存储器 3) 寿命:1000写/擦循环 4) 数据保留时间:10年 5) 全静态工作:0Hz-24Hz 6) 三级程序存储器锁定 7) 128*8位内部RAM 8) 32可编程I/O线 9) 两个16位定时器/计数器 10) 5个中断源 11) 可编程串行通道
12) 低功耗的闲置和掉电模式 13) 片内振荡器和时钟电路 4.3.4 AT89C51单片机的工作周期
单片机有了硬件和软件就可以在控制器发出的控制信号作用下有条不紊地工作,控制信号必须定时发出,为了定时计算机内部必须有一个准确的定时脉冲。这种定时脉冲是由晶体振荡器产生的,并组成下面几种工作周期,如图4.6所示。
图 4.6 振荡周期、状态周期、机器周期和指令周期
振荡周期:是指为单片机提供时钟脉冲信号的振荡源的周期。即由单片机的晶体振荡器产生的时钟脉冲的周期。
状态周期:每个状态周期为振荡周期的2倍,是振荡周期经二分频后得到的。在一个状态周期中有两个时钟脉冲,通常称它为P1、P2。
机器周期:一个机器周期包含6个状态周期S1~S6, 也就是12个振荡周期。在一个机器周期内,CPU可以完成一个独立的操作。
指令周期:它是指CPU完成一条操作所需的全部时间。
控制部件是单片机的神经中枢,以主振频率为基准(主振周期即为振荡周期),控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,它将各个硬件环节组织在一起。
一般情况下,算术逻辑操作发生在时相P1期间,而内部寄存器之间的传送发生在时相P2期间,这些内部时钟信号无法从外部观察,故用XTAL2引脚振荡信号作参考。 4.3.5 AT89C51单片机的工作过程和工作方式
单片机工作过程遵循现代计算机的工作原理(冯·诺依曼原理),即程序存储和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据, 通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的指令,加以分析并执行规定的操作。
单片机的工作方式有:复位、程序执行、掉电保护和低功耗、编程、校验与加密等方式。
1) 复位方式
通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。复位方式
是单片机的初始化操作。单片机除了正常的初始化外,当程序运行出错或由于操作错误而使系统处于死循环时,也需要按复位键重启机器。MCS—51单片机复位后, 程序计数器PC和特殊功能寄存器复位的状态如表4.4所示。复位不影响片内RAM存放的内容, 而ALE、PSEN在复位期间将输出高电平。由表4.4可以看出,复位后:
(1)(PC)=0000H 表示复位后程序的入口地址为0000H,即单片机复位后从0000H单元开始执行程序;
(2)(PSW)=00H,其中RS1(PSW.4)=0,RS0(PSW.3)=0,表示复位后单片机选择工作寄存器0组;
(3)(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立;
(4) P0口~P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,无须向端口写1。
定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响。
表 4.4 PC与SFR复位状态表
单片机在时钟电路工作以后, 在RST/VPD端持续给出2个机器周期的高电平时就可以完成复位操作。例如使用晶振频率为12MHz时,则复位信号持续时间应不小于2µs。
复位方法一般有上电自动复位和外部按键手动复位以及“看门狗”复位三种类型。前两种见图4.7所示。 “看门狗”电路则是一种集成有单片机的电源监测、按键复位以及对程序运行进行监控,防止程序“跑飞”而出现死机而设计的电路。
图4.7 (a)上电复位电路; (b)上电/外部复位电路
2) 程序执行方式
程序执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序执行总是从地址0000H开始,为此就得在0000H处开始的存储单元安放一条无条件转移指令,以便跳转到实际程序的入口去执行。
3) 待机方式
待机方式也称空闲方式,是一种节电工作方式。在待机工作方式中,振荡器保持工作,时钟脉冲继续输出到中断、串行口、定时器等功能部件,使它们继续工作,但时钟脉冲不再送到CPU,因而CPU停止工作。
4) 掉电方式
掉电方式,也被称为停机方式。在掉电方式中,振荡器工作停止,单片机内部所有功能部件停止工作。它同样是一种为降低功耗而设计的节电工作方式。
待机方式和掉电方式都是为了进一步降低功耗而设计的节电工作方式,它们特别适合于电源功耗要求很低的应用场合。这类系统往往是直流供电或停电时依靠备用电源供电,以维持系统的持续工作。CHMOS型单片机的节电方式是由特殊功能寄存器PCON控制,其具体使用可参考相关书籍和手册。空闲和掉电模式外部引脚状态 如下表 所示。
图3-9 空闲和掉电模式外部引脚状态
5电路的组装与调试
5.1 组装电路
按上面的整体电路图把A/D转换数字温度计的逻辑图连接好。
5.2 发光二极管的检测
用万用表检测:利用具有×10kΩ挡的指针式万用表可以大致判断发光二极管的好坏。正常时,二极管正向电阻阻值为几十至200kΩ,反向电阻的值为∞。如果正向电阻值为0或为∞,反向电阻值很小或为0,则易损坏。这种检测方法,不能实地看到发光管的发光情况,因为×10kΩ挡不能向LED提供较大正向电流。如果有两块指针万用表(最好同型号)可以较好地检查发光二极管的发光情况正常情况下,接通后就能正常发光。若亮度很低甚至不发光,可将两块万用表均拨至×1Ω,若仍很暗,甚至不发光,则说明该发光二极管性能不良或损坏。应注意,不能一开始测量就将两块万用表置于×1Ω,以免电流过大,损坏发光二极管。
5.3 温度值的显示
5.3.1 所用流程图
如图5.1
图5.1 流程图
5.3.2 观察并运行程序
实验程序如下:
ORG 0000H
LJMP MAIN ; 转主程序
ORG 0003H ; 中断服务入口地址
LJMP INT0F ; 中断服务。
ORG 0100H
MAIN: MOV R0, #30H ; 内部数据指针指向30H单元 MOV DPTR, #7FF8H ; 指向P2.7口,且选通IN0(低3 位地址为 000)
SETB IT0 ; 设置下降沿触发
SETB EX0 ; 允许中断
SETB EA ; 开总中断允许
MOVX @DPTR, A ; 启动A/D转换
LJMP $ ; 等待转换结束中断
INT0F: MOVX A, @DPTR ; 取A/D转换结果
MOV @R0, A ; 存结果
INC R0 ; 内部指针下移
INC DPTR ; 外部指针下移,指向下一路 CJNE R0,#39H,NEXT ; 未转换完8路,继续转换 CLR EX0 ; 关中断允许
RETI ; 中断返回
NEXT: MOVX @DPTR, A ; 启动下一路A/D转换
RETI ;中断返回,继续等待下一次 DSP8255: MOV DPTR, #7FFFH
MOV A, #80H ; 8255A工作方式设置
MOVX @DPTR, A ; 工作方式字送8255A控制口
MOV R0, #40H ; 显示数据起始地址
MOV R1, #3H ; 待显示数据个数
MOV DPTR, 7FFCH ; 第一个数据在PA口显示 LOOP : MOV A, @R0 ; 取出第一个待显示数据
ADD A, #06H ; 加上偏移量,查表指令到表TAB有6
个字节指令
MOVC A, @A+PC ; 查表取出字形码
MOVX @DPTR, A ; 字形码送8255A端口显示 INC R0 ; 指向下一个数据存储位置 INC DPTR ; 指向下一个七段数码显示器 DJNZ R3, LOOP ; 未显示结束,返回继续
RET
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H ; 0, 1, 2, 3 字形码表
DB 99H, 92H, 82H, 0F8H ; 4, 5, 6, 7
DB 80H, 90H, 88H, 83H ; 8, 9, A, b
DB 0C6H, 0A1H, 86H, 8EH ; C, d, E, F
END
将模数转换单元的CLK与控制总线单元的ALE相连、IN0与0~5V模拟电压电位
器W1相连。连续运行程序,LED显示器右边二位显示当前采集的电压值转换后的数字量,调节W1,LED的内容将随着电压变化而相应变化,LED以对应显示数字量。连接图如图
5.2
图5.2
调节W1使基准电压为100毫伏,使数字电压表量程为200毫伏。首先调节为400欧姆,让电压与温度构成的函数斜率为1,然后调节反向加法器使温度为0时,显示器读数为0000,最后调节电位器使温度为25℃时读数为25.00。
总 结
综合以上各个部分的电路设计,加深了我对单片机更进一步的学习,它体积小、功耗低、功能强、可靠性高、实时性强、简单易学、使用方便灵巧、易于维护和操作、性能价格比高、易于推广应用、可实现网络通信等技术。同时也对逐次逼近式A/D转换器ADC0809将模拟信号转化为数字信号的转换过程有了较为清楚的认识,还掌握了共阳极LED数码管的显示方式。
通过查阅参考文献,我学习到了很多以前没接触到的知识,更加认识到网络资源的重要性,有了网络我们可以方便快速的学习我们所需的知识,并解决我遇到的问题。通过图书馆的相关书籍以及“万方学士学位论文数据库论文网”“维普期刊网”,使我对之前所学的基础知识和专业知识有了进一步的理解和掌握。
另外,在此毕业设计中,老师为我指出了此课题的大概方向和需要查阅的相关书籍以及在后面会遇到的主要问题,可谓受益颇多。通过查阅相关的文献资料,结合本次的设计,更进一步掌握了模电和数电等方面的相关知识,加深对其的理解。在学习了相关于本次设计的知识后,我便开始了实际的设计部分,在这个过程中确实也遇到了相当的问题和困难,比如AT89C51与LED如何实现连接,在此我也要感谢老师在此过程中给与的耐心指导。
通过对本课题的研究,将电子设计方面的知识加以综合,我不仅更进一步的巩固了以往所学的知识,而且很好的了解和掌握了原来不知道或掌握不好的知识结构,特别是了解和掌握了很多专用芯片的功能以及用法,这些芯片的功能和用法都是的实际生产生活紧密相关的,在实际的研发过程中都具有很强的代表性,所以,掌握好这些知识结构能够为以后走上工作岗位,解决实际问题打下良好的基础。
实践是检验真理的唯一标准,经过几年的理论学习而这次在即将走向工作岗位的时候能将理论与实践相结合的机会来锻炼自己可谓是难得的一次提高,在此感谢学校为我们安排的这个教学环节,也感谢在此次设计过程中给与我极大帮助和理解的老师和同学。
致 谢
毕业设计的这段时间是自己人生阶段中很难忘的一段经历,从设计之初的无从下手到设计工作的圆满完成,期间遇到了诸多的问题和困难。但在李老师的细心指导和帮助下,通过自己的努力,我按时完成毕业设计并使自己的专业知识与综合能力都得到了相应的提高。在毕业设计过程中,老师首先细致地为我解题,当我迷茫于众多的资料时,她又为我提纲挈领、梳理脉络,使我确立了本文的框架。感谢老师对我不厌其烦的细心指点。在论文写作中,每周都能得到老师的亲切指点。从框架的完善,到内容的扩充;从行文的用语到格式的规范;老师都严格要求,力求完美。而且我还从老师那里学到了严谨、务实、认真的工作态度和极强的敬业精神。
半年的设计时间虽然短暂,我却从中学到了很多的东西。我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友和亲人。 特别感谢我的导师李老师,半年来她一直对我悉心指导,严格要求、热情鼓励,为我创造了很多锻炼提高的机会。李老师洞察全局、高屋建瓴,为我的论文的顺利完成指出了很好的方向李老师渊博的知识、宽广无私的胸怀、夜以继日的工作态度、对事业的执著追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我毕生受益。
在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师、同学们致以最诚挚的感谢!
参考 文献
[1] 彭介华.电子技术课程设计指导[M].北京:高等教育出版社,2004.
[2] 何希庆.MCS一51单片计算机原理[M].山东:山东大学出版社,1999.
[3] 何小艇.电子系统设计[M].浙江:浙江大学出版社,2000.
[4] 孙建民.传感器技术[M].北京:清华大学出版社,2005.
[5] 张端.实用电子电路手册:数字电路分册[M].北京:高等教育出版社,1999.
[6] 汪云洋.数字电路[M].北京:电子工业出版社,2002.
[7] 江晓安,杨有瑾,钱建秋.计算机电子电路技术—数字电子部分[M].西安:西安电子科技大学出版社,1999.
[8] 陈伟人.单片微型计算机原理与应用[M].北京:清华大学出版社, 2006.5.
[9] 孙肖子.电子技术应用[M].北京:高等教育出版社,2003.
[10] 康华光.数字电子技术基础[M].北京:清华电子学教研室高教出版社,1985
[11] 陈伟人.单片微型计算机原理与应用[M].北京:清华大学出版社, 2006.5.
[12] 杨素行.模拟电子技术基础简明教程(第二版)[M].北京:高等教育出版社,1985.
[13] 吴显鼎.集成电子电子线路设计手冊[M].福州:福建科技出版社,2003.
[14] Paul Horowitz, Winfield Hill. The Art of Electronics. England: Cambridge University Press, 1989, 9.
[15] K.J.Astrom. Where is the intelligence in intelligent control [J]. IEEE Control. May1991..