基于单片机89c51的数字温度计.docx

上传人:b****6 文档编号:8903209 上传时间:2023-05-15 格式:DOCX 页数:26 大小:373.14KB
下载 相关 举报
基于单片机89c51的数字温度计.docx_第1页
第1页 / 共26页
基于单片机89c51的数字温度计.docx_第2页
第2页 / 共26页
基于单片机89c51的数字温度计.docx_第3页
第3页 / 共26页
基于单片机89c51的数字温度计.docx_第4页
第4页 / 共26页
基于单片机89c51的数字温度计.docx_第5页
第5页 / 共26页
基于单片机89c51的数字温度计.docx_第6页
第6页 / 共26页
基于单片机89c51的数字温度计.docx_第7页
第7页 / 共26页
基于单片机89c51的数字温度计.docx_第8页
第8页 / 共26页
基于单片机89c51的数字温度计.docx_第9页
第9页 / 共26页
基于单片机89c51的数字温度计.docx_第10页
第10页 / 共26页
基于单片机89c51的数字温度计.docx_第11页
第11页 / 共26页
基于单片机89c51的数字温度计.docx_第12页
第12页 / 共26页
基于单片机89c51的数字温度计.docx_第13页
第13页 / 共26页
基于单片机89c51的数字温度计.docx_第14页
第14页 / 共26页
基于单片机89c51的数字温度计.docx_第15页
第15页 / 共26页
基于单片机89c51的数字温度计.docx_第16页
第16页 / 共26页
基于单片机89c51的数字温度计.docx_第17页
第17页 / 共26页
基于单片机89c51的数字温度计.docx_第18页
第18页 / 共26页
基于单片机89c51的数字温度计.docx_第19页
第19页 / 共26页
基于单片机89c51的数字温度计.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机89c51的数字温度计.docx

《基于单片机89c51的数字温度计.docx》由会员分享,可在线阅读,更多相关《基于单片机89c51的数字温度计.docx(26页珍藏版)》请在冰点文库上搜索。

基于单片机89c51的数字温度计.docx

基于单片机89c51的数字温度计

单片机原理与应用技术课程设计

题目:

数字温度计

姓名:

专业:

学号:

学院:

完成时间:

指导老师:

 

目录

摘要2

Abstract2

引言4

第一章系统设计5

1.1设计目的5

1.2方案论证5

1.3系统框图5

1.4模块功能6

第二章电硬件设计6

2.1元器件6

2.1.1单片机7

2.1.2数码管8

2.1.3温度传感器10

2.1.4三极管11

2.2电路设计12

2.2.1单片机复位电路与时钟连接电路13

2.2.2DS18B20、显示器与单片机连接电路14

2.2.3数码管14

2.2.4三极管与单片机连接电路15

第三章软件设计16

3.1系统软件流程控制16

3.2电路设计17

3.2.1主程序17

3.2.2读出温度子程序18

3.2.3温度转换命令子程序18

3.2.4计算温度子程序19

3.2.5显示数据刷新子程序19

第四章实验结果测试20

4.1实验准备20

4.2存在问题及解决办法20

4.3实验测试结果21

结束语21

参考文献23

附录1仿真图24

附录2源程序25

摘要

随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。

传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。

因此,了解并掌握传感器的基本结构、工作原理及特性是非常重要的。

在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,其缺点如下:

1.硬件电路复杂;2.软件调试复杂;3.制作成本高。

为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。

本设计基于数字温度传感器DS18B20,以AT89C52单片机为核心的测试系统,具有结构简单、测温精度高、稳定可靠的优点。

可实现温度的实时检测和显示,并可设置温度上下极限。

本文给出了系统的硬件电路详细设计和软件设计方法,完成了实验板的制作,经过调试和实验验证,实现了预期的全部功能。

关键词:

单片机;温度传感器;三极管;四位八段数码管;温度

Abstract

