温度采集实验报告.docx
《温度采集实验报告.docx》由会员分享,可在线阅读,更多相关《温度采集实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
温度采集实验报告
课程设计任务书
题目基于AD590的温度测控系统设计
系(部)信息科学与电气工程学院
专业电气工程及其自动化
班级电气092
学生姓名刘玉兴
学号0
月日至月日共周
指导教师(签字)
系主任(签字)
年月日
一、设计内容及要求
在单片机实验台上实现智能温度采集系统的设计。
要求利用温度传感器AD590采集温度信号,并调理放大采集到的电压信号,用ADC0809进行电压转换,实现温度采集,并将采集温度用数码管静态方式显示出来。
设计内容包括:
1)AD590温度采集电路;2)ADC0809接口电路;3)数码管静态方式实时显示温度;4)可按键设置报警上下限。
设计要求:
1)能演示;2)能回答答辩过程中提问的问题;3)完成设计报告。
二、设计原始资料
单片机原理及应用教程范立南2006年1月
单片机原理及应用教程刘瑞新2003年07月
三、设计完成后提交的文件和图表
1.计算说明书部分
1)方案论证报告打印版或手写版
2)程序流程图
3)具体程序
2.图纸部分:
具体电路原理图打印版
四、进程安排
教学内容地点
资料查阅与学习讨论现代电子技术实验室
分散设计现代电子技术实验室
编写报告现代电子技术实验室
成果验收现代电子技术实验室
五、主要参考资料
《电子设计自动化技术基础》马建国、孟宪元编清华大学出版2004年4月
《实用电子系统设计基础》姜威2008年1月
《单片机系统的PROTEUS设计与仿真》张靖武2007年4月
摘要
温度是工业生产和自动控制中最常见的工艺参数之一。
过去温度检测系统设计中,大多采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。
随着半导体技术的高速发展,特别是大规模集成电路设计技术的发展,数字化、微型化、集成化成为了传感器发展的主要方向。
以单片机为核心的控制系统.利用汇编语言程序设计实现整个系统的控制过程。
在软件方面,结合ADC0809并行8位A/D转换器的工作时序,给出80C51单片机与ADC0908并行A/D转换器件的接口电路图,提出基于器件工作时序进行汇编程序设计的基本技巧。
本系统包括温度传感器,数据传输模块,温度显示模块和温度调节驱动电路,其中温度传感器为数字温度传感器AD590,包括了单总线数据输出电路部分。
文中对每个部分功能、实现过程作了详细介绍。
关键词:
单片机、汇编语言、ADC0809、温度传感器AD590
Abstract
Temperatureisthemostcommononeofprocessparametersinautomaticcontrolandindustrialproduction.Inthetraditionaltemperaturemeasurementsystemdesign,oftenusingsimulationtechnologytodesign,andthiswillinevitablyencountererrorcompensation,suchaslead,complexoutsidecircuit,pooranti-jammingandotherissues,andpartofadealwiththemImproperly,couldcausetheentiresystemofthedecline.Withmodernscienceandtechnologyofsemiconductordevelopment,especiallylarge-scaleintegratedcircuitdesigntechnologies,digital,miniaturization,integrationsensorsarebecominganimportantdirectionofdevelopment.
InthecontrolsystemswiththecoreofSCM,assemblylanguageprogrammingisusedtoachievethecontrolofthewholesystem.CombiningwiththeoperationsequenceofADC0809,theinterfacecircuitdiagramsof80C51SCMandADC0809parallelA/Dconvegeralegiven.Thebasicskillsofassemblylanguageprogrammingbasedontheoperationse—queneeofthechipaleputforward.Thissystemincludetemperaturesensoranddatatransmission,themoduledisplaysmoduleandthermoregulationdrivencircuitfromthesensorsintofiguresofthetemperaturesensorsAD590,includingalistofthedataoutputcircuit.Thetextofeverypartofthefunctionsandprocedureatpresent.
Keywords:
single-chip;assemblylanguage;parallelA/Dconversion;ADC0809;TemperaturesensorAD590
第一章系统功能原理及硬件介绍
该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0809转换成单片机能够处理的数字信号,然后送到单片机80C51中进行处理变换,最后将温度值显示在LED显示器上。
系统以80C51单片机为控制核心,加上AD590测温电路、ADC0809模数转换电路、温度数据显示电路以及外围电源等组成。
系统组成框图如图1所示。
80C51
温度显示
电源及复位电路等
ADC0809模数转化
AD590测温电路
超量程报警
图1系统组成框图
80C51单片机介绍
80C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,可提供以下标准功能:
4K字节闪存,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,80C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
图280C51引脚图
引脚功能说明
Vcc:
电源电压GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复位口。
作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,此时P0激活内部的上拉电阻。
P1口:
P1是一个带有内部上拉电阻的8位双向I/O口。
P1的输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。
因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(输入或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器获16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。
对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。
此时,被外部拉低的P3口将用上拉电阻输出电流。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对输出时钟信号或用于定时。
要注意的是:
当访问外部数据存储器时将跳过一个ALE脉冲。
闪存编程期时,该引脚还用于输入编程脉冲。
PSEN:
程序存储允许输出是外部程序存储器的读选通信号,当80C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
EA/VPP:
外部访问允许。
要使CPU仅访问外部程序存储器(地址为0000H---FFFFH),EA端必须保持低电平(接地)。
需注意的是;如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
ADC0809介绍
ADC0809的主要特点
ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
芯片的引脚如图21-1,各引脚功能如下:
IN0~IN7:
八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:
三位地址码输入端。
CLOCK:
外部时钟输入端。
CLOCK输入频率范围在10~1280KHz,典型值为640KHz,此时A/D转换时间为100us。
51单片机ALE直接或分频后可与CLOCK相连。
D0~D7:
数字量输出端。
OE:
A/D转换结果输出允许控制端。
当OE为高电平时,允许A/D转换结果从D0~D7端输出。
图21-1ADC0809引脚
ALE:
地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:
启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC:
A/D转换结束信号输出端。
当A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):
正负基准电压输入端。
基准正电压的典型值为+5V。
ADC0809芯片的工作原理
ADC0809带有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无需特殊的速度或相位匹配。
当CS为高时,数据输D端处于高阻状态,此时I/OCLOCK不起作用。
这种CS控制作用允许在同时使用多片ADC0809时,共用I/OcLOCK,以减少多路(片)A/D使用时的I/O控制端口。
一组通常的控制时序操作图如下:
图4TLC549的工作时序
AD590的介绍
AD590是AD公司利用PN结构正向电流与温度的关系制成的电流输出型两端温度传感器.(热敏器件)
AD590是美国模拟器件公司生产的单片集成两端感温电流源。
它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:
mA/K式中:
—流过器件(AD590)的电流,单位为mA;T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。
电源电压可在4V~6V范围变化,电流变化1mA,相当于温度变化1K。
AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710MW。
5、精度高。
AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±℃。
AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,在8051的各种课本中常看到它,相当常用到。
其规格如下:
温度每增加1℃,它会增加1μA输出电流。
可量测范围-55℃至150℃。
供应电压范围+4V至30V。
AD590的输出电流值说明如下:
其输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Io=(273+25)=298μA。
Vo的值为Io乘上10K,以室温25℃而言,输出值为(10K×298μA)。
量测Vo时,不可分出任何电流,否则量测值会不准。
AD590的输出电流I=(273+T)μA(T为摄氏温度),因此量测的电压V为(273+T)μA×10K=+T/100)V。
为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。
由于一般电源供应较多零件之后,电源是带杂讯的,因此我们使用齐纳二极体作为稳压零件,再利用可变电阻分压,其输出电压V1需调整至。
接下来我们使用差动放大器其输出Vo为(100K/10K)×(V2-V1)=T/10V。
如果现在为摄氏28度,输出电压为。
图5AD590的封装及其基本应用电路
图6AD590内部电路原理图
第二章理论分析
ADC08099温度采集系统采用了AD590采集温度信号,ADC0809转换温度模拟信号,80C51(伟福仿真器仿真)控制ADC0809转换,静态数码管显示,超量程报警。
各模块接线及原理说明
AD590采集温度信号模块
将T-DETECT接到ADC0809的IN-0端口,然后用T-CON控制电路加热与否。
不需要进行其他的控制。
ADC0809A/D(模数)转换模块
ADC0809的三个I/O口分别为EOC、CLK和CS端口,其中CLK为时钟、CS为片选、EOC为转换结束状态信号。
静态数码管显示模块
静态数码管显示电路由四只74LS164、四只共阴极LED数码管组成。
输入只有两个信号,它们是串行数据线DIN和移位信号CLK。
单片机的P3口输出显示段码,经由一片74LS164驱动输出给LED管,由口输出位码,经由74L164输出给LED管。
蜂鸣器超量程报警模块
由AT89C51的I/O口直接输出信号到蜂鸣器的控制信号输入端口C,当输入信号为高点平时,蜂鸣器报警。
最小分度、量程及报警温度的算法
最小分度、量程的算法
ADC0809工作温度为0℃~80℃,温度与电压成正比。
当设定量程与80℃接近时测量所得温度与实际温度才能相符。
ADC0809的A/D输出为00H到FFH,可进行256等分,3能被256整除,以此算法设定最小分度为℃,量程为0℃~℃,比较符合要求。
报警温度的算法
设定最小温度分度为℃,量程为0℃~℃,所以,℃时A/D输出的数字量为2DH,℃时A/D输出的数字量为0BFH。
报警温度为:
℃~℃
第三章各模块电路设计
温度采集系统由温度采集模块、AD转换模块和温度值显示模块三大部分组成。
其中温度采集模块主要用AD590采集温度,并输出一个模拟电压信号,ADC0809接收到模拟信号后,进行A/D转换把模拟信号转换位数字信号,并行输出(一个时钟下降沿输出一次),单片机接到数据后存入累加器A,经过一定的转化,经过74LS164输入到七位数码管中,并静态显示出来,当温度超过设定的报警温度,蜂鸣器报警装置自动报警。
温度测量采集及加热电路模块
T-DETECT接到ADC0809模拟信号输入端IN-0,T-CON接高电平时开始加热。
图7温度测量采集及加热电路原理图
图8参考电压电路
3.2并行A/D(模数)转换模块
图9并行模数转换电路
蜂鸣器超量程报警模块
图11蜂鸣器超量程报警原理电
可按键报警模块
通过I/O口控制按键输入,暂存在寄存器B,并由P2口通过显示灯显示出来。
与暂存在寄存器A中数对比,若A高于B就报警,否则正常显示。
第四章电路与程序设计
开始
温度采集
启动转换
进行标度转换
将十位、个位、小数位分开
处理小数位
各位暂存在单片机
是否达到
报警下限温度
执行报警子程序
查段码,送静态显示管
观察示数
结束
是否达到
报警上限温度
Y
N
Y
N
程序流程图
程序清单
ORG0000H
SJMPMAIN
MAIN:
MOVDPTR,#7FF8H;DPTR指向0通道
MOVX@DPTR,A;启动A/D转换
JNB,$;等待
MOVXA,@DPTR;读数
MOV40H,A;存数
LCALLDNOW;设置下限
LOP0:
LCALLUP;设置上限
LOP1:
LCALLTRAN;模数-数据转换
LCALLDISP;数据的静态显示
LCALLDELAY1s
SJMPMAIN
DNOW:
MOVA,40H
CJNEA,#2DH,LOP2
LOP2:
JNCLOP0;Cy=0,转LOP0
AJMPLOP4;Cy=1,转LOP4
UP:
MOVA,40H
CJNEA,#0BFH,LOP3
LOP3:
JNCLOP4;Cy=0,转LOP4
AJMPLOP1;Cy=1,转LOP1
LOP4:
MOVSP,#60H;给堆栈指针赋初值
ACALLMUSIC
AJMPLOP1
;;;;;;;;;;蜂鸣器输出声子程序;;;;;;;;;;;
MUSIC:
MOV4AH,#34H
LOP6:
MOVR5,#60H;控制音长
MIC:
CPL
ACALLDELAY5ms;控制音调
DJNZR5,MIC
DJNZ4AH,LOP6
RET
;;;;;;;;;;;;;;;;数据转换;;;;;;;;;;;;;;;
TRAN:
MOVR0,#40H
MOVR3,#30H;用来存放小数位
MOVA,@R0;把R0中的数给A
MOVB,#03H
DIVAB;标度变换3格一度
MOVR3,B;存小数
MOVB,#0AH
DIVAB;将标度变换结果的十位与个位分开
MOV@R0,A;将十位数送显示缓冲单元
INCR0;指向缓冲单元下一地址
MOV@R0,B;将个位数送显示缓冲单元
MOVA,R3;标度转换结果小数部分处理
MOVB,#03H
MULAB;实现三格一度
INCR0;指向下一个缓冲单元
MOV@R0,A;将小数送显示缓冲单元
LOP8:
RET;返回
;;;;;;;;;;静态显示子程序-串入并出;;;;;;;
DISP:
MOVDPTR,#TAB;段码表首地址
MOVR0,#40H;R0指向缓存区首地址
MOVA,@R0;将整数位数给A
MOVCA,@A+DPTR;查十位段码
MOV40H,A;将段码结果送入40H
INCR0;R0指向缓存区下一地址
MOVA,@R0;将个位数给A
MOVCA,@A+DPTR;查个位段码
MOV41H,A;将段码结果送入41H
INCR0;R0指向缓存区下一地址
MOVA,@R0;将小数给A
MOVCA,@A+DPTR;查小数段码
MOV42H,A;将段码结果送入42H
;;;;;;;;;;;最后一位清零;;;;;;;;;;;;
MOV43H,#00H
MOVA,43H
MOVR7,#08H
CCC:
JB,AAA
CLR
JMPBBB
AAA:
SETB
BBB:
SETB;CLK下降沿触发
CLR
RLA
DJNZR7,CCC
;;;;;;;;小数位数显示;;;;;;;
MOVA,42H
MOVR7,#08H
CC:
JB,AA
CLR
JMPBB
AA:
SETB
BB:
SETB;CLK下降沿触发
CLR
RLA
DJNZR7,CC;所有位检测后顺序执行
;;;;;;;;;;;;个位数显示;;;;;;;;;;;
ORL41H,#80H;个位数后置小数点
MOVA,41H
MOVR7,#08H
DD:
JB,EE
CLR
JMPFF
EE:
SETB
FF:
SETB;CLK下降沿触发
CLR
RLA
DJNZR7,DD;所有位检测后顺序执行
;;;;十位数数显示;;;;;
MOVA,40H
MOVR7,#08H
GG:
JB,HH
CLR
JMPII
HH:
SETB
II:
SETB;CLK下降沿触发
CLR
RLA
DJNZR7,GG;所有位检测后顺序执行
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
LOP9:
RET
;;;;;;;;;;为使数据显示稳定延时1秒;;;;;;;;
DELAY1s:
MOVR4,#10
DH0:
MOVR5,#100
DH1:
MOVR7,#249
DH2:
NOP
NOP
DJNZR7,DH2
DJNZR5,DH1
DJNZR4,DH0
L0P10:
RET
;;;;;;;;;;;;;;延时子程序;;;;;;;;;;;;;;;;;
DELAY5ms:
MOVR7,#03H
DELAY0:
MOVR6,#40H
DELAY1:
DJNZR6,DELAY1
DJNZR7,DELAY0
LOP11:
RET
END
总结
在这一周的课程设计和实习中,我从中学到了很多很多.
首先,感谢潘老师对我们的的指导和他对我们严格的要求。
起初的两天,我们查阅资料,从书中找,上网查,但是始终没有一个具体方案,经过潘老师第二天下午对我们的指点,我们可以从宏观把握整个实验,大体分成四部分做:
1设计AD590温度采集电路;2ADC0809接口电路;3数码管静态方式实时显示温度;4可按键设置报警上下限。
之后几天,我们逐个问题攻破,把每块都制作出来,然后整合成我们所需要的程序,刚开始还调试不出来,经过我们小组成员的努力,最后我们终于弄好了。
老师还告诉我门,设计要注重软件和硬件的结合,尤其是硬件,有了硬件,软件程序很好写。
这次课程设计让我受益匪浅,也实实在在的学到了不少东西,尤其是那严谨的态度。
参考文献
[1]李全利《单片机原理及接口技术》北京:
高等教育出版