1、基于AD590的温度自动控制系统设计课程设计报告书 课程名称:传感器原理及应用课程设计题 目:基于AD590与单片机的温度计的系统 的设计系 (院): 电子工程学院测控系 学 期: 2014-2015-1 评语:成绩:签名:日期: 一设计目的1.能较全面的巩固和应用传感器及检测技术课程中所学的基本理论和方法,并初步掌握小型数字系统设计的基本方法2.通过“传感器及检测技术”的课程设计,掌握传感器及检测系统设计的方法和设计原则及相应的硬件调试的方法,进一步了解传感器及检测系统的设计和应用3,培养独立思考,独立准备资料,独立设计及规定功能的数字系统的能力4培养书写综合设计报告的能力二实验设计具体要求
2、:基于集成传感器AD590和单片机的数字温度计设计三总体实现原理,方案设计该数字温度计的设计要求为:1)三位数码管显示,2)温度显示范围:-10100。电路由温度传感器(AD590),电压-电流转换电路,AD转换,CPU,显示模块组成。AD590属于电流输出型传感器,其输出的电流经电压-电流转换电路变为模拟电压信号,通过AD转换变为数字量。此数字量输入CPU,CPU直接控制显示。显示模块由三个LED数码管,总线驱动器和若干阻排组成。硬件连接如下图:【AD590】【电流-电压转换电路】 电压-电流转换电路图中,AD590输出端输出电流,经过10K的电阻,转换为电压值。OP07为一射极跟随器,A=
3、1,用于提高输入阻抗。两个二极管用于隔离干扰。电流-电压转换公式如下:AD590的灵敏度:经过10K电阻后: 具体温度-电压值对应如下表摄氏温度/AD590电流/A经10K电压/V-10263.22.6320273.22.73210283.22.83220293.22.93230303.23.03240313.23.13250323.23.23260333.23.332100373.23.732【AD转换电路】AD转换电路采用模数转换器AD0832,ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,芯片的模拟电压输入在05V之间。其引脚图及说明如下:引脚功能说明:CS_ 片选
4、使能,低电平芯片使能。CH0 模拟输入通道0,或作为IN+/-使用。CH1 模拟输入通道1,或作为IN+/-使用。GND 芯片参考0 电位(地)。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入(复用)输入格式配置位选择通道号CH0CH1CH0CH1差分LL+-LH-+单端HL+HH+ADC0832时序:当CS由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。在第一个时钟期间,DI为高,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选通输入模拟通道,
5、转换开始。转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。ADC0832接着在第4个时钟下降沿输出转换数据。数据输出时先输出最高位(D7D0);输出完转换结果后,又以最低位开始重新输出一遍数据(D7D0),两次发送的最低位共用。当片选CS为高时,内部所有寄存器清0,输出变为高阻态。实验中我们由CH0输入模拟量,DO输出数字量。我们把AD0832的CS、CLK、D0、DI端分别连接在P3.3、P3.2,P3.1,P3.0端,所以AD0832的片选、时钟信号、启动位和配置位均通过置位端口实现。由于是CH0输入模拟信号,所以配置位为10。AD0832为单端输出模式。由于AD是串行输入输出,故前
6、3个脉冲上升沿完成设置,第411个脉冲下降沿后取1位AD转换的结果,在第1118个脉冲下降沿后第二次取AD转换结果,将两次结果进行比对,如果一致,则完成转换,关ADC0832;如果不一致,则重新开始转换。经AD转换后,数字量D与温度值的转换如下所示:【CPU和显示】本次实验采用三位LED数码管进行显示。本实验由于要采集确切温度值,所以选用带小数点的七段LED显示器动态显,数码管为共阴极连接。采用74HC245作为总线驱动器,P0口控制字形,P1.5P1.7口控制三位字位。软件设计:系统程序包括主程序、AD子程序、BCD子程序和显示子程序。(程序见附件)否输入通道控制字将值送入指定寄存器产生时钟
7、脉冲,输出两字节数据使能芯片开始调用显示子程序调用子程序调用BCD子程序初始化 否开始关显示显示缓存区内容送A,查字形表字型码送P0口,字位码送P1口四、传感器选用型号: AD590 集成温度传感器本实验采用的AD590,它只需要一种电源(2.54V)即可实现温度到电流的线性变换,然后在终端使用一只取用电阻,即可实现电流到电压的转换,AD590使用方便,电流型比电压型使用精度更高。AD590的主要特性:AD590是美国模拟器件公司生产的单片集成两端感温电流传感器,是一种已经IC化的温度感测器,它会将温度转换为电流。其规格如下:a、 度每增加1,它会增加1A输出电流b、 可测量范围-55至150
8、c、 供电电压范围+4V至+30VAD590的管脚图及元件符号如下图所示:AD590相当于一个温度控制的恒流源,输出电流大小只与温度有关,且与温度成正比。只需一个精密电阻,就可以将电流(温度)信号转化为电压信号,总的灵敏度系数通过该电阻设定。AD590的温度系数是1A/K,即温度每增加1K,它会增加1A输出电流。其输出电流是以绝对温度零度-273为基准,每增加1,它会增加1A输出电流,因此 -10到100时AD590输出电流为263A到373A。ADC0809的输入电压为0-5V,所以需要电流-电压转换电路。工作电路设计电路分析:1、 AD590的输出电流I=(273+T)A(T为摄氏温度),
9、因此测量的电压V为(273+T)A10K=(2.73+T/100)V。为了将电压测量出来又务须使输出电流I不分流出来,我们使用电压跟随器其输出电压V2等于输入电压V。2、 由于一般电源供应教多器件之后,电源是带杂波的,因此我们使用齐纳二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调整至2.73V3、 接下来我们使用差动放大器其输出Vo为(100K/10K)(V2-V1)=T/10,如果现在为摄氏28,输出电压为2.8V,输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线形比例关系。五,其他各部分单元电路设计六,系统总电路原理图七,心得体会总结: 传感器的应用范围很广,它不
10、仅广泛应用于日常生活中,而且也大量应用于自动化和过程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并同时达到增加使用寿命和降低成本的目的。AD590温度传感器不但实现了温度转换为线性化电量测量,而且精确度高、互换性好、应用简单方便,因此,可把输出的电信号经AD卡转换为数字信号,由计算机采集Vi-t的数据,以发挥其实时和准确的特点。把AD590用于改进一部分物理实验,如空气比热容比的测量、金属比热容的测量及液氮汽化热的测量等,都取得了良好的效果。总之,与水银温度计、铜-康热电偶温度计及半导体热敏电阻温度计相比,AD590具有线性好、测温不需参考
11、点及消除电源波动等优点,因此在常温范围内可以取代它们,广泛的应用于科技和工业领域中。心得体会:有了设计的总体思路后,我们开始着手查找程序,接着进行了实验仿真,和室友一起在宿舍模拟的。仿真出结果后,我们将程序输入单片机。但是在实践过程中遇到的困难是仿真能够出结果,而将程序输入CPU后却得不到结果。事实证明软件仿真和硬件出实际结果之间还有很大的差距,即使程序无逻辑错误,在仿真程序上也能运行,一到硬件实现就出问题。在微机原理课程和实验课上,我们所有的注意力都集中在软件上,对电路板硬件实在了解不多,导致最后发现每一个组的问题都很共性,但是找不出错误所在。最麻烦的事是我们将每一个子程序块分别编译输入单片
12、机,结果都很好,但总体结合起来就出问题 再后来,得知各端口电压不合理,AD转换程序的一个端口定义与硬件连接不同都可能是显示错误的原因。单片机系统的正常工作是众方协调的结果,仅仅是程序无逻辑错误是远远不能达到预期的,每一个端口的定义,甚至是语句之间的延时长短都可能是系统无法工作的原因。在本次课程设计中,我们掌握的知识还很少,钻研精神还不够,只想着能够早点得出结果所以,不能沉下心一点点设计。在本次试验中,我们的独立思考能力,独立准备资料能力得到了大幅度的提高,独立设计设计数字系统功能的能力也大大提升了,这次试验让我的各方面能力都大大提高了,我们以后一定要多多实践,把课本上的知识融会贯通。单片机源程
13、序:程序说明:程序中的NOP可使硬件有反应间隙;;/=; 主程序 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV SP,#60H MOV R4,#100 LOOP: LCALL ADCONV LCALL BCDCON LOOP1: LCALL DISPLAY DJNZ R4,LOOP1 MOV R4,#100 SJMP LOOP;/=; AD子程序;/=ADCONV:ADCS BIT P3.3 ;使能CSADCLK BIT P3.2 ;时钟CLKADDO BIT P3.1 ;数据输出接口ADDI BIT P3.0 ;数据输入接口 SETB ADDI ;初始化通道
14、选择(CH0=10) SETB ADDO SETB ADCLK CLR ADCS ; 拉低CS端,开始AD转换 NOP NOP SETB ADDI NOP NOP SETB ADCLK ;拉高CLK端 NOP NOP CLR ADCLK ;:拉低CLK端,形成下降沿1 SETB ADDI SETB ADCLK ;:拉高CLK端,形成上升沿1 NOP NOP CLR ADCLK ;:拉低CLK端,形成下降沿1 SETB ADDI SETB ADCLK ;拉高CLK端,形成上升沿2 NOP CLR ADCLK ;拉低CLK端,形成下降沿2 NOP NOP CLR ADDI NOP NOP NOP
15、SETB ADCLK ;拉高CLK,形成上升沿3 NOP NOP CLR ADCLK ;拉低CLK,形成下降沿3 SETB ADDI SETB ADCLK MOV R5,#8 CLR AAD1: CLR ADCLK ;拉低CLK端,形成下降沿4,5,6,7,8,9,10,11 NOP NOP MOV C,ADDO NOP RLC A SETB ADCLK ;第一组转换数据 NOP NOP DJNZ R5,AD1 MOV R3,A NOP CLR A CLR C MOV R5,#8AD2: MOV C,ADDO ;第二组AD转换数据 RRC A SETB ADCLK NOP CLR ADCLK
16、;形成下降沿12,13,14,15,16,17,18,19 NOP DJNZ R5,AD2 NOP MOV R4,A MOV B,R3 CJNE A,B,ADCONV ;判断两组数据是否一致?否,则重新转换 SETB ADCS ;关片选 CLR ADCLK ;时钟清零 SETB ADDI ;初始化通道选择 RET;/ADCONV子程序结束/;/=; 数据处理子程序;/=BCDCON: MOV A,R3 MOV B,#137 SUBB A,B JC XIAOYU MOV B,#2 MUL AB MOV B,#100 DIV AB MOV 70H,A ;百位数在A XCH A,B ;余数存A MO
17、V B,#10 DIV AB ;十位数与个位数分开 MOV 71H,A MOV 72H,B RETXIAOYU: MOV 70H,#10 MOV A,#137 MOV B,R3 SUBB A,B MOV B,#2 MUL AB MOV B,#10 DIV AB MOV 71H,A MOV 72H,B RET;/数据处理子程序结束 /;/=; 显示子程序;/=DISPLAY: MOV A, #0FFH MOV P1,A MOV R0,#70H MOV A,R0 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A MOV P1,#11011111B ACALL DELAY
18、MOV A,#0FFH MOV P1,A INC R0 MOV A,R0 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A MOV P1,#10111111B ACALL DELAY MOV A,#0FFH MOV P1,A INC R0 MOV A,R0 MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A MOV P1,#01111111B ACALL DELAY RETTAB1: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,02HDELAY: MOV R7,#02HDELAY1: MOV R6,#0FFHDELAY2: DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END;/程序结束/