基于单片机的数字温度计的设计报告.docx

上传人:b****8 文档编号:9474356 上传时间:2023-02-04 格式:DOCX 页数:14 大小:320.59KB
下载 相关 举报
基于单片机的数字温度计的设计报告.docx_第1页
第1页 / 共14页
基于单片机的数字温度计的设计报告.docx_第2页
第2页 / 共14页
基于单片机的数字温度计的设计报告.docx_第3页
第3页 / 共14页
基于单片机的数字温度计的设计报告.docx_第4页
第4页 / 共14页
基于单片机的数字温度计的设计报告.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于单片机的数字温度计的设计报告.docx

《基于单片机的数字温度计的设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计的设计报告.docx(14页珍藏版)》请在冰豆网上搜索。

基于单片机的数字温度计的设计报告.docx

基于单片机的数字温度计的设计报告

基于单片机的数字温度计

摘要:

随着时代的进步和发展,单片机技术已经普及到我们的生活、工作、科研、各个领域,已经成为一种比较成熟的技术。

本文介绍一种基于AT89C51单片机的一种温度测量,该电路采用电位器和ADC0804转换器代替温度传感器DS18B20作为温度监测元件,测量范围0℃~100℃,误差范围为0.5℃。

正文着重给出了软硬件系统的各部分电路,介绍了ADC0804转换器的工作原理,AT89C51单片机的功能和应用。

该系统可以方便的实现温度采集和显示,并可根据需要设定上下限温度,它使用起来具有精确度高、测量广、灵敏度高、体积小、功耗低等优点。

该电路设计新颖、功能强大、结构简单,有广泛的应用前景。

关键词:

ADC0804、AT89C51、电位器、温度测量

1器件简介

1.1AT89C51简介

1.1.1AT89C51简介

AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

1.1.2管脚说明

如图1为AT89C51引脚图,各引脚功能说明如下:

图1AT89C51引脚图

VCC:

电源

GND:

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89C51特殊功能(第二功能)使用,如表1所示。

表1AT89C51引脚号第二功能

P3.0

RXD(串行输入)

P3.1

TXD(串行输出)

P3.2

INT0(外部中断0)

P3.3

INT0(外部中断0)

P3.4

T0(定时器0外部输入)

P3.5

T1(定时器1外部输入)

P3.6

WR(外部数据存储器写选通)

P3.7

RD(外部数据存储器读选通)

RST:

复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出69个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

1.2ADC0804简介

1.2.1ADC0804简介

A/D转换就是将模拟信号输换成数字信号。

A/D转换器就是用来实现这一功能的器件。

信号输入端常常是传感器或相应电路的模拟输出,由ADC器件转换成数字信号再提供给微处理器,以便用作显示等后期信号处理。

ADC0804是属于连续渐进式(SuccessiveApproximationMethod)的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。

本次使用8位COMS依次逼近型的ADC0804转换器.。

三态锁定输出;存取时间:

135US;分辨率:

8位;转换时间:

100US;总误差:

正负1LSB;工作温度:

ADC0804LCN---0~70度。

1.2.2引脚图及定义

引脚图如图2所示。

图2ADC0804引脚图

/CS:

芯片选择信号。

/RD:

外部读取转换结果的控制输出信号。

/RD:

为高时,DB0~DB7处理高阻抗;/RD为低时,数字数据才会输出。

/WR:

用来启动转换的控制输入,相当于ADC的转换开始(/CS=0时);当/WR由高变为低时,转换器被清除;当/WR回到高时,转换正式开始。

/CLKR:

时钟输入或接振荡无件(R,C)频率约限制在100KHZ~1460KHZ,如果使用RC电路则其振荡频率为1/(1.1RC)。

/INTR:

中断请求信号输出,低地平动作。

VIN(+)、VIN(-):

差动模拟电压输入。

输入单端正电压时,VIN(-)接地;而差动输入时,直接加入VIN(+)、VIN(-)。

AGND、DGND:

模拟信号以及数字信号的接地。

VREF:

辅助参考电压。

DB0~DB7:

8位的数字输出。

VCC:

电源供应以及作为电路的参考电压.

 

2系统设计

2.1设计方案

选用AT89C51型单片机作为主控制器件,用电位器模拟温度传感器,把转换的温度值的模拟量送入ADC0804的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。

2.2总体设计框图

温度计电路设计总体设计方框图如图3所示。

图3电路设计总体设计方框图

 

3系统硬件软件设计

3.1硬件设计

3.1.1主板电路

主板电路原理图如图4所示。

电路图中包括AT89C51单片机、时钟电路和复位电路、液晶显示模块、ADC0804转换器、电位器和电压表。

图4中的电位器可以调节输入电压的大小,并联接在电位器上的电压表可实时显示当前电压。

