基于热敏电阻的数字温度计Word格式.docx
- 文档编号:19610674
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:22
- 大小:1.23MB
基于热敏电阻的数字温度计Word格式.docx
《基于热敏电阻的数字温度计Word格式.docx》由会员分享,可在线阅读,更多相关《基于热敏电阻的数字温度计Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,弓I脚用作高阻抗输入。
当访问夕卜部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,对P3端口写
“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用
时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为
AT89C51特殊功能(第二功能)使用,如表一所示。
表一AT89C51引脚号第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
RST:
复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机
复位。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器配置为片内振荡器时,石晶振荡和陶瓷振荡均可采用。
2、ADC0804
ADC0804是属于连续渐进式(SuccessiveApproximationMethod)的
A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上,其引脚图如图二所示。
C5-匸
1
20
丽U
2
1?
ZZICLKR
WR匚
5
18
二]1八「騷川
CLK1二
4
17
二1I1H]
1NTR匸
16
_ID3J
曲匸
$
15:
二1
f
14
二1他
号
13
pDBs
比汕Z匚
9
12
二(叭
L0
二ITH:
M9E'
图二ADC0804引脚图
芯片参数:
工作电压:
5V,即VCC=5V。
模拟输入电压范围:
0〜5V,即0<
Vin<
5V。
分辨率:
8位,即分辨率为1/2=1/256,转换值介于0〜255之间。
转换时间:
100us(fCK=640KHz时)。
转换误差:
土1LSB。
参考电压:
2.5V,即Vref=2.5V。
各个管脚的作用:
D0-D7:
数字量输出端,输出结果为八位二进制结果;
CLK:
为芯片工作提供工作脉冲,时钟电路如图所示,时钟频率计算方式是:
FCK=1/(1.1XRXC)
CS:
片选信号;
WR:
写信号输入端;
RD:
读信号输入端;
INTR:
转换完毕中断提供端;
其他管脚连接如图,是供电和提供参考电压的管脚输入端。
3、铂热电阻PT100
铂热电阻PT100,它的阻值跟温度的变化成正比。
PT100的阻值与温度变化关系为:
当PT100温度为0C时它的阻值为100欧姆,在100C时它的阻值约为138.5欧姆。
它的工业原理:
当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。
在高温下其物理、化学性质都非
常稳定,因此它具有精度高、稳定性好、性能可靠的特点。
它的电阻一温度关系
的线性度非常好,在-200〜650C温度范围内线性度已经非常接近直线,电阻与温度的关系:
R=订+100。
4、LM324
LM324系列器件带有差动输入的四运算放大器。
它采用14脚双列直插塑料封装。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
它们有一些显著优点。
该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。
引脚图如图三所示。
14no121130
1235&
7
图三LM324引脚图
三、方案论证
本次设计以AT89C51和ADC0804为核心,利用热敏电阻的热敏效应,把温度变化转换成阻值变化,进而电压变化,把转换过来的模拟电压输送给模数转换电路ADC0804,将模拟量转换成数字量,再将数字量输送给单片机,单片机进行数据处理,处理的结果是,使输出的数据给数码管,数码管能够显示当前温度。
其各个元器件的主要职能如下:
铂热电阻PT100:
温度传感器,将非直接测量的温度转换成可测量可用的模拟电压电压信号。
LM324:
由于测温电路输出的电压信号很微小,如果直接输送给模数转换器将会造成很大的误差,LM324主要用来放大测温电路的输出电压,使
其输出的电压能够进行模数转换。
ADC0804:
模数转换器,将LM324输送来的模拟电压转换成数字量,并输送给单片机进行数据处理。
AT89C51单片机:
对ADC0804输送过来的数字信号,进行数据处理,处理结果送给数码管,使其能够显示当前的温度。
另外,他还控制着ADC0804模数转换器的工作状态如控制着模数转换器的选通、开启、转换和完成输出等。
数码管:
显示当前的温度值。
其设计思路如图四所示。
ADC0804
模数转换
电路
图四设计方框图
四、电路设计
1、PT100测温电路
铂热电阻PT100采用恒流源测量电路,其测量电路如图五所示
图五PT100测温电路
PT100温度与电阻值的对应关系如表二所示。
温度/C
-50
-30
-10
10
阻值/
Q
80.31
88.22
96.09
100.00
103.90
107.79
温度/r
30
50
70
90
100
110
111.67
119.40
130.90
134.71
138.51
142.29
表二PT100温度与电阻值的对应关系
当温度的变化范围是-50C-110C,则电阻由80.31Q变化到142.29Q。
根
据U=IR可得,则电压变化范围为0.2048v~0.3628v,电压变化为0.1580v。
2、ADC0804模数转换器的连接
芯片片选信号,低电平有效,高电平时芯片不工作。
启动ADC0804进行ADC采样,该信号低电平有效,即信号由低电平变成高电平时,触发一次ADC转换。
低电平有效,即=0时,DAC0804把转换完成的数据加载到DB口,可以通过数据端口DB0〜DB7读出本次的采样结果。
INTR:
转换完成输出端,输出低电平。
CLKIN和CLKR:
外接RC振荡电路产生模数转换器所需的时钟信号,VREF/2:
参考电压接入引脚,该引脚可外接电压也可悬空,若外接电压,则ADC的参考电压为该外界电压的两倍,如不外接,贝UVref与Vcc
共用电源电压,此时ADC的参考电压即为电源电压Vcc的值。
其连接电路如图六所示。
图六ADC0804的电路连接
3、AT89C51单片机的连接电路
单片机作为控制中心和数据处理中心,他连接着ADC0804模数转换器和数码管显示电路,其中P0.0~P0.3分别连接四个数码管,作为数码管的选通控制端,P3的八个输出端口作为数码管的数据输入端,P2.5~P2.7四个端口连接
ADC0804控制着模数转换器的选通、转换、输出等等,P1口连接着ADC0804的八位输出端口。
其他端口的功能:
复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器配置为片内振荡器时,石晶振荡和陶瓷振荡均可采用。
其连接电路如图七所示。
图七ATC89C51的连接电路
五、PROTEUS设计
1、创建新工程
双击Proteus8Professional图标,点击File(文件)中NewProject项,新建一个工程项目,在Name项输入项目名,在Path项中选择保存路径,点击Newproject,再点击Next设置完成,如图八所示。
*NewProjectWizard:
Start?
BlwJkFtr^jc^t
图八创建新工程
2、设置原理图
在原理图设计Schematicdesign对话框中选择创建原理图(Createa
Schematicfromtheselectedtemplate),如果不需要绘制原理图,可直接选
择Donotcreateaschematic。
在此选择创建原理图,原理图大小可以根据需要选择,本次选择默认(DEFAULT),如图九所示
NewProjectWizard:
SchematicDesign
(jDonotcreateaschematic.
•Createascherrati匚fromtheselectedtemplate.
DesignTemplates
default
LatidscapeAD
LardscapeA1
LardsvapeA2
Lar±
capeA3
LandscapeA4
LandscapeUSA
LandscapeUSA
Lari±
capaUSC
图九创建原理图
4、创建PCB设计
本次设计不需要PCB板,可以直接选择(DonotcreateaPCBlayout),如果需要可以选择(CreateaPCBlayoutfromtheselectedtemplate),如
图十所示。
DonotcreateaPCBlayout,
CieateaPCBlayoiMfromthesdecUdtonplata
L也川litTemplaej
DEFAULT
DoubleEurocard(2L則刨
DoubleEdracarJ(4Laper]
ExtendedDoubleEuiucard(2Layer)
ExtendedDoubleEurocard(4La^er]GeneticSingltLayer
SingleEurocard[2La^et]
SingleEurocard(4Lapef)
SingleEurocardwithCorrectof
图十创建PCB设计
5、选择芯片
在CreateFirmwareProject界面中,设置Family(系列)-8051,Contoller控制器-AT89C51,Compiler(编译器)-ASEM-51,也就是在此设计外部代码编译器。
如果不需要进行仿真,则可直接选择NoFirmwareProject即可。
按下Next,设置完成,如图所示。
图十一选择芯片
6、所有设置完之后,进入Protues原理图绘制界面,中间大部分网格区域是原
理图绘制区,左侧为工具栏,各种元器件、各种仪表等等,可以在此工具栏中查
找。
原理图绘制界面如图十二所示
图十二原理图绘制界面
7、添加元器件
点击工具栏中的P按钮,将会弹出元器件搜索界面(PickDivce),在Keyword一栏中输入将要查找的元器件的关键词,在搜索界面将会出现有关的元器件,选择想要的元器件,按下0K则添加成功,如图十三所示。
图十三添加元器件
8、布局布线
选中元器件,将元器件放进原理图绘制界面,双击放下,所有元器件都放进之后,并进行布局布线,原理图绘制结果如图十四所示。
图十四电路原理图
六、程序流程图
软件设计采用C语言编程,运用模块化程序设计思想,对整个程序分为四
个模块,分别是初始化单片机、定时器、显示器模块,获得AD转换数据模块,
数据处理模块和显示模块,对不同功能模块的程序进行分别编程,其流程图如图
十五所示。
结束
图十五程序流程图
在初始化AT89C51,初始化显示器,定时器TO时,首先进行函数说明和管脚定义,例如定义P1口作为AD的数据口,定义P2.4、P2.5、P2.6和P2.7口作为AD的控制端口等等。
初始化话程序完成后,将是数据采集装换程序,其流程图如图十六所示。
图十六AD数据采集转换
AD转换后的数字信号保存在了单片机,单片机将对保存的数字信号进行数
据处理,数据处理的结果输送给数码管,使数码管显示当前温度值,其流程图如
图十七所示。
T=8.124*addata-655.7
数码管显示
图十七数据处理流程图
七、生成.Hex文件
启动Keil软件,编译源文件,并对源文件进行编译,如果有错误,从错误
的第一条开始改正,直到编译没有错误,编译完成后,会产生.Hex文件,其源
文件编译如图十八所示
图十八源文件编译
八、Proteus仿真
1、导入.Hex文件
双击原理图中的单片机,将会弹出编辑元器件对话框,在对话框中的
Programfile中导入生成的.Hex文件,点击0K,导入成功,如图十九所示
图十九导入.Hex文件
2、电路仿真
符合设计要求,仿真结果如图二十所示
arm:
砂e血cmuace
L■血
mpprim■^ouabi
0rfedl世十廂■nUKkWUfc』
图二十仿真结果
九、总结
本次课设我学会了Protues软件的基本应用,首先创建新工程,创建原理图,选择芯片,添加元器件,布局连线,向单片机导入.Hex文件,最后对电路进行仿真。
除此之外,通过这次课设,我懂得了数字温度计的工作原理,了解了各个部分电路的职能作用,同时也加深了我对单片机、数电和模电的学习,同时我也发现了自己的不足,在软件编程发面存在一些不足的知识,以后要加强这方面的学习。
十、参考文献
【1】张毅刚,刘杰.MCS-51单片机原理及应用.[M]哈尔滨工艺大学出版社,2004年.
【2】郭天祥.51单片机C语言教程.[M]电子工业出版社,2012年.
【3】童师白.模拟电子技术基础.[M]高等教育出版社.2006年.
【4】阎石.数字电子技术基础.[M]高等教育出版社,2006年.
【5】张靖武.周灵杉.单片机系统的PROTUSE设计与仿真.[M]电子工业出版社,2007年
【6】张毅刚.基于Proteus的单片机课程的基础实验与课程设计.[M]人民邮电出版社,2012年.
【7】周润景,张丽娜.基于PROTUSE的电路及单片机系统设计与仿真.[M]北京航空航天大学出版社,2006年.
附录I仿真电路图
■
»
|
:
!
-*
-
1i•I
ti■■*
•-
—i
—1
si
T
'
:
t-i
•・
J
」B
•+
1S
雹1X1=
II
C
Q[Fl苦
□
■UAsa
HH;
ll2聶亠$OH.G™曹mar
«
Mn~£
•Ur:
■1-llIAJ;
Eg月-ijdqNU.H^FJa-471113直HH-別
L!
□r
~n-p
1—
E
一
->
F
11
2.
a
RT-
附录II程序
#include<
reg51.h>
#include<
intrins.h>
#defineucharunsignedchar#defineuintunsignedint
#define
ad0_7
P1
sbit
cs=P2A4;
rd=P2A7;
wr=P2A6;
intr=P2A5;
uchari;
ucharled[11]={
//"
0"
0x06,
1"
0x5B,
2"
0x4F,
3"
0x66,
4"
0x6D,
5"
0x7D,
6"
0x07,
7"
0x7F,
8"
0x6F,
9"
0x40,
-"
0x3F,
};
uchardat_AD[4]={0};
voidstart_ad(void)//启动AD
{cs=0;
wr=0;
_nop_();
wr=1;
while(intr);
cs=1;
}
read_ad()
{uintad_data;
ad0_7=0xff;
cs=0;
rd=0;
ad_data=ad0_7;
rd=1;
return(ad_data);
}
voiddata_shout(uintad_data)
{
floattemp;
uintT;
if(ad_data<
79)
temp=614.422-7.811*ad_data;
T=(uint)temp;
dat_AD[0]=10;
}//负温度dat_AD[0]中为温度符号数据
elseif(ad_data<
=204)
temp=7.990*ad_data-628.491;
dat_AD[0]=T/1000;
}//正温度
elseif(ad_data>
204)
temp=8.124*ad_data-655.742;
/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 热敏电阻 数字 温度计
![提示](https://static.bdocx.com/images/bang_tan.gif)