基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx

上传人:b****6 文档编号:18607155 上传时间:2022-12-29 格式:DOCX 页数:14 大小:219.63KB
下载 相关 举报
基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx_第1页
第1页 / 共14页
基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx_第2页
第2页 / 共14页
基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx_第3页
第3页 / 共14页
基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx_第4页
第4页 / 共14页
基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx

《基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

基于STC89C52单片机的数字温度计综述Word文档下载推荐.docx

5系统测试·

P9

5.1主要指标测试·

5.2测试结果分析·

参考文献·

P10

附录·

P11

基于STC89C52单片机的数字温度

专业:

自动化成员姓名:

邹远淳徐冰孙顺新唐高峰指导教师:

杨伟新

摘要温度的检测是工业生产中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发。

本文设计了一种基于STC89C52单片机的温度检测系统,该系统将温度传感器DS18B20接在控制器的端口上,对温度进行采集,将采集到的温度值显示在LED数码管上。

经实验测试表明,该系统设计和布线简单,结构紧凑,有可读性高,反应速度快,测量准确,抗干扰能力强,性价比高,扩展方便等优点,具有关阔的应用前景。

关键词STC89C52,数字温度计,DS18B20

ABSTRACT

Temperaturedetectionisoneoftypicalapplicationinindustrialproduction.Asthesensorismorewidelyusedintheproductionandlife,Usingnewdigitaltemperaturesensorfortemperaturetestandtemperaturecontrolgetfasterdeveloped.ThispaperdesignsatemperaturedetectionbasedonSTC89C52single-chipmicrocomputersystem.ThesystemwillbethetemperaturesensorDS18B20connecttoaportonthecontroller,collecttemperature,collectedtemperaturevaluewillbedisplayedontheLEDdigitaltube.Throughexperimentaltests,thesystemdesignandwiringissimple,compact-sized,therearereadable,quickresponse,accuratemeasurement,highEFT,highcostperformance,convenientextensionandotherbenefits,ithasasprawlingapplicationprospect.

KeyWords:

STC89C52,Digitalthermometer,DS18B20

1绪论

随着人民生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子。

单片机控制温度检测系统的温感系统主要是DS18B20芯片,该芯片由一根总线控制,电压范围为3.0v--5.5v。

DS18B20具有测温方便、测温范围广、测温精度高等特点。

出于对此类问题的探索,我们设计并制作了此温度检测系统。

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

其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器模块主要使用STC89C52单片机,测温传感模块使用DS18B20;

显示模块使用LED数码管,可以只管、准确的显示所测温度值。

2系统组成及工作原理

1总体设计方案

经分析,将系统分为两个部分,一个是由温度传感器DS18B20组成的检测部分,另一个是由单片机和LED数码管组成的主控与显示部分。

如图所示DS18B20将检测到的数据送到单片机,单片机对接收到的数据进行处理并送到1602显示,6V电源给各个部分供电。

图2-1系统总设计图

2系统模块组成

本系统由单片机主控电路、DS18B20温度检测模块、LED数码管显示模块3部分组成。

3系统电路设计

1STC89C52单片机主控制器

STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35Mhz,6T/12T可选。

STC89C52引脚图如下所示:

图3-1STC89C52引脚图

STC89C52单片机主控电路原理图如下:

图3-2STC89C52单片机主控电路原理图

单片机主控模块包括了振荡电路、复位电路,同时接入了各个模块的接口,保证了整个系统的灵活性。

单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。

硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。

这种设计方法可以降低系统设计的复杂性。

控制电路的核心器件是由STC公司生产的STC89C52单片机,属于MCS-51系列。

STC89C52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;

片上Flash允许程序存储器在系统可编程,亦适于常规编程器;

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;

价格低廉、性能可靠、抗干扰能力强。

因此广泛应用于工业控制和嵌入式系统中。

3.2LED数码管显示模块

LED数码管原理图如下所示:

图3-3LED数码管原理图

下面左图为实验板其中一只数码管,而右图为数码管的内部接法,也

就是前面所说的共阳极。

当要其显示“1”时,只需置B与C为低电平,而其它的为高电平;

当要显示“2”时,只需置A﹑B﹑G﹑E﹑D为低电平,而其它的为高电平;

当要显示“8”时,就除了小数点以外全部为低电平;

如此类推。

图3-4数码管图3-5数码管的内部接法

下面我们来系统地介绍一下在单片机应用电路中最为实用的LED数码管显示方法

——“动态扫描”。

什么是动态扫描?

就是所要工作的若干个数码管轮流显示,只要轮流显示的速度足够快,每秒约50次以上,由于人眼的“视觉暂留”特性,看起来就像是连续显示,这样称为动态扫描。

这种显示方式在数码管应用系统中应用得最为广泛。

图3-6动态扫描电路图3-7动态扫描的工作时序

左图为共阳极的动态扫电路,而右图则为电路的工作时序。

下面我们来分析一下动态扫描的工作原理。

在电路中T1﹑T2﹑T3为用作开关作用,当B极dig1﹑dig2﹑dig3为低电平时导通,为高电平时截止,三个电阻为限流电阻。

下面我们从图5-15来理解一下动态扫描的工作原理。

第一:

首先显示个位,在单片机中将dig1置低电平,而dig2与dig3置高电平,所以只有T1导通,而T2与T3则截止,同时在段码a~g中输出相应段码的低电平,那么在数码管中只有个位显示,而相应的十位与百位则没有显示。

