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

下载本文档

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

文档简介

I摘要本设计以AT89C51单片机为核心,以温度传感器DS18B20、边沿D触发器7474、移位寄存器74LS164和3位共阴极LED数码管为主体设计了一款简易数字式温度计。它可以通过控制锁存键来锁存当前温度值,具有读数方便的特点。系统采用LED数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。关键词温度;AT89C51;传感器DS18B2II目录摘要.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硬件电路设计.73.3锁存电路.73.4显示电路.83.5指示灯电路.83.6整机工作原理.8第4章系统软件设计.94.1系统主程序.94.2读取温度子程序.94.3延时子程序.104.4显示数据子程序.104.5系统初始化程序.104.6温度转换段码子程序.10III4.7计算温度子程序.11第5章仿真及调试.145.1KEIL软件介绍.145.2调试的操作步骤.145.3仿真.15总结.16参考文献.17附录1电路原理图.18附录2仿真电路图.19附录3元器明细表件.20附录4源程序.21第0页共28页第1章绪论温度计在人类社会的日常生活、生产和科研中,温度的测量和控制占有十分重要的意义,尤其在国防现代化及航天工业的科研和生产过程中,温度的精确测量及控制更是必不可缺的。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热敏电阻温度计、热电偶温度计、数字温度计、电子温度计等等,温度计中传感器是它的重要组成部分,它的精度、灵敏度基本决定了温度计的精度、测量范围、控制范围和用途等。目前生活中所使用的温度计通常都是精度为1和0.1的水银、煤油或酒精温度计,这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,容易损坏,并且使用非常不方便。本次设计的数字温度计与传统的温度计相比,具有读数方便,价格低廉,测温范围广,测温准确等优点,其输出温度采用数字显示,主要用于对测温比较准确的场所或科研实验室使用,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用3位共阴极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。第1页共28页第2章设计方案与论证2.1总体设计方案根据题目设计要求,测温范围-99+127;精度误差小于0.5;用LED数码管来显示当前温度,能锁存温度读数;所得温度是进行了四舍五入后的整数温度值。本设计控制单元采用单片机AT89C51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。系统结构框图如图2-1所示。指示电路LED显示电路温度测量电路单片机主控电路锁存电路最小系统图2-1总体设计方框图系统以AT89C51单片机作为整个系统的控制中心,用于控制启动温度测量,接收传感器DS18B20测量的数据,温度值通过单片机处理后,在LED数码管上显示温度值。锁存键是用于锁存当前温度值。指示电路则用于指示锁存状态和单片机的工作状态。2.2系统主要电路方案论证与比较2.2.1控制电路的选用方案一:采用ATMEL公司的AT89C51单片机作为控制器。单片机运算能力强,软件编程灵活,自由度大。AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。方案二:采用FPGA(现场可编辑门列阵)作为系统主控制器。FPGA可以实现各种复杂的逻辑功能,规模大,集成度高,体积小,稳定性好,并且可利用EDA软件进行仿真和调试。FPGA采用并行工作方式,提高了系统的处理速度,常用于大规模实时性第2页共28页要求较高的系统。方案比较,以上两种方案中,方案一的四个端口只需要两个就能满足设计需要,资源比较适中。而方案二将使FPGA的高速处理能力得不到充分发挥,故选择方案一。2.2.2温度测量电路选用方案一:测温电路可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度值显示出来,但这种设计需要用到A/D转换电路,感温电路比较复杂、成本高。方案二:进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。方案比较,从以上两种方案,很容易看出,方案一中感温电路比较麻烦,而方案二中电路比较简单,软件设计也比较简单,故采用方案二。第3页共28页第3章硬件设计3.1单片机最小系统单片机最小系统以AT89C51单片机为核心,由单片机、振荡电路、复位电路等组成,如图3-1所示,主要负责各个模块的初始化工作;读取并处理时间;处理按键响应;控制数码管的显示等,如图3-1所示。图3-1单片机最小系统AT89C51单片机与MCS51系列单片机产品兼容,内部自带有4KB的Flash存储器及256KBRAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。图中,P3.0和P3.1口是单片机与显示电路连接的控制和通信的数据端口;P1.0是单片机与传感器DS18B20连接的端口;P1.1和P1.2是单片机与锁存电路的通信接口。时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。89C51单片第4页共28页机各功能部件的运行都以时钟信号为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机的稳定性。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种是外部时钟方式。本设计用的就是外部时钟方式,采用12M晶振。复位电路有两种形式:手动按键上电复位和上电复位,在本设计中采用的是上电复位。3.2温度检测电路温度检测电路采用的是DS18B20温度传感器。DS18B20是美国DALLAS公司生产的一种改进型的智能温度传感器,与传统的热敏电阻等测温元件相比,它具有结构简单,能直接读出被测温度,采用一根I/O数据线既可供电又可传输数据、并且可根据实际要求通过简单的编程实现912位的数字值读数方式。3.2.1DS18B20引脚及特性DS18B20采用3脚封装,VCC:主电源;GND:逻辑地;DQ:数据线引脚,如图3-2所示。图3-2DS18B20的封装图DS18B20的主要特性:适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。第5页共28页DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。温范围99127,精度为0.5。可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。3.2.2DS18B20硬件电路设计DS18B20与单片机通信,电路连接简单。温度检测电路如图3-3所示。图3-3温度检测电路其中,VCC和GND分别接电源和接地,DQ与单片机P1.0口相连接.它以串行通信的方式与单片机进行通信,读出或写入数据仅需一根I/O接口线。3.3锁存电路图3-4锁存电路第6页共28页锁存电路如图3-4所示,它由一个开关和一个边沿D触发器构成。边沿D触发器采用7474触发器,触发器Q端的状态和D端状态是一样的。其中Q端和单片机的P1.1脚相连,Q非与锁存指示灯相连。当D端为低电平时,Q也为低电平,Q非为高电平。表示此时为锁存状态。3.4显示电路温度显示电路是使用的串口显示,如图3-5所示。这种显示最大的优点就是使用I/O接口资源比较少,只用P3口的RXD(串行数据输入口)和TXD(串行数据输出口),三只数码管采用74LS164移位寄存器驱动,显示比较清晰。SRG8RC1/-&1D132456108112913U574LS164SRG8RC1/-&1D132456108112913U374LS164SRG8RC1/-&1D132456108112913U474LS164P1.4RXDTXD图3-5显示电路3.5指示灯电路指示灯电路由两个发光二极管组成,如图3-6所示。D1是系统指示灯,D2是锁存指示灯,当系统开始工作时,D1亮。当开关置低电平时D2亮起,表示此时在锁存状态。图3-6指示灯电路3.6整机工作原理通过温度传感器把采集到的数据实时的传到单片机的P1.0口,同时判断P1.1口是否有高电平;如果有高电平,则把显示的数据保持不变。显示的数据是由单片机的第7页共28页串口TXD、RXD输出,通过控制74LS164串口移位寄存器对数据进行译码,控制相应数码管的显示字符,串行数据由单片机将采集到的信号通过计算处理后变成相应数码管的显示编码,并从串口输出。第8页共28页第4章系统软件设计本系统程序主要包括主程序、读取温度子程序、延时子程序、显示数据子程序、系统初始化程序、温度转换段码子程序、计算温度子程序。4.1系统主程序主程序的主要功能是负责整体调度,读出并处理DS18B20测量的当前温度值,处理读取温度值,显示当前温度值,判断是否锁存当前显示值。温度测量每1s进行一次,流程图如图4-1所示。开始系统初始化读DS18B20暂存值锁存?温度数据处理显示温度值否是图4-1主函数流程图4.2读取温度子程序温度转换命令子程序主要是向DS18B20发复位命令、操作ROM命令、温度转换开始命令等,然后读取DS18B20的暂存器。当采用12位分辨率时,转换时间约为750ms,在本程序设计中采用1s等待转换的完成。流程图如图4-2所示。第9页共28页开始初始化DS18B20发SkipRom命令发ConvertT命令延迟1秒初始化DS18B20发SkipRom命令发ConvertT命令发ReadScratchpad命令从DS18B20中读出9字节,并放入暂存器结束图4-2读取温度子程序流程图4.3延时子程序为了严格符合DS18B20的操作协议,本程序定义了一系列延时程序,第一种主要采用NOP命令(C语言中用_nop_();函数)延时法,精确到10us。为了等待DS18B20转换温度(大约1秒)本程序使用第二种延时法,循环延时法。4.4显示数据子程序显示数据程序主要是通过P3口的RXD脚和TXD脚,以方式0同步发送数据以刷新LS74164D锁存器来刷新LED显示器。流程图如图4-3所示。4.5系统初始化程序主要功能是初始化串行口与触发器。流程图如图4-4所示。4.6温度转换段码子程序温度转换段码子程序的主要功能是把十进制整数形式的温度值转换为共阴极LED数码管的段码并储存在51的RAM中定义的暂存器中。流程图如图4-5所示。4.7计算温度子程序把DS18B20的温度格式转换为十进制浮点温度值,四舍五入后返回其值。流程图第10页共28页如图4-6所示。开始3字节发送完?否TI位置0结束向SBUF发送一字节是图4-3显示数据子程序图开始初始化串行口移位寄存器异步置0触发器进入同步状态触发器异步置0触发器进入同步状态工作指示亮DF(P1.1脚)置1显示初始植结束图4-4系统初始化子程序第1页共28页开始大于等于0?否是大于等于100?转换百位数字到数码否是取小于一百的部分转换十位数字到段码大于等于10?否是百位为灭转换十位数字到段码百位为灭十位为灭小于?是否百位为百位为灭取绝对值十位为取绝对值转换个位数字到段码图4-5温度转换段码子程序第2页共28页开始暂存器前两字节组合成整形温度为正?否是转换为浮点型在加0.5转换为浮点型在减0.5去整并返回温度植结束图4-6计算温度子程序第3页共28页第5章仿真及调试5.1Keil软件介绍Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。KeilC51Vision2集成开发环境是KeilSoftware,Inc/KeilElektronikGmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Proteus是目前最好的模拟单片机外围器件的工具,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件)。5.2调试的操作步骤1.在uVision集成开发环境中创建新项目(Project),扩展文件名为UV2,并为该项目选定合适的单片机CPU器件。2.用uVision的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。3.通过uVision2的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。4.对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。5.对没有语法错误的程序进行仿真调试,调试成功后将HEX文件写入到单片机应第4页共28页用系统的ROM中。6.下一步就可以在Proteus软件中将HEX文件烧入单片机。5.3仿真本设计采用的核心是AT89C51单片机,通过温度传感器DS18B20、暂存器74LS164和3位七段LED数码管等作为外围元件构成了一个数字温度计。系统经调试后,可以稳定运行。本系统采用串行器件具有线路简单、体积小、价格低等优点。本系统的仿真采用PROTEUS软件,在PROTEUS库中选取的元件,如表5-1所示。表5-1仿真元器件表序号型号属性1AT89C5151单片机2SW-SPDT-MOM单刀双掷开关3CAP电容器4DS18B20温度传感器57474边沿D触发器674LS164.IEC8位串行输入并行输出移位寄存器7RES.IEEE电阻器8LED发光二极管97SEG-COM-CAT-GRN7段共阴极数码管10CRYSTAL晶振11CLOCK信号源仿真结果如附录所示。本系统可以通过控制开关来实现温度的锁存,方便准确的读出当前温度值。第5页共28页总结该设计是以单片机为基准,以AT89C51单片机为控制核心。由温度传感器DS18B20、边沿D触发器、8位移位寄存器74LS164等外围元件构成了一个具有锁存功能的数字温度计。并采用LED数码管作为显示器,软件程序采用C语言编写,便于移植与升级。系统经调试后,可以稳定运行。在设计过程中,发现了很多问题,譬如PROTEUS仿真89C51的时候ALE脚没有信号输出,在此用SimulatorPrimitives中的CLOCK代替,而实际系统中89C51的ALE脚一直有正脉冲输出,此频率为时钟晶体振荡周期的六分之一(在此系统中为12MHZ/6)。虽然当89C51访问外部RAM(即执行MOVX类指令),要丢失一个时钟,严格地来说不宜用作精确的时钟信号源或定时信号,但在此系统中触发器不需要精确的时钟信号,所以在实际电路中D触发器的CLK脚连接C51的ALE脚。温度计的设计还不够人性化,比如加上语音的功能,可能会更有生命力。在这次设计中,运用了以前所学的单片机和数电知识;而在这个过程中,不仅对以前的知识重新熟悉了一次,而且学到了很多无形的知识。在我们的生活之中,总会面临形态各异的大小困难,只要我们静下心来找准原因,分析问题所在,通过老师的指导、帮助及找资料,就能进一步提升自己的知识及动手能力。在整个毕业设计过程中,最应感谢的就是我们的指导老师王萍,整个过程中王老师才是最苦最累的,不管工作多繁忙多辛苦,总会在百忙之中抽时间给我们细心的指导和讲解,王老师总是孜孜不倦、尽职尽责的给我们分析问题,从而解决问题。感谢王老师一直以来对我们的帮助,在这最想说的就是:“王老师,您辛苦了”。第6页共28页参考文献1李建忠.单片机原理及应用.西安:西安电子科技大学出版社,20022朱宇光.单片机应用新技术教程.北京:电子工业出版社,20003刘守义.单片机应用技术.西安:西安电子科技大学出版社,20024房小翠.单片机实用系统设计技术.北京:国防工业出版社,19995李华.MCS-51系列单片机实用接口技术.北京:电子工业出版社,20006李华.MCS-51系列单片机应用接口技术.北京:北京航空航天大学出版,19937陈汝全.实用微机与单片机控制技术.成都:电子科技大学出版社,19958张伟.单片机原理及应用.北京:机械工业出版社,20029苏平.单片机原理与接口技术.北京:电子工业出版社,200310胡汉才.单片机原理及接口技术.北京:清华大学出版社,199611何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,199012李建民.单片机在温度控制系统中的应用.武汉:江汉大学学报,1996第7页共28页附录1电路原理图KRes20uFC3apDLEA/VPXT98S.()6WIN45OGU-QBMHdrYfgcb第8页共28页附录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/A1427U1AT89C5126.0DQ2VC3GND1U2DS18B20SRG8RC1/-&1D132456108112913U574LS164SRG8RC1/-&1D132456108112913U374LS164SRG8RC1/-&1D132456108112913U474LS164D2Q5CLK3Q6S4R1U6:A7474R11kR21kX1CRYSTALC130pFC230pFR31kR44.7kC310uFSWITCHSW-SPDT-MOM第9页共28页附录3元器明细表件项目代号名称型号、规格数量备注更改R1-R3电阻器RT0.121255b1k10%3R4电阻器RT0.b4.7K10%1C1、C2电容器30PF2C3电容器10PF1X1晶振CRYSTAL12M1U6:A边沿D触发器74741U1单片机AT89C511SWITGH单刀双掷开关SW-SPDT-MOM1U1温度传感器DS18B201D1、D2发光二极管LED12U3-U58位串行输入并行输出移位寄存器74LS164.IEC3LED7段共阴数码管7SEG-COM-CAT-GRN3旧底图总号更改标记数量更改单号签名日期底图总号拟制张金凤审校王萍日期签名等级标记第1张共1张标准化批准数字温度计设计元器件明细表第10页共28页附录4源程序/文件: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_();_nop_();_nop_();第11页共28页voidDelay64us(void)Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();voidDelay104us(void)Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();Delay10us();voidDelay132us(void)Delay64us();Delay64us();voidDelay524us(void)第12页共28页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)return(presence);/0=存在(初始化成功),1=不存在(初始化失败)charread_1820(void)unsignedchari;unsignedcharvalue=0;for(i=8;i0;i-)/从DS18B20依次读出一字节的每位(D0位D8位)第13页共28页value=1;/value右移一位DQ=0;/拉低总线,开始“读时间隙”_nop_();/保持us,(若读时:usT60us)return(value);/返回读出数据voidwrite_1820(charval)chari;for(i=8;i0;i-)/一字节的位(D0位D8位)依次写入DS

温馨提示

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

评论

0/150

提交评论