八路数字温度计.docx
- 文档编号:12867436
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:77
- 大小:375.60KB
八路数字温度计.docx
《八路数字温度计.docx》由会员分享,可在线阅读,更多相关《八路数字温度计.docx(77页珍藏版)》请在冰豆网上搜索。
八路数字温度计
第一章概述
§1.1设计的目的和意义
毕业设计是求学过程中的重要环节,它是对我们在校期间所学知识的综合考察,也是对知识转化为能力的实际测验。
通过毕业设计进一步巩固、扩大和深化了我们所学的基本理论、基本知识和基本技能,培养了我们收集材料和调查研究的能力,提高了我们设计、计算、制图、编写技术文件的能力,提高了我们正确使用技术资料、标准、手册等工具书的独立工作的能力,培养了我们利用基础理论、专业知识、技能去分析和解决本专业范围内的一般工程技术问题的能力,培养了我们严肃认真、一丝不苟和实事求是的工作作风,基本上树立起了正确的生产观点、经济观点和全局观点,从而实现了从学生到工程技术人员的平稳过渡和角色的成功转换。
通过“八路数字温度计”的设计,提高了我对单片机、温度传感器、模数转换器、数码管、蜂鸣器、放大器等的进一步认识和对此类元器件挑选的能力。
本次设计使我牢记了温度计设计的整个流程,信息采集的关键所在,模数转换器的输入和输出量的类型,单片机扩展的关键,数码管显示的原理,不同频率声音的来源,以及所用到的各种芯片的引脚的作用和接法。
本次“八路数字温度计”的设计,摆脱了常规温度计设计方法的束缚,充分利用了电子元器件,实现了软件控制操作,符合现代科技产品向数字化、智能化方向发展的时代潮流,并且适合在高温、有毒、无人等恶劣环境下使用,满足了生活、教学、科研、医疗卫生、工农业生产等多种场合,满足了现代社会人的需求。
此外,本设计用到的80C31单片机芯片、AD590温度传感器、ADC0809模数转换器、蜂鸣器、发光二极管、数码管等元器件都是价格低廉、容易操作和使用的,所以符合大多数的个人和群体。
§1.2单片机的概述及应用
§1.2.1单片机的概述
一.单片机的定义
目前国内外的各种控制系统大部分采用单片微型计算机,简称为单片机。
单片机是一种专门用于控制的计算机。
它在一块芯片上集成了CPU、RAM、ROM、定时器、计数器和各种I/O部件,具有体积小、功能强、价格便宜、可靠性高、面向控制等独特的优点。
二.单片机的发展
单片机是70年代中期发展起来的一种大规模集成芯片,80年代以来,迅速发展,出现了许多新型机种,现在已近成为工厂自动化和各个控制领域的支柱产业之一。
90年代后期至今,单片机则是朝着高性能和多品种的方向发展。
单片机的发展可分为以下4个阶段。
第一是探索阶段,主要通用CPU68XX系列和专用CPUMCS-48系列。
第二是完善阶段,表现在:
嵌入专用CPU;寻址范围宽;总线结构规范;特殊功能寄存器(SFR)集中管理;地址空间海量位;指令控制功能全面。
第三代是微控制器的形成阶段,其代表系列产品为8051系列。
第四代是微控制器百花齐放,表现在:
商人的广泛加入;满足了最低层电子技术的应用;发展了专用型单片机;提高了单片机的综合品质。
单片机技术迅速发展趋势可归纳为以下几方面:
1.主流型机发展趋势;2.全盘CMOS化趋势;3.RISC(精简指令集计算机)体系结构的发展;4.专用单片机的发展;5.ISP(系统可编程技术)及基于ISP的开发环境;6.实现全面功耗管理;7.推行扩展总线;8.ASMIC技术(中芯国际)发展。
三.单片机的分类
单片机有多种分类方式,可按应用领域、通用性和总线结构进行分类。
本次设计中用到的单片机为80C31。
80C31单片机是8位高性能单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
80C31内置中央处理单元,128字节内部数据存储器RAM,32个双向输入/输出(I/O)口,2个16位的定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
但是,80C31内部没有程序ROM区,无论程序长短都必须扩展程序存储器,否则就不能正常的工作。
此外,80C31还可以工作与低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下,冻结CPU,而RAM定时器、串行口和中断系统维持其功能。
在掉电模式下,保存RAM数据,时钟震荡停止,同时停止芯片内的其他功能。
80C31有PDIP(40pin)和PLCC(44pin)两种封装。
§1.2.2单片机的应用
由于单片机的多种优点,使其在工农业、军事,企、事业等单位,以及在自动控制、检测设备、医疗器械、机床数控、家用电器等领域得到了广泛的应用。
在实际操作单片机时,则应该注意与单片机相关的的总线,数据,地址,指令,对应端口的功能和用法,程序的执行过程,堆栈等技术知识。
一、总线,总线分为地址总线、数据总线和控制总线。
二、数据、地址和指令
这三者的本质是一样的——数字,或者说都是一串0和1组成的序列。
指令是指令助记符有着严格的一一对应关系,不能由单片机的开发者更改。
地址是寻找单片机内部、外部的存储单元、输入/输出口的依据。
数据是由微处理机处理的对象,它在各种不同的应用电路中各不相同。
三、P0口、P2口和P3口的第二功能用法。
四、程序的执行。
五、堆栈。
堆栈是一个用来存放数据的区域,这个区域本身没有任何特殊之处,只是内部RAM的一部份,特殊的是它存放和取用数据的方式为‘先进后出,后进先出’;并且堆栈有特殊的数据传输指令,即‘PUSH’和‘POP’指令,有一个特殊的专为其服务的单元,即堆栈指针SP。
第二章设计原理
§2.1设计要求与基本思路
§2.1.1设计的要求
总体要求是设计一个八路数字温度计,对某大楼八个温度检测点进行检测。
具体如下:
一.设计需使用80C31单片机和ADC0809模数转换器进行设计;
二.将各个不同的检测点的位置及该检测点的环境温度值都显示在数码管上;
三.最小区分温度为1.0℃,标定温差小于等于0.10℃;
四.用十进制数码显示当前温度;
五.当1-3检测点的温度超过30℃或低于20℃时,蜂鸣器以20KHz的频率发出报警声;
六.当4-6检测点的温度超过40℃或低于30℃时,蜂鸣器以20KHz和40KHz的频率进行变频报警;
七.当7-8检测点的温度超过35℃或低于25℃时,发光二极管以红光进行报警。
§2.1.2设计的基本思路
由于“八路数字温度计”的设计是芯片等一些硬件和程序控制(即软件)的有机结合体,并且硬件在一定条件下,制约着软件程序的设计,所以整个设计的需要根据设计的要求从硬件的设计开始,根据各个芯片不同引脚的功能,完成温度检测电路、数据处理电路、数据显示电路、报警电路和扩展电路等;而后根据硬件的连接完成软件程序的设计,运行无误后将软件导入所做的硬件中,最后不断的调试是否可以满足要求,在不断的改进与修改下,最终达到本次设计的全部要求。
将八个相同的温度传感器AD590放在该大楼的八个对应的角落上,由于温度传感器AD590本身产生的是电流信号,而模数转化器ADC0809的输入端要求为0~5V的电压信号,所以要在温度传感器的输出端接上运算放大器OP07。
在每个温度传感器的输出端接到运算放大器OP07的负极端子2号引脚上,将OP07的正极端子3号引脚通过一个20KΩ的电阻接地(其它引脚的接法详见第三章),将它们两两一组固定安装,并编上序号1~8。
然后从每组的运算放大器OP07的输出端子6号引脚引出一条线,将得到由温度传感器AD590检测,由运算放大器OP07转换为电压信号的温度信号。
将此八路电压信号通过各自的OP07的输出端6号引脚接到模数转换器ADC0809的模拟信号输入端IN0~IN7,并且由小到大一一对应,然后ADC0809将输入其内的模拟信号转换为对应的数字信号(详见本章下一节介绍),并通过输入端2-1~2-8输出。
将此此数字信号输入到单片机80C31的数据存储器中,并同时将对应通道的数值也输入到80C31中,使得在显示的时候通道的数值和温度的值是一一对应关系。
此时我们得到了可以显示的数字信号。
由于单片机80C31没有程序存储器,所以必须扩展程序存储器,由于所编好的程序大约为3KB,所以此时我们扩展一片4KB的程序存储器2732就能够满足需要。
由于单片机的三总线(数据总线,地址总线和控制总线)结构中,数据线和地址线的低8位共用P0口,所以必须用地址锁存器将地址信号和数据信号分开,这就是地址锁存器74LS373的作用。
由于我们需要以不同的频率报警,所以我们采用555无稳态多谐振荡器,它由555定时器和外接元件R6、R7、C构成。
这样在555的输出端子3号引脚上接上蜂鸣器,就很容易得到不同频率的声音,只是需要选择对应的电阻R6、R7,详细的计算过程将在下一节《设计方案选择》中介绍。
我们需要显示的部分是通道的数值对应通道的温度值,而温度存在-10℃的可能,所以需要用三位,综上共需要和一个四位的数码管。
当该八路数字温度计正常工作的时候,我们会先看到数码管上显示的数据,而后,有可能听见某个频率或者不同频率,或发光二极管闪烁的现象。
§2.2设计方案的选择
§2.2.1温度传感器的选择
根据设计的需要,要求在显示的时候能够显示出生活中的温度值,所以我们在选择温度传感器的时候必须满足温度检测的范围。
另外,温度传感器的选择还需要满足本设计的精度要求。
根据设计的要求本设计应选择模拟温度传感器。
AD590就是经过IC化的温度传感器,它能将温度信号转化为电流信号;它具有非常好的线性输出功能;另外它的供电电压范围是4V~30V;它的检测范围是-55℃~+150℃,能够满足我们温度检测的需要;它的测温误差有±1℃、±0.5℃、±0.3℃,而本设计的要求最小区分温度是1.0℃,所以能够满足本次工程设计的要求。
§2.2.2运算放大器的功用
由于模拟数字转换器ADC0809的输入端需要的是0~5V的电压信号,而温度传感器AD590的输出信号为电流信号,并且信号微弱,所以在AD590的输出端和ADC0809的输入端需要加上一个器件,该器件能够将电流信号转换为电压信号,并且能够保持ADC0809的输入端电压范围为0~5V。
运算放大器OP07就能将输入的电流信号转化为电压信号,并能够将ADC0809的输入电压稳定在0~5V,所以选择运算放大器OP07能够实现设计需要。
§2.2.3模数转换器的选择
当从OP07的输出端输出0~5V的电压信号以后,该模拟信号将进入的下一道工序就是将模拟信号转换成数字信号,能够完成此任务的低压元器件就是模数转换器;另外模拟转换器上需要带有地址锁存器,以区分八路模拟信号的位置,使得数码管显示的时候能够出现对应的通道上显示本通道上的温度示数;此外,在数码管的显示环节中,本设计采用的是动态显示,且时间只有5S,所以要求模数转换器的转换时间不能太长,否则就不能满足示数的需要,并且转换太慢也会影响设计的效果和质量。
本设计的要求选择模数转换器ADC0809来完成模数转换环节,那我们就来看看ADC0809能不能满足上述中模数转换器在本次设计中的要求。
第一,ADC0809对模拟信号的输入量要求是:
1、电源信号单极性,且输入电压范围为0~5V;2、若信号太微弱,必须将信号进行放大;3、输入的模拟量在转换过程中应该保持不变,若输入模拟量变化太快,则需要在输入前增加采样保持。
首先输入模拟信号的单极性本次设计能够满足,此要求只需给ADC0809提供+5V的电压;对输入电压的要求本设计也能够满足,因为在OP07的输出端的电压信号范围为-14V~+14V,但是该电压的具体范围是可以通过电容C1、C2和滑动变阻器RP3来进行调节的,通过计算和调节后最终能够使OP07的输出端电压为单极性,并且是0~5V的电压信号。
其次,在温度传感器AD590的输出端信号很是微弱,但是经过运算放大器OP07以后,该微弱信号得到了有效的放大,是的ADC0809很容易检测到。
最后,本次设计的模拟量的输入频率是经过程序控制的,每两路模拟量的检测时间差为五秒,而ADC0809的转换100μS,所以足以满足要求。
第二,ADC0809不但带有地址锁存器A、B、C端口来自动调换输入的通道,准时转换不同通道的模拟量,具体来讲A、B、C端口的高低点平和对应通道的关系如下表2—1所示:
表2—1锁存器端口高低电平与通道对应关系
而且,ADC0809是逐次逼近式A/D转换器,其内部还带有输出锁存器,这一点可以保证ADC0809可以直接和单片机80C31接口。
第三,ADC0809有八路模拟信号输入端口IN0~IN7,刚好可以满足八路温度传感器的一一对应,保证了不容易出现错位和遗漏检测的现象,并且每一路都是8位的A/D转换器,即该模数转换器的分辨率是8位,大大的超过了温度传感器AD590的检测范围。
第四,ADC0809的工作温度是-40℃~85℃,这个温度范围大大超过了生活中的温度范围,能够满足环境的需要。
第五,ADC0809还具有功耗只为15mW的低功耗性能;具有对模拟量转换开始于结束的起停控制端,具有自动化控制功能。
综上所述,ADC0809不但能够满足本次设计的需要,它还带有一些精度高、功耗低、转换速度快以及一些智能化的特点。
ADC0809的管脚示意图如下图2—1:
图2—1ADC0809管脚示意图
§2.2.4数据存储器
在经过模拟/数字转换器以后,我们就得到了与温度模拟信号相对应的数字信号,并且数字信号从ADC0809的输出端口输出,输送到单片机的数据存储器中,但是本次设计要求使用单片机80C31,而80C31内部可以直接间接寻址数据存储器00H~7FH共128个,片内数据存储器总共256个,片外数据存储器最大寻址范围0000H~0FFFFH,所以可以把转换的数据直接存储到80C31的内部数据存储器中,等待软件显示程序的调遣,适时显示并流水作业。
§2.2.5报警器的选择
§2.2.5.1声音报警器设计方案
由于本设计要求出现不同频率的声音报警,一般情况下,我们可以通过程序控制单片机,以定时输出高电平的方式来驱动蜂鸣器工作,实现变频报警。
但是这种控制方式需要较复杂的软件操作,并且对芯片的要求有有所提高。
在本次设计工作中我们选用555无稳态多谐振荡器,它能够满足频率在1KHz~70KHz的需要,而本次设计中用到的频率为20KHzH和40KHz。
其中555定时器管脚图如下所示:
图2—2NE555管脚示意图
555无稳态多谐振荡器与单片机80C31的连接示意图如下所示,其中三极管Q1和Q2是频率选用的控制端,当达到特定的温度范围内,软件将是单片机的P1.1和P1.2端子置为高电平,使得三极管导通,进而驱动蜂鸣器,使其以40KHz和20KHz的频率报警。
图2—3声音报警系统
§2.2.5.2红光报警
选择发光二极管的时候,先将其接到高低电平电源上,观察器亮度,保证二极管的正常后再将其接到单片机上,和蜂鸣器的接法一样,受到高低电平的控制,当温度达到特定的温度范围内,程序驱动单片机的引脚P1.3,然后使发光二极管通电导通,实现红光报警。
§2.2.6数码管的选择
我们需要显示的部分是通道的数值对应通道的温度值,而温度存在-10℃的可能,所以需要用三位来显示温度的数值,其中包括温度值的正负,数码管的正负数显示用补码来实现,综上共需要和一个四位的数码管。
使数码管的D3为显示通道的数值,D0位和D1为分别显示温度的各位十位,D2位显示温度的正负,并兼任显示温度的百位。
所选用的数码管如图所示:
图2—4四位数码管管脚示意图
选用这种数码管比选用四个单一的数码管操作简单,减少了某些驱动装置和连线,使得电路变得清晰易懂。
另外,这种数码管上带有位控制端,可使数码管的某一位实现动态显示,能够满足本次设计的需要。
§2.3设计的框图
根据设计方案的选择情况来看,本设计的设计框图中含有的部分是温度模块和控制模块。
其中温度模块包括待检测的温度环境,对温度的感知系统,对温度的转化系统,对温度的接收存储系统;控制模块包括程序存储系统,程序接收系统,显示系统和报警系统。
根据这些模块间的关系,以及本设计的要求,设计出本次设计的框图,如下所示:
图2—5系统设计框图
在该大楼的八个角落安装的八个温度传感器,将适时检测到的温度信号传递给模数转换器,模数转化器再将所得到的数字信号传递给单片机,并存储到单片机的数据存储系统中,该数据结果等待程序控制的调遣,时刻准备在显示电路中显示所检测的温度值,并且,在温度达到某些特定的温度范围内,以不同频率的声音和发光二极管报警告知。
§2.4设计的原理图
根据以上所介绍的各种元器件的作用和各个管脚的功能以及连线要求,本次设计的原理图中由温度检测模块、温度信号放大模块、模数转换模块、程序存储模块、温度显示模块、报警模块等组成。
它们之间的具体的连线方法和关系见如下的本设计的电路原理图:
图2—6系统设计原理图
第三章硬件电路的设计
§3.1时钟电路
对于每个系统工程的时钟电路,都是用于产生单片机工作所需要的时钟信号,单片机只有在诗中信号的控制下,其各部件之间才能协调一致的工作,时钟信号控制着计算机的工作节奏。
在单片机的XTAL1和XTAL2之间跨接晶体振荡器和微调电容,可以和单片机内部的振荡器构成一个稳定的自己振荡器,这就是单片机的时钟电路,这种方式称之为内部的时钟源方式。
电容C4和C5的主要作用是帮助振荡器起振,且电容器大小对振荡频率有微调的作用,在单片机8031系列中电容的大小20pF。
另外,震荡的频率主要有石英晶振的频率来决定,本次设计选用6MHz。
将选用的晶振和电容和单片机80C31连接以后,结果如下图所示:
将晶振两
端接在单片机80C31的18和19号引脚上,另外这两端跨接在两个电容的两端分别通过电容C4和C5接地。
图3—1时钟电路图
§3.2复位电路
进行复位的操作是单片机进入工作状态的初始化操作,是使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
另外当程序运行错误或由于错误操作而使得单片机进入锁死状态的时候,也可以通过复位操作进行重新启动的操作。
等到复位以后,单片机内部的寄存器值被初始化。
图3—2复位电路图
复位操作会把ALE和
变为无效状态,即ALE=0,
=1。
但是复位操作不会影响到单片机片内的数据存储器。
如上图所示就是本设计的复位电路。
将电容和两个电阻同时接到单片机80C31的RST端子上,其中电容直接接到+5V的电源上,其中的一个电阻通过开关接到电源上,另一端与例外的一个电阻相连接,并通过该电阻接地。
§3.3温度检测电路
温度的检测电路有感知部分和放大部分组成。
其中感知部分就是温度传感器AD590,将AD590置于待测的环境中,其中的一个端子接到-5V的电源上,另一端连接到运算放大器OP07的2号引脚上。
放大部分就是以运算放大器为核心的组合电路,放大器的正极端通过一个20KΩ的电阻接地,负极端通过滑动变阻器RP1和电阻R1接到+5V的电源上,1号和8号端子接到滑动变阻器RP3的下面的两个接线柱,RP3的滑片和7号端子同时接到+12V的电源上,电容C1一端接地,另一端和4号端子同时接到-12V的电源上,6号端子通过电容C2接地,并通过滑动变阻器RP2和电阻R2,接到OP07的负极端子。
其中6号端子作为温度信号检测并放大和转化为电压信号的输出端子,接到ADC0809的信号输入端子IN0~IN7上,并将温度传感器按照1~8的顺序一一对应连接。
将各个元器件连线后的示意图如下所示:
图3—3温度检测电路图
图中的电阻R1、R2和电位器RP1、RP2的选用原则是使运放输出电压与被测的温度有一个合适的对应关系。
比如,温度传感器可以检测到负的温度值,但是在模数转换的时候就不能够出现负值,所以就的这几个元器件,使得出现对应的温度数值,详见本章节的《数据处理电路》。
§3.4数据处理电路
温度的模拟信号从运算放大器的输出端子输出以后,进入模数转换器的数据处理环节,如下图所示,温度的模拟信号从ADC0809IN口进入,引脚VCC和VREF(+)端子接到+5V的电源上,VREF(-)和GND同时接地,ALE和OE接到单片机的P2.7端子,ADDA、ADDB和ADDC分别接到单片机的P2.4—P2.5引脚上,EOC接到单片机的数据读入端子P3.7上,START端子接到单片机的1号引脚P1.0上,CLOCK端子接到单片机的ALE上,数据输出端子2-1~2-7接到单片机的P0口上,使转化好的数据保存到数据存储器中。
ADC0809的各引脚的功能是这样的,地址线23~25脚,可以决定对八路信号的那一路输入的模拟信号做A/D转换;22号引脚位是地址锁存控制端子,当地址信号为高电平时,对地址信号进行锁存控制;6号引脚为测试控制端子,当输入一个2μs宽的高电平脉冲时,就开始A/D转换;7号引脚是A/D转换结束标志端子,当模数转换结束之时,7号引脚输出高电平;9号引脚是A/D转换得到的数据输出允许控制端子,当OE引脚为高电平时,A/D转换数据从输出端口2-1~2-7输出;10号引脚为ADC0809的时钟脉冲输入端口,利用单片机的ALE引脚的6M晶振信号得到;单片机的P3.7作为A/D转换数据的读入使用,7号引脚EOC作ADC0809的A/D转换控制。
连接以后的电路图如下图3—4所示:
图3—4数据处理电路图
此时,我们还需解决一个问题,那就是温度传感器能够检测到零下的温度,但是在模数转换器不能够自动的转化出小于0的负值,就不能够满足实际生活的需要,所以在数据显示之前必须做软件的处理。
具体操作是拿一个标准示数的温度计和其中的一个温度传感器放置在同一环境中,调节滑动变阻器RP1的滑片,使得实际的温度-50℃对应00H,使得实际的温度70摄氏度对应FFH,即如下表3—1所示:
表3—1转换器输出数据与实际温度对照表
实际温度(℃)
-50
-49
-48
…
0
…
75
76
77
ADC0809输出数据(十进制)
0
2
4
…
100
…
250
252
254
如果设实际的温度为X,ADC0809的输出数据是Y,
则X和Y存在如下的函数关系:
Y=2X+100<3—1>
这个数据变换要在显示数据程序之前进行操作,可在十六进制变换为十进制之前对@R0以公式
T=1/2×(@R0-100),<3—2>
也就是所得到的结果为X,@R0的数据为ADC0809实际输出的结果。
这样我们就得到了十进制的,并且有正负区分的温度数据。
§3.5程序扩展电路
本次设计要求使用单片机80C31,但是在80C31片内是没有程序存储器的,所以这就要求我们无论程序长短都必须在此次的设计中扩展一片程序存储器。
程序存储器2732的容量4K×8位,其中4K表示4×1024个程序存储单元,8位表示每个程序存储单元的宽度是8位,前者是确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。
目前,除了串行存储器之外,我们一般情况下使用的都是8位存储器。
2732和单片机80C31的连线具体如下图3—5所示:
图3—5程序扩展电路图
除了这12条地址线和8条数据线,CE也为片选线,低电平有效,也就是说,只有当CE为低电平的时候,2732才被选中,否则,2732将不能工作。
/VPP是双功能管脚,当2732是程序存储器时,其功能是允许读数据出来,且是低电平有效;当对EPROM编程的时候,该管脚用于高电压输入,具体电压值与厂家生产芯片编程有关系。
2732的八位数据线是直接与单片机的P0口相连接,所以,单片机80C31的P0口是一个分时复用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 八路 数字 温度计