Asthe"informationage",asameansofobtaininginformation--madethemostsignificantadvancesinsensortechnology,itsapplicationsmoreandmorewidelyontheirincreasinglyhighdemand,anincreasinglyurgentneedto.Sensortechnologyhasbecomeoneoftheimportantindicatorsofthelevelofanationalscienceandtechnologydevelopment.Therefore,tounderstandandgraspthebasicstructure,workingprincipleandcharacteristicsofsensorsareveryimportant.Indailylifeandindustrialandagriculturalproduction,detectionandcontrolofthetemperatureisoftenused,thetraditionaltemperaturemeasuringcomponentthermocoupleandthermalresistance.ThermocoupleandRTDaregenerallyvoltageismeasured,thenconvertedtothecorrespondingtemperature,requiresmoreexternalhardwaresupport,itsshortcomingsareasfollows:

1.Circuitcomplexity;2.Debuggingcomplexsoftware;3.Productioncostsarehigh.Inordertoraiseawarenessandunderstandingofthesensor,especiallythein-depthstudyofatemperaturesensoraswellastheirusageanduse,basedonpracticalprinciples,broadandtypicaldesignofthesystem.ThisdesignisbasedondigitaltemperaturesensorDS18B20,AT89C52MCUdesignedthistestforcoresystem,withsimplestructure,highaccuracy,stablereliabilityadvantages.Real-timedetectionanddisplayoftemperature,andtemperaturecanbesetupperandlowerlimits.Thispaperpresentsasystemdesignofhardwarecircuitandsoftwaredesignmethod,completedtheexperimentalBoardforproduction,aftercommissioningandexperimentalverificationtoachievefullfunctionalityisexpected.

Keywords:

microcontroller;temperaturesensors;transistors;foureight-segmentdigitaltubetemperature

引言

单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统。

单片机的潜力越来越被人们所重视。

特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。

而现在的单片机在农业上页有了很多的应用。

温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。

测量温度的基本方法是使用温度计直接读取温度。

最常见到得测量温度的工具是各种各样的温度计,例如:

水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。

它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。

利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。

第一章系统设计

1.1设计目的

●掌握温度计,报警系统的设计、组装与调试方法。

●熟悉仿真软件(proteus)的使用。

●重点掌握单片机的使用及其各引脚的功能。

1.2方案论证

三种方案进行比较,方案一中热敏电阻的性能决定了整个设计产品所能检测的温度范围。

方案二的温度检测范围取决于DS18B20芯片,其范围较小,但足够满足般测量需要,大约为-50℃到150℃。

由于方案二的更为简洁,有效的利用了智能芯片DS18B20可以直接读出被测温度值,进行转换,就可以满足设计要求。

方案三中,由于采用热敏电阻作为温度传感器,中间会经过一些滤波、信号放大、A/D转换等环节,造成系统的抗干扰能力不理想,温线性度的非误差较大。

因而最终采用方案二来完成本次设计。

1.3系统框图

系统以DS18B20为传感器用以将温度模拟量转化为电压数字量以总线传入单片机,以AT8952为主芯片,在主芯片对DS18B20传入的温度值进行处理,由单片机程序控制,将经处理后的温度由数码管显示出来。

系统框图1如下:

 

图1系统框图

1.4模块功能

随着人们生活水平的不断提高,数字化控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示。

第二章电硬件设计

2.1元器件

系统整体硬件电路包括,单片机,数码管,传感器,发光三极管

2.1.1单片机

AT89C51作为温度测试系统设计的核心器件。

该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。

不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS—48单片机的体系结构和指令系统。

单片机引脚图2所示

图2单片机引脚图

 

AT89C51单片机的主要特性:

Ø与MCS-51兼容,4K字节可编程闪烁存储器;

Ø灵活的在线系统编程,掉电标识和快速编程特性;

Ø寿命为1000次写/擦周期,数据保留时间可10年以上;

Ø全静态工作模式:

0Hz-33Hz;

Ø三级程序存储器锁定;

Ø两个16位定时器/计数器,6个中断源;

Ø全双工串行UART通道,低功耗的闲置和掉电模式;

Ø看门狗(WDT)及双数据指针;

Ø片内振荡器和时钟电路;

 

