数字温度计的设计(程序仿真+电路图+任务书+说明书) (2)_第1页
数字温度计的设计(程序仿真+电路图+任务书+说明书) (2)_第2页
数字温度计的设计(程序仿真+电路图+任务书+说明书) (2)_第3页
数字温度计的设计(程序仿真+电路图+任务书+说明书) (2)_第4页
数字温度计的设计(程序仿真+电路图+任务书+说明书) (2)_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第0页共29页摘要本设计以AT89C51单片机为核心,以温度传感器DS18B20、边沿D触发器7474、移位寄存器74LS164和3位共阴极LED数码管为主体设计了一款简易数字式温度计。它可以通过控制锁存键来锁存当前温度值,具有读数方便的特点。系统采用LED数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。关键词温度计;AT89C51;传感器;DS18B20目录摘要.1第1章绪论.2第2章方案设计与论证.32.1总体设计方案.32.2系统主要模块方案论证与比较.32.2.1控制模块的选用.32.2.2温度测量模块选用.4第3章硬件设计.53.1单片机主控模块.53.2温度检测模块.63.2.1DS18B20的引脚功能.63.2.2DS18B20硬件电路设计.63.3锁存模块.73.4显示模块.73.5指示灯模块.8第4章系统软件设计.94.1系统主程序.94.2读取温度子程序.104.3延时子程序.104.4显示数据子程序.104.5系统初始化程序.114.6温度转换段码子程序.124.7计算温度子程序.13第5章系统测试.15结论.17致谢.18参考文献.19附录.20附录1程序清单.20附录2整体原理图.29第2页共29页第1章绪论温度计是人们日常生活及工作中不可缺少的产品。温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热敏电阻温度计、热电偶温度计、数字温度计、电子温度计等等,温度计中传感器是它的重要组成部分,它的精度、灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。目前生活中所使用的温度计通常都是精度为1和0.1的水银、煤油或酒精温度计,这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,容易损坏,并且使用非常不方便。本次设计的数字温度计与传统的温度计相比,具有读数方便,价格低廉,测温范围广,测温准确等优点,其输出温度采用数字显示,主要用于对测温比较准确的场所或科研实验室使用,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阴极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。第3页共29页第2章方案设计与论证2.1总体设计方案根据题目设计要求,本设计控制单元采用单片机AT89C51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。系统结构框图如图1所示。锁存模块指示灯单片机主控模块LED显示模块温度测量模块图1总体设计方框图系统以AT89C51单片机作为整个系统的控制中心,负责控制启动温度测量,接收传感器DS18B20测量的数据,并计算温度,锁存所读取的温度值,温度值通过单片机处理后,在LED数码管上显示温度值。锁存键控制是否锁存当前温度值。指示灯指示当前锁存状态和此时单片机的工作状态。2.2系统主要模块方案论证与比较2.2.1控制模块的选用方案一:采用ATMEL公司的AT89C51单片机作为控制器。单片机运算能力强,软件编程灵活,自由度大。AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。方案二:采用FPGA(现场可编辑门列阵)作为系统主控制器。FPGA可以实现各种复杂的逻辑功能,规模大,集成度高,体积小,稳定性好,并且可利用EDA软件进行仿真和调试。FPGA采用并行工作方式,提高了系统的处理速度,常用于大规模实时性要求较高的系统。第5页共29页方案比较,以上两种方案中,方案一的四个端口只需要两个就能满足设计需要,资源比较适中。而方案二将使FPGA的高速处理能力得不到充分发挥,故选择方案一。2.2.2温度测量模块选用方案一:测温电路可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度值显示出来,但这种设计需要用到A/D转换电路,感温电路比较复杂、成本高。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。方案比较,从以上两种方案,很容易看出,方案一中感温电路比较麻烦,而方案二中电路比较简单,软件设计也比较简单,故采用方案二。第6页共29页第3章硬件设计3.1单片机主控模块单片机主控模块以AT89C51单片机为核心,由单片机、振荡电路、复位电路等组成,如图2所示,主要负责各个模块的初始化工作;读取并处理时间;处理按键响应;控制数码管的显示等。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5112MHZCRYSTALC130pFC230pFR31kR44.7kC310uFP1.0P1.1P1.2P1.3P1.4ALETXDRXD图2单片机主控模块AT89C51单片机与MCS51系列单片机产品兼容,内部自带有4KB的Flash存储器及256KBRAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。图中,P3.0和P3.1口是单片机与显示模块连接的控制和通信的数据端口;P1.0是单片机与传感器DS18B20连接的端口;P1.1和P1.2是单片机与锁存模块的通信接口。第7页共29页时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。89C51单片机各功能部件的运行都以时钟信号为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机的稳定性。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式。本设计用的就是外部时钟方式,采用12M晶振。复位电路有两种形式:手动按键上电复位和上电复位,在本设计中采用的是上电复位。3.2温度检测模块温度检测电路采用的是DS18B20温度传感器。DS18B20是美国DALLAS公司生产的一种改进型的智能温度传感器,与传统的热敏电阻等测温元件相比,它具有结构简单,能直接读出被测温度,采用一根I/O数据线既可供电又可传输数据、并且可根据实际要求通过简单的编程实现912位的数字值读数方式。3.2.1DS18B20的引脚功能DS18B20采用3脚封装,VDD:主电源;GND:逻辑地;DQ:数据线引脚,如图3所示。DS18B20GNDDQVDD图3DS18B20引脚分布图3.2.2DS18B20硬件电路设计DS18B20与单片机通信,电路连接简单。温度检测模块电路如图4所示。第8页共29页21.0DQ2VCC3GND1U2DS18B20P1.01-WirePort图4温度检测模块电路其中,VCC和GND分别接电源和接地,DQ与单片机P1.0口相连接.它以串行通信的方式与单片机进行通信,读出或写入数据仅需一根I/O接口线。3.3锁存模块锁存模块如图5所示,它由一个开关和一个边沿D触发器构成。边沿D触发器采用7474触发器,触发器Q端的状态和D端状态是一样的。其中Q端和单片机的P1.1脚相连,Q非与锁存指示灯相连。当D端为低电平时,Q也为低电平,Q非为高电平。表示此时为锁存状态。D2Q5CLK3Q6S4R1U6:A7474SWITCHSW-SPDT-MOMALEP1.2P1.1D2PIN图5锁存模块电路3.4显示模块温度显示电路是使用的串口显示,如图6所示。这种显示最大的优点就是使用I/O接口资源比较少,只用P3口的RXD(串行数据输入口)和TXD(串行数据输出口),三只数码管采用74LS164移位寄存器驱动,显示比较清晰。第9页共29页SRG8RC1/-&1D132456108112913U574LS164SRG8RC1/-&1D132456108112913U374LS164SRG8RC1/-&1D132456108112913U474LS164P1.4RXDTXD图6显示模块电路3.5指示灯模块指示灯模块由两个发光二极管组成,如图7所示。D1是系统指示灯,D2是锁存指示灯,当系统开始工作时,D1亮。当开关置低电平时D2亮起,表示此时在锁存状态。D1LEDD2LEDR11kR21kD2PINP1.3图7指示灯电路第10页共29页第4章系统软件设计本系统程序主要包括主程序、读取温度子程序、延时子程序、显示数据子程序、系统初始化程序、温度转换段码子程序、计算温度子程序。4.1系统主程序主程序的主要功能是负责整体调度,读出并处理DS18B20测量的当前温度值,处理读取温度值,显示当前温度值,判断是否锁存当前显示值。温度测量每1s进行一次,流程图如图8所示。图8主函数流程图第11页共29页4.2读取温度子程序温度转换命令子程序主要是向DS18B20发复位命令、操作ROM命令、温度转换开始命令等,然后读取DS18B20的暂存器。当采用12位分辨率时,转换时间约为750ms,在本程序设计中采用1s等待转换的完成。流程图如图9所示。图9读取温度子程序流程图4.3延时子程序为了严格符合DS18B20的操作协议,本程序定义了一系列延时程序,第一种主要采用NOP命令(C语言中用_nop_();函数)延时法,精确到10us。为了等待DS18B20转换温度(大约1秒)本程序使用第二种延时法,循环延时法。4.4显示数据子程序显示数据程序主要是通过P3口的RXD脚和TXD脚,以方式0同步发送数据以刷新LS74164D锁存器来刷新LED显示器。流程图如图10所示。第12页共29页图10显示数据子程序4.5系统初始化程序主要功能是初始化串行口与触发器。流程图如图11所示。第13页共29页图11系统初始化子程序4.6温度转换段码子程序温度转换段码子程序的主要功能是把十进制整数形式的温度值转换为共阴极LED数码管的段码并储存在51的RAM中定义的暂存器中。流程图如图12所示。第14页共29页图12温度转换段码子程序4.7计算温度子程序把DS18B20的温度格式转换为十进制浮点温度值,四舍五入后返回其值。流程图如图13所示。第15页共29页图13计算温度子程序第0页共29页第5章系统测试本设计采用的核心是AT89C51单片机,通过温度传感器DS18B20、暂存器74LS164和3位七段LED数码管等作为外围元件构成了一个数字温度计。系统经调试后,可以稳定运行。本系统采用串行器件具有线路简单、体积小、价格低等优点。本系统的仿真采用PROTEUS软件,在PROTEUS库中选取的元件,如表1所示。表一仿真元器件表序号型号属性1AT89C5151单片机2SW-SPDT-MOM单刀双掷开关3CAP电容器4DS18B20温度传感器57474边沿D触发器674LS164.IEC8位串行输入并行输出移位寄存器7RES.IEEE电阻器8LED发光二极管97SEG-COM-CAT-GRN7段共阴极数码管10CRYSTAL晶振11CLOCK信号源仿真结果如图14所示。本系统可以通过控制开关来实现温度的锁存,方便准确的读出当前温度值。第1页共29页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5121.0DQ2VC3GND1U2DS18B20SRG8RC1/-&1D132456108112913U574LS164SRG8RC1/-&1D132456108112913U374LS164SRG8RC1/-&1D132456108112913U474LS164D2Q5CLK3Q6S4R1U6:A7474D1LEDD2LEDR11kR21kX1CRYSTALC130pFC230pFR31kR44.7kC310uFSWITCHS-SPDT-MOM图14仿真结果第2页共29页结论本设计以单片机为基准,选取AT89C51单片机为控制核心。通过温度传感器DS18B20、边沿D触发器、8位移位寄存器74LS164等外围元件构成了一个具有锁存功能的数字温度计。系统采用LED数码管作为显示器,软件程序采用C语言编写,便于移植与升级。系统经调试后,可以稳定运行。在设计和调试的过程中,也发现了一些问题,譬如PROTEUS仿真89C51的时候ALE脚没有信号输出,在此用SimulatorPrimitives中的CLOCK代替,而实际系统中89C51的ALE脚一直有正脉冲输出,此频率为时钟晶体振荡周期的六分之一(在此系统中为12MHZ/6)。虽然当89C51访问外部RAM(即执行MOVX类指令),要丢失一个时钟,严格地来说不宜用作精确的时钟信号源或定时信号,但在此系统中触发器不需要精确的时钟信号,所以在实际电路中D触发器的CLK脚连接C51的ALE脚。温度计的设计还不够人性化,比如加上语音的功能,可能会更有生命力。在这次设计中,我用到了很多以前的知识,而在这个过程中,不仅对以前的知识重新熟悉了一次,而且又获得了许多新知识。由于本人水平有限,不足之处在所难免,恳请各位老师谅解!第3页共29页致谢通过短暂的毕业设计,从而提高了我的理论水平,真正做到学有所用,虽然在其过程中我也遇到一些困难,但是从中我也得到了很多的帮助,没有半途而废,没有灰心丧气,我都一一克服了,这些都是一种收获,最让我感到高兴的是终于按质按量的完成了本次设计。首先要感谢我的指导老师,是您严谨细致、一丝不苟的作风感染了我;是您循循善诱的教导和不拘一格的思路给予我无尽启迪。本次设计的每个细节都离不开您的细心指导。在本次设计即将完成之际,我的心情无法平静,从开始进入课题到设计的顺利完成,离不开可敬的师长、亲爱的朋友们给了我的帮助和鼓励。在此请接受我诚挚的谢意!谢谢您们!第4页共29页参考文献1李建忠.单片机原理及应用.西安:西安电子科技大学出版社,20022朱宇光.单片机应用新技术教程.北京:电子工业出版社,20003刘守义.单片机应用技术.西安:西安电子科技大学出版社,20024房小翠.单片机实用系统设计技术.北京:国防工业出版社,19995李华.MCS-51系列单片机实用接口技术.北京:电子工业出版社,2000第5页共29页附录附录1程序清单/文件:DATA.H系统常量及变量声明constunsignedcharLEDCODE=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0x02,0x00,0xFF;/共阴极段LED段码(09,-,灭,全亮)unsignedcharTemp_data=0xFF,0xFF,0xFF;/段码组百位(负数时为符号位),十位,个位。初始为全亮unsignedcharScrM9;/暂数组sbitDQ=P10;/51的P1.0口与DS18B20的DQ脚相连sbitDF=P11;/51的P1.1口与边沿D触发器(7474)Q脚相连sbitRS=P12;/51的P1.2口与边沿D触发器(7474)S脚相连sbitEN=P13;/51的P1.3口与二极管相连sbitLEDREST=P14;/51的P1.4口与三个LS164的脚相连/文件:FUCTION.H函数声明#include#includedata.hvoidDelay10us(void)_nop_();_nop_();_nop_();_nop_();第6页共29页_nop_();_nop_();voidDelay64us(void)Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();voidDelay104us(void)Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();voidDelay132us(void)第7页共29页Delay64us();Delay64us();voidDelay524us(void)Delay104us();Delay104us();Delay104us();Delay104us();Delay104us();voidDelay1s(void)unsignedlongi=25000;while(-i);bitreset_1820(void)bitpresence;DQ=0;/拉低总线Delay524us();/延时(复位低电平480us)DQ=1;/释放总线Delay64us();/进入等待应答状态(60us存在检测高电平15us)presence=DQ;/读存在信号Delay524us();/等待时存在检测结束与总线恢复(480us)第8页共29页return(presence);/0=存在(初始化成功),1=不存在(初始化失败)charread_1820(void)unsignedchari;unsignedcharvalu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论