电位器有最大值和最小值,转换为温度显示时,限定为温度的最大值和最小值。

液晶显示屏与AT89C51单片机连接,单片机输出的数据会实时显示在该屏幕上,能直观的读出当前温度值。

ADC0804转换器将电位器输出的模拟信号转换为单片机可以接收的数字信号,然后通过与单片机的接口将数字信号输入到单片机中。

 

图4主板电路原理图

3.1.2温度监测模块

电位器和ADC0804转换器代替温度传感器DS18B20作为温度监测元件模块,该模块及ADC0804转换器与单片机的连接方式如图5所示。

图5测温模块及连接

3.2软件设计

3.2.1程序设计流程图

程序设计流程图如图6所示。

图6程序设计流程图

3.2.2程序设计

根据大体程序设计思路,将程序设计具体如下:

#include

Unsignedcharcodeseg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码

sbitint0=P3^2;//定义管脚功能

sbitwr=P3^6;//写端口

sbitrd=P3^7;//读端口

voidDelay(unsignedinttc)//显示延时程序

{

while(tc!

=0)

{

unsignedinti;

for(i=0;i<100;i++);

tc--;

}

}

unsignedcharadc0804(void)//读AD0804子程序

{

unsignedcharaddata,i;

rd=1;

wr=1;

int0=1;//读ADC0804前准备

P0=0xff;//P1全部置一准备

wr=0;

wr=1;//启动ADC0804开始测电压

while(int0==1);//查询等待A/D转换完毕产生的INT(低电平有效)信号

rd=0;//开始读转换后数据

i=i;i="i";//无意义语句,用于延时等待ADC0804读数完毕

addata=P0;//读出的数据赋与addate

rd=1;//读数完毕

return(addata);//返回最后读出的数据

}

unsignedintdatpro(void)//ADC0804读出的数据处理

{

unsignedcharx;

unsignedintdianyax;//用于存储读出数据

unsignedintdianya=0;//存储最后处理完的结果注意数据类型

for(x=0;x<10;x++)//将10次测得的结果存储在dianya中

{

dianya=adc0804()+dianya;

}

dianya=dianya/10;//求平均值

dianya=dianya*3.922;

return(dianya);//返回最后处理结果

}

voidLed()

{

unsignedintdate;

date=datpro();//调用数据处理最后结果

P1=P1&0x7f;

P2=seg7code[date/1000];//输出百位

Delay(8);

P1=P1|0xf0;

P1=P1&0xbf;

P2=seg7code[date%1000/100];//输出十位

Delay(8);

P1=P1|0xf0;

P1=P1&0xdf;

P2=seg7code[date%100/10]|0x80;//输出个位及小数点

Delay(8);

P1=P1|0xf0;

P1=P1&0xef;

P2=seg7code[date%10];//输出小数点后第一位

Delay(8);

P1=P1|0xf0;

}

voidmain()

{

while

(1)

{

Led();//只需调用显示函数

}

}

4Proteus仿真

4.1Proteus仿真操作

将编写好的程序在keil软件中进行编译,然后生成“.hex”文件。

打开制作完成的电路原理图,双击单片机,将“.hex”文件加载到单片机中,然后即可进行仿真。

4.2Proteus仿真

对加载程序后的电路进行仿真操作,仿真后可看到电路图显示相应的温度数值,可通过改变电位器的大小值,显示不同的温度数值。

具体仿真显示图如图7所示。

图7电路仿真显示图

5测量数据分析

仿真后得出各电压值所对应温度的测量值,采样其中十组数据与真实值进行分析比对,计算出所设计的数字温度计的精度。

数据分析表如表2所示。

表2数据分析表

电压值/V

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

4.00

4.50

5.00

真实值/℃

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

测量值/℃

0.0

9.8

20.0

29.8

40.0

49.9

60.0

69.8

80.0

89.8

100.0

由数据表中数据,得

最大绝对误差为:

0.2℃

引用误差为:

0.2/100*100%=0.2%

该数字温度计的精度为:

0.2

经计算可知,所设计的数字温度计符合设计要求。

 

参考文献:

[1]丁向荣,谢俊,王彩申.单片机C语言编程与实践[M].北京:

电子工业出版社,2009.

[2]阎石.数字电子技术基础[M].北京:

高等教育出版社,2006.5.

[3]龚尚福,贾澎涛,靳玉萍.C/C++语言程序设计[M].徐州:

中国矿业大学出版社,2006.

[4]皮大能,南光群,刘金华.单片机课程设计指导书[M].北京:

北京理工大学出版社,2010.7.

[5]陈涛.单片机应用及C51程序设计[M].北京:

机械工业出版社,2010.9.

[6]楼然苗,李光飞.单片机课程设计指导[M].北京:

北京航空航天大学出版社,2012.1.

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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