第二:

显示十位,在单片机中将dig2置低电平,而dig1与dig3置高电平,所以只有T2导通,而T1与T3则截止,同时在段码a~g中输出相应段码的低电平,那么在数码管中只有十位显示,而相应的个位与百位则没有显示。

第三:

显示百位,在单片机中将dig3置低电平,而dig1与dig2置高电平,所以只有T3导通,而T1与T2则截止,同时在段码a~g中输出相应段码的低电平,那么在数码管中只有百位显示,而相应的个位与十位则没有显示。

3.3温度检测模块

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

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

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

●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V;

●零待机功耗;

●温度以9或12位数字;

●用户可定义报警设置;

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

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

DS18B20接线图如下所示:

图3-8DS18B20接线图

4系统软件设计

设计中使用德国Keil公司出品的KeiluVision编程软件,它是业内对51系列单片机编程的常用工具。

下载器为STC公司的专用程序下载器,与使用的STC89C52RC单片机兼容。

5系统测试

5.1主要指标测试

本系统测量范围为-55.0℃-99.9℃,报警温度值设定范围为0℃-99℃,温度误差为0.1℃。

5.2测试结果分析

通过测试,与标准仪器所测得的温度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。

参考文献

【1】康华光《电子技术基础》,高等教育出版社,第二版,数字部分

【2】康华光《电子技术基础》,高等教育出版社,第五版,模拟部分

【3】谭浩强《C程序设计教程》,清华大学出版社,第一版

【4】张毅刚《单片机原理及应用》,高等教育出版社

【5】郭天祥《新概念51单片机C语言教程:

入门、提高、开发、拓展全攻略》,电子工业出版社

附录

附录1系统图

图10系统完整原理图

图11LED数码管显示模块原理图

图12DS18B20温度检测模块原理图

附录2、程序源代码

#include<

reg52.h>

unsignedcharm,n,p;

sbitDQ=P2^3;

//定义DS18b20的管脚

sbitL1=P2^7;

//定义控制数码管的管脚

sbitL2=P2^6;

sbitL3=P2^5;

sbitL4=P2^4;

unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,

0x82,0xF8,0x80,0x90,0x7f,0xbf,0xa7};

//0-9数字,后面为"

.-C"

/*****延时子程序*****/

voidDelay_DS18B20(intnum)

{

while(num--);

}

/*****初始化DS18B20*****/

voidInit_DS18B20(void)

unsignedcharx=0;

DQ=1;

//DQ复位

Delay_DS18B20(8);

//稍做延时

DQ=0;

//单片机将DQ拉低

Delay_DS18B20(80);

//精确延时,大于480us

//拉高总线

Delay_DS18B20(14);

x=DQ;

//稍做延时后,如果x=0则初始化成功,x=1则初始化失败

Delay_DS18B20(20);

/*****读一个字节*****/

unsignedcharReadOneChar(void)

unsignedchari=0;

unsignedchardat=0;

for(i=8;

i>

0;

i--)

{

//给脉冲信号

dat>

>

=1;

if(DQ)

dat|=0x80;

Delay_DS18B20(4);

}

return(dat);

/*****写一个字节*****/

voidWriteOneChar(unsignedchardat)

i>

i--)

DQ=dat&

0x01;

Delay_DS18B20(5);

/*****读取温度*****/

unsignedintReadTemperature(void)

unsignedchara=0;

unsignedcharb=0;

unsignedintt=0;

floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);

//跳过读序号列号的操作

WriteOneChar(0x44);

//启动温度转换

WriteOneChar(0xBE);

//读取温度寄存器

a=ReadOneChar();

//读低8位

b=ReadOneChar();

//读高8位

t=b;

t<

<

=8;

t=t|a;

tt=t*0.0625;

t=tt*10+0.5;

//放大10倍输出并四舍五入

return(t);

voiddisplay()//数码管扫描函数

P0=table[m];

L1=0;

//暂未1,如用三极管驱动要改为0

Delay_DS18B20(250);

L1=1;

//后关闭显示

P0=table[n];

//P1=table[10];

//第二位后显示中间点

L2=0;

L2=1;

P0=table[10];

P0=table[p];

//小数部分

L3=0;

L3=1;

P0=table[12];

L4=0;

L4=1;

/*主函数部分程序*/

voidmain()//主函数

unsignedintj;

while

(1)

j=ReadTemperature();

//读取温度

m=j/100;

//分离出十位

n=(j%100)/10;

//分离出个位

p=j%10;

//分离出小数位

display();

//扫描数码管

答谢

在这里首先感谢我们大一以来的所有的代课老师们,他们孜孜不倦的指导我们学习,解答疑问,我们才有可能做出这个作品。

感谢邹远淳同学,他负责收集做设计需要的资料,花费了很大精力。

还有感谢徐冰和孙顺新同学,他们废寝忘食的和我们一起焊接原件,在我们不断的调试和思考下,终于实现了最终的设计。

学号

姓名

分工

成绩

P1*******3

唐高峰

手机资料,编制程序,撰写论文

P1*******5

邹远淳

论文部分内容整修,论文答疑

P1*******9

孙顺新

电路板焊接,烧制程序

徐冰

电路板焊接,材料购买

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1