2.1.2数码管

LED显示器是单片机应用系统中常见的输出器件,而在单片机的应用上也是被广泛运用的。

如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。

LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

数码管引脚如图3所示:

图3数码管引脚

注:

管脚顺序:

从数码管的正面看,以第一引脚为起点,管脚的顺序是逆时针排列的A-11B-7C-4D-2

E-1F-10G-5DP-3

LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。

当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。

这种显示器有共阳极和共阴极两种。

共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。

当某个发光二极管的阳极为高电平时,发光三极管点亮,相应的段被显示。

同样,共阳极LED显示器的发光三极管的阳极接在一起,通常此共阳极接正电压,当某个发光三极管的阴极接低电平时,发光三极管被点亮,相应的段被显示。

本次设计所用的LED数码管显示器为共阳极。

2.1.3温度传感器

DS18B20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

DS18B20的性能特点如下:

a)独特的单线接口仅需要一个端口引脚进行通信;

b)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

c)无须外部器件;

d)可通过数据线供电,电压范围为3.0-5.5V;

e)零待机功耗;

f)温度以9或12位数字;

g)用户可定义报警设置;

h)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

i)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。

另一种是寄生电源供电方式,如图4所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。

采用寄生电源供电方式时VDD端接地。

由于单线制只有一根线,因此发送接口必须是三态的。

DS18B20如图4所示

图4DS18B20封装

2.1.4三极管

三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压UB有一个微小的变化时,基极电流IB也会随之有一小的变化,受基极电流IB的控制,集电极电流IC会有一个很大的变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。

但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。

IC的变化量与IB变化量之比叫做三极管的放大倍数β(β=ΔIC/ΔIB,Δ表示变化量。

),三极管的放大倍数β一般在几十到几百倍。

 

三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点,也叫建立偏置,否则会放大失真。

在三极管的集电极与电源之间接一个电阻,可将电流放大转换成电压放大:

当基极电压UB升高时,IB变大,IC也变大,IC在集电极电阻RC的压降也越大,所以三极管集电极电压UC会降低,且UB越高,UC就越低,ΔUC=ΔUB。

三极管原理图如图5所示

图5三极管原理图

2.2电路设计

系统整体硬件电路包括,单片机控制电路。

传感器数据采集电路,数码管电路发光三极管电路。

2.2.1单片机复位电路与时钟连接电路

图6单片机复位电路

单片机复位电路如图6所示。

复位电路可以实现上电自动复位和手动复位两种复位功能。

在单片机复位引脚RST通过一个下拉电阻接地,再在引脚RST与VCC之间接入10uF电解电容,达到上电自动复位,同时在电容两端并连接入一个按键开关SW-PB,达到手动复位的功能。

晶振电路通过在XTAL1与XTAL2两个引脚之间接入一个11.095MHz的晶振,同时在晶振两端接上30uF电容C2、C3,从而对晶体和振荡电路的补偿和匹配,使电路易于启振并处于合理的激励态下,同时对振荡频率也有一定的“微调”作用。

2.2.2DS18B20、显示器与单片机连接电路

图7DS18B20与单片机连接电路

DS18B20与单片机连接电路如图7所示。

DSl8B20与单片机相连:

DSl8820的l引脚接地,3引脚接VCC,采用外部供电方式;2引脚接至单片机的P3.7引脚;DS18B20只用一根信号线传输数据,而且数据传输是双向的,连接方便,便于扩展,由于采用CMOS技术,该芯片的耗电量很小。

2.2.3数码管

图8单片机与数码管连接电路

数码管与单片机连接电路如图4-18所示。

数码管的段码a、b、c、d、e、f、g、dp分别与单片机的P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7相连,在P0端口有个上拉电阻,数码管的位码1234分别与PNP三极管和电阻相连接到单片机的P1的前四个端口。

2.2.4三极管与单片机连接电路

图9三极管电路图

Q1发射极e-数码管引脚6基极b-单片机P2.0集电极c-高电平

Q2发射极e-数码管引脚8基极b-单片机P2.1集电极c-高电平

