基于AD590的温度自动控制系统设计Word下载.docx
《基于AD590的温度自动控制系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于AD590的温度自动控制系统设计Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
显示模块由三个LED数码管,总线驱动器和若干阻排组成。
硬件连接如下图:
【AD590】
【电流-电压转换电路】
电压-电流转换电路
图中,AD590输出端输出电流,经过10K的电阻,转换为电压值。
OP07为一射极跟随器,A=1,用于提高输入阻抗。
两个二极管用于隔离干扰。
电流-电压转换公式如下:
AD590的灵敏度:
经过10K电阻后:
具体温度-电压值对应如下表
摄氏温度/℃
AD590电流/μA
经10KΩ电压/V
-10
263.2
2.632
273.2
2.732
10
283.2
2.832
20
293.2
2.932
30
303.2
3.032
40
313.2
3.132
50
323.2
3.232
60
333.2
3.332
100
373.2
3.732
【AD转换电路】
AD转换电路采用模数转换器AD0832,ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,芯片的模拟电压输入在0~5V之间。
其引脚图及说明如下:
引脚功能说明:
◆CS_片选使能,低电平芯片使能。
◆CH0模拟输入通道0,或作为IN+/-使用。
◆CH1模拟输入通道1,或作为IN+/-使用。
◆GND芯片参考0电位(地)。
◆DI数据信号输入,选择通道控制。
◆DO数据信号输出,转换数据输出。
◆CLK芯片时钟输入。
◆Vcc/REF电源输入及参考电压输入(复用)
输入格式
配置位
选择通道号
CH0
CH1
差分
L
+
-
H
单端
ADC0832时序:
当CS由高变低时,选中ADC0832。
在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。
在第一个时钟期间,DI为高,表示启动位,紧接着输入两位配置位。
当输入启动位和配置位后,选通输入模拟通道,转换开始。
转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。
ADC0832接着在第4个时钟下降沿输出转换数据。
数据输出时先输出最高位(D7~D0);
输出完转换结果后,又以最低位开始重新输出一遍数据(D7~D0),两次发送的最低位共用。
当片选CS为高时,内部所有寄存器清0,输出变为高阻态。
实验中我们由CH0输入模拟量,DO输出数字量。
我们把AD0832的CS、CLK、D0、DI端分别连接在P3.3、P3.2,P3.1,P3.0端,所以AD0832的片选、时钟信号、启动位和配置位均通过置位端口实现。
由于是CH0输入模拟信号,所以配置位为10。
AD0832为单端输出模式。
由于AD是串行输入输出,故前3个脉冲上升沿完成设置,第4—11个脉冲下降沿后取1位AD转换的结果,在第11—18个脉冲下降沿后第二次取AD转换结果,将两次结果进行比对,如果一致,则完成转换,关ADC0832;
如果不一致,则重新开始转换。
经AD转换后,数字量D与温度值的转换如下所示:
【CPU和显示】
本次实验采用三位LED数码管进行显示。
本实验由于要采集确切温度值,所以选用带小数点的七段LED显示器动态显,数码管为共阴极连接。
采用74HC245作为总线驱动器,P0口控制字形,P1.5~P1.7口控制三位字位。
软件设计:
系统程序包括主程序、AD子程序、BCD子程序和显示子程序。
(程序见附件)
否
输入通道控制字
将值送入指定寄存器
产生时钟脉冲,输出两字节数据
使能芯片
开始
调用显示子程序
调用AD子程序
调用BCD子程序
初始化
关显示
显示缓存区内容送A,查字形表
字型码送P0口,字位码送P1口
四、传感器选用
型号:
AD590集成温度传感器
本实验采用的AD590,它只需要一种电源(2.5—4V)即可实现温度到电流的线性变换,然后在终端使用一只取用电阻,即可实现电流到电压的转换,AD590使用方便,电流型比电压型使用精度更高。
AD590的主要特性:
AD590是美国模拟器件公司生产的单片集成两端感温电流传感器,是一种已经IC化的温度感测器,它会将温度转换为电流。
其规格如下:
a、度每增加1℃,它会增加1μA输出电流
b、可测量范围-55℃至150℃
c、供电电压范围+4V至+30V
AD590的管脚图及元件符号如下图所示:
AD590相当于一个温度控制的恒流源,输出电流大小只与温度有关,且与温度成正比。
只需一个精密电阻,就可以将电流(温度)信号转化为电压信号,总的灵敏度系数通过该电阻设定。
AD590的温度系数是1μA/K,即温度每增加1K,它会增加1μA输出电流。
其输出电流是以绝对温度零度-273℃为基准,每增加1℃,它会增加1μA输出电流,因此-10℃到100℃时AD590输出电流为263μA到373μA。
ADC0809的输入电压为0-5V,所以需要电流-电压转换电路。
工作电路设计
电路分析:
1、AD590的输出电流I=(273+T)μA(T为摄氏温度),因此测量的电压V为(273+T)μA×
10K=(2.73+T/100)V。
为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。
2、由于一般电源供应教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V
3、接下来我们使用差动放大器其输出Vo为(100K/10K)×
(V2-V1)=T/10,如果现在为摄氏28℃,输出电压为2.8V,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线形比例关系。
五,其他各部分单元电路设计
六,系统总电路原理图
七,心得体会
总结:
传感器的应用范围很广,它不仅广泛应用于日常生活中,而且也大量应用于自动化和过程检测控制系统。
温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并同时达到增加使用寿命和降低成本的目的。
AD590温度传感器不但实现了温度转换为线性化电量测量,而且精确度高、互换性好、应用简单方便,因此,可把输出的电信号经AD卡转换为数字信号,由计算机采集Vi-t的数据,以发挥其实时和准确的特点。
把AD590用于改进一部分物理实验,如空气比热容比的测量、金属比热容的测量及液氮汽化热的测量等,都取得了良好的效果。
总之,与水银温度计、铜-康热电偶温度计及半导体热敏电阻温度计相比,AD590具有线性好、测温不需参考点及消除电源波动等优点,因此在常温范围内可以取代它们,广泛的应用于科技和工业领域中。
心得体会:
有了设计的总体思路后,我们开始着手查找程序,接着进行了实验仿真,和室友一起在宿舍模拟的。
仿真出结果后,我们将程序输入单片机。
但是在实践过程中遇到的困难是仿真能够出结果,而将程序输入CPU后却得不到结果。
事实证明软件仿真和硬件出实际结果之间还有很大的差距,即使程序无逻辑错误,在仿真程序上也能运行,一到硬件实现就出问题。
在微机原理课程和实验课上,我们所有的注意力都集中在软件上,对电路板硬件实在了解不多,导致最后发现每一个组的问题都很共性,但是找不出错误所在。
最麻烦的事是我们将每一个子程序块分别编译输入单片机,结果都很好,但总体结合起来就出问题
再后来,得知各端口电压不合理,AD转换程序的一个端口定义与硬件连接不同都可能是显示错误的原因。
单片机系统的正常工作是众方协调的结果,仅仅是程序无逻辑错误是远远不能达到预期的,每一个端口的定义,甚至是语句之间的延时长短都可能是系统无法工作的原因。
在本次课程设计中,我们掌握的知识还很少,钻研精神还不够,只想着能够早点得出结果所以,不能沉下心一点点设计。
在本次试验中,我们的独立思考能力,独立准备资料能力得到了大幅度的提高,独立设计设计数字系统功能的能力也大大提升了,这次试验让我的各方面能力都大大提高了,我们以后一定要多多实践,把课本上的知识融会贯通。
单片机源程序:
程序说明:
程序中的NOP可使硬件有反应间隙;
;
/====================
主程序
ORG0000H
AJMPMAIN
ORG0030H
MAIN:
MOVSP,#60H
MOVR4,#100
LOOP:
LCALLADCONV
LCALLBCDCON
LOOP1:
LCALLDISPLAY
DJNZR4,LOOP1
SJMPLOOP
/========================
AD子程序
ADCONV:
ADCSBITP3.3;
使能CS
ADCLKBITP3.2;
时钟CLK
ADDOBITP3.1;
数据输出接口
ADDIBITP3.0;
数据输入接口
SETBADDI;
初始化通道选择(CH0=10)
SETBADDO
SETBADCLK
CLRADCS;
拉低/CS端,开始AD转换
NOP
SETBADDI
SETBADCLK;
拉高CLK端
CLRADCLK;
:
拉低CLK端,形成下降沿1
拉高CLK端,形成上升沿1
拉高CLK端,形成上升沿2
拉低CLK端,形成下降沿2
CLRADDI
拉高CLK,形成上升沿3
拉低CLK,形成下降沿3
MOVR5,#8
CLRA
AD1:
拉低CLK端,形成下降沿4,5,6,7,8,9,10,11
MOVC,ADDO
RLCA
第一组AD转换数据
DJNZR5,AD1
MOVR3,A
CLRC
AD2:
MOVC,ADDO;
第二组AD转换数据
RRCA
形成下降沿12,13,14,15,16,17,18,19
DJNZR5,AD2
MOVR4,A
MOVB,R3
CJNEA,B,ADCONV;
判断两组数据是否一致?
否,则重新转换
SETBADCS;
关片选
时钟清零
初始化通道选择
RET
//////ADCONV子程序结束//////
数据处理子程序
BCDCON:
MOVA,R3
MOVB,#137
SUBBA,B
JCXIAOYU
MOVB,#2
MULAB
MOVB,#100
DIVAB
MOV70H,A;
百位数在A
XCHA,B;
余数存A
MOVB,#10
DIVAB;
十位数与个位数分开
MOV71H,A
MOV72H,B
XIAOYU:
MOV70H,#10
MOVA,#137
//////////数据处理子程序结束///////////
/============================
显示子程序
DISPLAY:
MOVA,#0FFH
MOVP1,A
MOVR0,#70H
MOVA,@R0
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVP0,A
MOVP1,#11011111B
ACALLDELAY
MOVA,#0FFH
INCR0
MOVP1,#10111111B
MOVP1,#01111111B
TAB1:
DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,02H
DELAY:
MOVR7,#02H
DELAY1:
MOVR6,#0FFH
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
END
///////程序结束////////