基于单片机控制的智能温度测量仪课程设计.docx
- 文档编号:23323478
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:22
- 大小:1.38MB
基于单片机控制的智能温度测量仪课程设计.docx
《基于单片机控制的智能温度测量仪课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的智能温度测量仪课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机控制的智能温度测量仪课程设计
开封大学
《智能仪器》课程设计报告书
智能温度测量仪
院系:
机电工程学院
专业:
应用电子技术
班级:
09应电1班
*******
学号:
******1506
指导老师:
***
目 录
一、智能温度测量仪简介………………………3
二、设计要求(功能要求与技术指标)………………………………3
三、总体方案论证与选择……………………………3
A/D转换原理
A/D转换器的主要性能指标和参数
A/D转换器的基本工作原理及器件介绍[11]
四、硬件选择与设计…………………………………………7
流程图
AT89S51单片机芯片介绍
温度传感器AD590基本知识
电路原理图
系统板上硬件连线要求
元器件清单
五、软件设计……………………………………11
程序设计要求
流程图
C语言源程序
六、设计总结(心得体会)…………………………………………17
七、参考文献……………………………………17
一.智能型温度测试仪简介
智能型温度测试仪是将变换元件所得的模拟量转换成数字量通过单片机等智能芯片进行数据处理、运算等并以数字形式显示测量结果或控制其他装置的智能化,智能型温度测试仪是将温度变换元件
二.功能要求与技术指标
利用AD590温度传感器完成温度的测量,把转换的温度值的模拟量送入ADC0809的其中一个通道进行A/D转换,将转换的结果进行温度值变换之后送入数码管显示。
⑴.功能要求
①.配合电阻温度传感器,实现温度的测量;
②.具有开机自检、自动调零功能;
③.具有克服随机误差的数字滤波功能;
④.使用220V/50Hz交流电源,设置电源开关、电源指示灯和电源保护功能。
S
⑵.主要技术指标
①.测量温度范围:
-50~150℃
②.测量误差:
≤1%
⑥.显示方式:
4位LED数码管显示被测温度值。
三.方案论证
由于这个实验显示的是个电压值,而最终设计要求是测量人的体温。
不是温度的变化量。
所以要把这里电压的变化转化成温度的变化。
所以对转化的参数进行介绍。
要知道AD转换是把模拟量信号转化成与其大小成正比的数字量信号。
AD转换电路的种类很多,根据转换原理,目前常用的AD转换电路主要分成逐次逼近式和双积分式。
1A/D转换原理
(1)逐次逼近式转换原理
逐次逼近式转换的基本原理是用一个计量单元使连续量整量化(简称量化),即用计量单位与连续量比较,把连续量变为计量单位的整数倍,略去小于计量单位的连续量部分。
这样所得到的整数量即数字量。
显然,计量单位越小,量化的误差也越小。
可见,逐次逼近式的转换原理即“逐位比较”。
常用的逐次逼近式A/D器件有ADC0809、AD574A等。
(2)积分转换原理
双积分A/D转换采用了间接测量原理,即将被测电压值Vx转换成时间常数,通过测量时间常数得到未知电压值。
所谓双积分就是进行一次A/D转换需要二次积分。
转换时,控制门通过电子开关把被测电压Vx加到积分器的输入端,积分器从零开始,在固定的时间T0内对Vx积分(称定时积分),积分输出终值与Vx成正比。
接着控制门将电子开关切换到极性与Vx相反的基准电压VR上,进行反向积分,由于基准电压VR恒定,所以积分输出将按T0期间积分的值以恒定的斜率下降,当比较器检测积分输出过零时,积分器停止工作。
反相积分时间T1与定值积分的初值(即定时积分的终值)成比例关系,故可以通过测量反相积分时间T1计算出Vx,即:
Vx=(T1/T0)·VR
反相积分时间T1由计数器对时钟脉冲计数得到。
由于双积分方法的二次积分时间比较长,因此A/D转换速度慢,而精度可以做得比较高。
对周期变化的干扰信号积分为零,抗干扰性能也比较好。
2A/D转换器的主要性能指标和参数
(1)分辨率(Resolution)
对于A/D转换器来说,分辨率反映了输出数字量变化一个相邻数码所需输入的模拟电压的变化量。
分辨率定义为:
分辨率=满刻度电压/2n—1
其中:
n是A/D转换器中对应的二进制代码的位数。
位数
分辨率
N
分数
%满刻度电压(近似)
8
1/255
0.4
9
1/511
0.2
10
1/1023
0.1
11
1/2047
0.05
12
1/4095
0.024
13
1/8191
0.012
14
1/16383
0.006
15
1/32767
0.003
16
1/65535
0.0015
表中列出了不同位数与分辨率之间的关系。
从表中可以看出,一个12位的转换器能分辨出满刻度电压的1/(212—1)或满刻度电压的0.024%。
因此,一个满刻度电压为10V的12位A/D转换器能够分辨输入电压变化的最小值为2.4Mv。
位数越多,分辨率越高。
(2)量化误差
当一个分辨率有限的A/D转换器在进行A/D转换时,必须把采样电压化为某个规定的最小数量单位(即量化单位,记为ULSB)的整数倍,这就是量化。
实际上,ULSB是A/D转换后的数字信号最低有效位1所能代表的数量。
由于模拟电压在幅值上是连续的,因此它不一定能被ULSB整除,这样在量化过程中不可避免地会引入误差。
对于有限分辨率的A/D转换器,在不考虑其他误差因素的情况下,其转换特性曲线与具有无限分辨率的A/D转换器的转换特性曲线之间的最大偏差,定义为量化误差。
(3)线性度
线性度有时又称为非线性度(Non-linearity)。
它是实际的转换特性曲线与理想的转换特性曲线之间的最大偏移量。
(4)绝对精度
在一个转换器中,任何数码所对应的实际模拟电压与其理想的电压值之差不是一个常数。
把这个差值的最大值定义为绝对精度。
对于A/D转换器,可以在每一阶梯的水平中心点进行测量。
绝对精度描述了在整个工作区间内实际的输出电压与理想的输出电压之间的最大偏差。
(5)转换时间
转换时间定义为A/D转换器完成一次从模拟量的采样到数字量的编码所需的建立时间,显然,它反应了A/D转换的快慢,实际应用中,只要满足微机系统的要求,并不一定要用时间快的转换器。
3.A/D转换器的基本工作原理及器件介绍
A/D转换器是一种将模拟电压转换为数字量的转换电路。
A/D转换器,按其输出代码有效位数的不同可以分为8位、10位、12位、16位和BCD码输出的7/2位、9/2位、11/2位等多种;按其转换速度的不同可以分为超高速(转换时间≤300μs),高速(转换时间330μs~33μs)、中速(转换时间33~333μs)、低速(转换时间>333μs)等几种。
为适应系统集成的需要,有些转换芯片内还包括多路转换的开关、时钟电路、基准电压源和二、十进制译码器等,大大超越了原来的A/D转换功能,为用户提供了方便。
大部分A/D转换器包括采样保持和量化编码电路。
采样保持电路能把一个时间连续的信号转换为时间离散的信号,并将采样信号保持一段时间。
量化编码电路是A/D转换的核心组成部分,依其形式不同,A/D转换器可分为直接A/D转换器和间接A/D转换器。
直接A/D转换器能将输入的模拟电压直接转换为输出的数字代码(无中间变量)。
其典型电路有并行A/D转换器和逐次逼近型A/D转换器。
间接A/D转换器在A/D转换过程中,首先将输入的模拟信号转换成与之成正比的时间或频率,然后通过计数的方式转换成数字量输出。
目前,间接A/D转换器有电压/时间变换型和电压/频率变换型两种。
四.硬件选择与设计
1.流程图
其程序流程图如下:
2.AT89S51单片机芯片介绍
图280S51芯片
P0RTO:
P0.0-P0.7(39~32)端口0是一个8位宽的漏极开路双向输入输出端口,共有8位,P0.0表示位0,P0.1表示位1。
(1)其他三个I/O端口(Pl、P2、P3)则不具有此电路结构,而是内部有一提升电路,P0在当作y0用时可以推动8个LS的ITL负载。
如果当EA引脚为低电位时(即取用外部程序代码或随机存储器),P0就以多工作方式提供地址总线(A0—A7)及数据总线(DO-D7)。
设计者必须外加一个锁存器将端口O送出的地址锁存为AM,再配合端口
(2)所送出的A8-A15合成一个完整的16位地址总线.而寻址到64K的外部内存空间。
P1.0-P1.7(1-8):
P1是一个带有内部上拉电阻的8位双向I/O口。
对EPROM编程和程序验证时,它接收低8位地址。
P1能驱动4个LSTTL输入。
P2.0-P2.7(21-28):
P2是一个带内部上拉电阻的8位双向I/O口。
在访问外部存贮器时,它送出高8位双向地址。
在对EPROM编程和程序验证期间,它接收高位地址。
P2可以驱动4个LSTTL输入。
P3.0-P3.7(10-17):
P3是一个带有内部上拉电阻的8位双向I/O口。
在MCS-51中,这8个引脚还用于专门功能。
这些功能见表1-4。
P3能驱动4个LSTTL输入。
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RxD,串行通信输入。
TxD,串行通信输出。
INTO外部中断o输入。
INT1,外部中断1输入。
T0,计时计数器0输入。
T1,计时计数器I输入。
WR,外部随机存储器的写入信号。
RD,外部随机存储器的读取信号。
3.温度传感器AD590基本知识
AD590产生的电流与绝对温度成正比,它可接收的工作电压为4V-30V,检测的温度范围为-55℃-+150℃,它有非常好的线性输出性能,温度每增加1℃,其电流增加1uA。
AD590温度与电流的关系如下表所示
摄氏温度AD590电流经10KΩ电压
0℃273.2uA2.732V
10℃283.2uA2.832V
20℃293.2uA2.932V
30℃303.2uA3.032V
40℃313.2uA3.132V
50℃323.2uA3.232V
60℃333.2uA3.332V
100℃373.2uA3.732V
AD590引脚图
4.A/DC0809芯片
ADC0809引脚图
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
(2)ADC0809的内部逻辑结构
ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
(3)引脚结构
IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
CBA选择的通道
000IN0
001IN1
010IN2
011IN3
100IN4
101IN5
110IN6
111IN7
数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
(4).ADC0809应用说明
(1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
(2)初始化时,使ST和OE信号全为低电平。
(3)送要转换的哪一通道的地址到A,B,C端口上。
(4)在ST端给出一个至少有100ns宽的正脉冲信号。
(5)是否转换完毕,我们根据EOC信号来判断。
(6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
4.电路原理图
5.系统板上硬件连线要求
(1)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
(2)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
(3)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
(4)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
(5)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
(6)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
(7)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
(8)把“模数转换模块”区域中的IN0端子用导线连接到自制的AD590电路上。
(9)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
6.元器件清单
AT89S51芯片一个
A/D590一个
LED84S
晶振1个(12M)
电解电容(10uF)
电容2个(30p)
滑阻1个(最大阻值10K)
电阻(9K)(10K)各一个
A/D转换器0809
五.软件设计
1.程序设计要求
(1).ADC0809的CLK信号由单片机的P3.3管脚提供
(2).由于AD590的温度变化范围在-55℃-+150℃之间,经过10KΩ之后采样到的电压变化在2.182V-4.232V之间,不超过5V电压所表示的范围,因此参考电压取电源电压VCC,(实测VCC=4.70V)。
由此可计算出经过A/D转换之后的摄氏温度显示的数据为:
如果(D*2350/128)<2732,则显示的温度值为-(2732-(D*2350/128))
如果(D*2350/128)≥2732,则显示的温度值为+((D*2350/128)-2732)
2.程序流程图
C语言源程序
#include
#include
unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsignedchardispbuf[8]={10,10,10,10,10,10,0,0};
unsignedchardispcount;
unsignedchargetdata;
unsignedlongtemp;
unsignedchari;
bitsflag;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
sbitLED1=P3^6;
sbitLED2=P3^7;
sbitSPK=P3^5;
voidmain(void)
{
ST=0;
OE=0;
TMOD=0x12;
TH0=0x216;
TL0=0x216;
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
ST=1;
ST=0;
getdata=148;
while
(1)
{
;
}
}
voidt0(void)interrupt1using0
{
CLK=~CLK;
}
voidt1(void)interrupt3using0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
if(EOC==1)
{
OE=1;
getdata=P0;
OE=0;
temp=(getdata*2350);
temp=temp/128;
if(temp<2732)
{
temp=2732-temp;
sflag=1;
}
else
{
temp=temp-2732;
sflag=0;
}
i=3;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
if(sflag==1)
{
dispbuf[7]=11;
}
else
{
dispbuf[7]=10;
}
dispbuf[3]=0;
dispbuf[4]=0;
dispbuf[5]=0;
dispbuf[6]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
ST=1;
ST=0;
}
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
六.设计总结(心得体会)
此次课程设计历时两周,通过再读课本、查阅相关资料书和相关网站浏览,终于完成了对温度传感器的设计。
经历了这次紧张而又充实的设计我学到了很多知识,从刚开始的朦朦胧胧、对智能仪器不太了解,到现在对其有了初步的了解,自己真是感慨万千。
通过此次设计,我终于明白只有多练习实践,才能将理论和实际结合起来,提高自己的动手能力。
只有将理论与实践紧密地结合起来才能更好地将这门课运用到生产中、社会中。
我现在对“活到老,学到老”这句话,有了进一步的了解。
由于时间比较仓促,此次课程设计存在许多的不足,相信在以后的设计中,我会努力做的更好!
七.参考文献
《单片机原理与接口技术》李朝青北京航空航天大学出版社
《单片机原理与应用》李建忠西安电子科技大学出版社
《智能仪器原理,设计及调试》季建华等华东理工大学出版社
《单片机应用系统设计应用》何立民主编北京航空航天大学出版社
《智能化仪器原理及应用》曹建平西安电子科技大学出版社
《智能仪器原理与设计》赵新民哈尔滨工业大学出版社
《智能仪器原理及应用》赵茂泰电子工业出版社
《现代科学仪器》中国分析测试协会主办
《自动化仪表》中国仪器仪表学会上海工业自动化仪表研究所主办
《仪器仪表学报》中国仪器仪表学会主办
仪器仪表网(http:
/www.china_)
仪器商城网(http:
/)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 智能 温度 测量仪 课程设计