Q3发射极e-数码管引脚9基极b-单片机P2.2集电极c-高电平

Q4发射极e-数码管引脚12基极b-单片机P2.3集电极c-高电平

第三章软件设计

3.1系统软件流程控制

软件部分可以分为三大部分:

DS18B20读取温度程序、数码管显示程序及主程序(包括温度值的转换等模块)。

系统软件流程图如图10所示。

图10系统软件流程控制图

 

3.2电路设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。

3.2.1主程序

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,其程序流程见图11所示。

图11主程序流程图

3.2.2读出温度子程序

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。

其程序流程图如图12示

图12读出温度子程序

3.2.3温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。

温度转换命令子程序流程图如上图,图13所示

 

图13温度转换命令子程序图14计算温度子程序

3.2.4计算温度子程序

计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如14所示

3.2.5显示数据刷新子程序

显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。

程序流程图如图15。

图15显示数据刷新子程序

第四章实验结果测试

对设计的温度计进行测试,其结果表明能达到该精度要求

4.1实验准备

温度传感器DS18B20一个,AT89C52一个,晶振一个,四位共阳极数码管一个,发光二极管四个,电阻电容及导线若干。

4.2存在问题及解决办法

1.焊电路板数码管不亮

用万用表测试出电路焊接出现问题的地方

2.程序写进芯片,数码管显示数据不正确

修改及调试程序。

4.3实验测试结果

结束语

作为一名信息工程的大二学生,我觉得做单片机课程设计是很有意义的,而且也是必要的。

在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。

为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。

其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:

proteus仿真、汇编语言、模拟和数字电路知识等。

虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,要做好一个课程设计,就必须做到:

在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。

在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。

最后,我非常感谢我的指导老师王老师,在他的悉心的指导于帮助下,我们才能使我们的设计更加完善。

我一定不会辜负您的希望,在未来的日子里,我一定会加油努力!

参考文献

(一)电子1001班——穆翠—数字温度计设计与制作_

(1)

(二)基于单片机的数字温度计设计

(三)数字温度计设计报告【C语言】

(四)单片机课程设计--数字温度计[1]-

(五)数字温度表设计_刘彩琴

(2)

(六)数字温度计课程设计[1]

(1)

 

附录1仿真图

附录2源程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitDQ=P3^4;//ds18b20数据线

uinttvalue;//温度值

uchartflag;//温度正负标志

//ucharcodetemp[]="实时温度:

";//实时温度

uchardisp_num[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//显示数据列表0---9

//功能:

延时1毫秒

//入口参数:

x

//出口参数:

//说明:

晶振为12M

voidDelay_xms(uintx)

{

uinti,j;

for(i=0;i

for(j=0;j<112;j++);

}

voidDelay_xus(uintx)//延时1微秒

{

while(x--);

}

//关闭数码管显示,当Q0~Q3均为高电平时,三极管均截止,无电流流过数码管,显示被关闭

voidtube_off(void)

{

P2=0xff;

}

//数码管数据显示

//入口参数:

x为需要显示的数据,addr为数码管地址即第几位数码管

voidtube_disp(ucharaddr,ucharx)

{

if(addr==3)

P0=disp_num[x]&0x7f;//将显示数据送P0口

else

P0=disp_num[x];//将显示数据送P0口

switch(addr)

{

case1:

//选通第1位数码管

P2=0xfe;

break;

case2:

//选通第2位数码管

P2=0xfd;

break;

case3:

//选通第3位数码管

P2=0xfb;

break;

case4:

//选通第4位数码管

P2=0xf7;

break;

}

Delay_xms

(2);

tube_off();

}

voidds1820rst()/*ds1820复位*/

{

DQ=1;//DQ复位

Delay_xus(4);//延时

DQ=0;//DQ拉低

Delay_xus(100);//精确延时大于480us

DQ=1;//拉高

Delay_xus(40);

}

uchards1820rd()/*读数据*/

{

uchari=0;

uchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

Delay_xus(10);

}

return(dat);

}

voidds1820wr(ucharwdata)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2