温度采集设计1.doc_第1页
温度采集设计1.doc_第2页
温度采集设计1.doc_第3页
温度采集设计1.doc_第4页
温度采集设计1.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机汇编程序设计师培训毕业论文-基于单片机的温度采集系统设计指导老师: 贺新民 负 责 人: 王玉芝 班 级: 徐州师范大学培训班 专 业: 数控技术 设 计 者: 韩婷婷 2011 年 12 月3 日目录摘要.2第1章 绪论.31.1课题来源31.2 课题意义3第2章温度采集系统的总体设计思想.42.1温度采集系统总体方案设计42.2硬件各模块的设计42.2.1主机42.3 ADC0809功能简介72.2.2温度检测92.2.3温度显示9第3章硬件电路的设计.103.1 温度检测方法103.2 温度检测电路与实现103.2.1校准电路103.3温度采集与显示设计11第4章 软件设计.134.1主程序134.2定时/计数器0中断服务程序134.3温度采集及模数转换子程序ADCON134.4温度计算子程序CALCU134.5十进制转换子程序METRICCON134.6数码显示子程序DISP134.7流程图144.8温度控制程序设计164.8.1主程序164.8.2定时/计数器0中断服务子程序174.8.3温度采样及模数转换子程序174.8.4温度计算子程序184.8.5十进制转换子程序194.8.6数码管显示子程序19第5章 软硬件调试.21结束语.22致谢.23参考文献.24附录一:硬件实物图.25附录二:硬件电路图.26摘要本论文所要阐述是一个简单的数字温度测量仪的设计的总过程。本设计以热敏电阻经LM324放大电路,将温度信号转换为电压信号,通过AD变换器 ADC0809,将温度信号传送给单片机AT89S52。单片机通过查询方式将ADC0809转换的数字信号进行采集处理,送数码管进行显示。本文详细阐述了硬件每一部分,并给出硬件框图和系统原理图,以及显示温度用的软件程序。我所采用的控制芯片为AT89S52,此芯片功能较为强大,能够满足设计要求。关键词 温度 温度采集 热敏电阻第1章 绪论1.1课题来源随着“信息时代”的到来,作为获取信息的手段传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传感器。其发展速度之快,以及其应用之广,并且还有很大潜力。1.2 课题意义在当今社会科学技术的发展与日俱增,人们是生活水平也是日益提高,为了减少人的工作量,所以是对各种家用电器、电子器件的非人工控制的要求也是越来越高,针对与这种情况,设计出一种集成度比较高的控制体系是必然的。单片机的集成度很高,它具有体积小、质量轻、价格便宜、耗电少等出特点,尤其耗电少,又可使供电电源体积小、质量轻。所以特别适用与“脑型产品”,它的应用已深入到工业、农业、国防、科研、教育以及日常生活用品(家电、玩具)等各种领域。单片机特别适合于把它做到产品的内部取代部分劳师机械、电子零件或元器件。可使产品缩小体积,增强功能,现不同程度的智能化。随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。第2章 温度采集系统的总体设计思想2.1 温度采集系统总体方案设计该系统主要由四大部分组成:温度采集、放大电路,A/D变换电路、温度显示。该系统是以AT89S52单片机为核心进行设计的,这里充分利用了单片机的数据处理及实时检测能力、对温度信号进行实时检测。温度信号是由热敏电阻提供的,通过放大将电流信号转换为电压信号,由AD对模拟电压信号转换成数字信号,然后由单片机对数字信号进行采集、处理,将温度信号送数码管显示。2.2 硬件各模块的设计系统的硬件电路包括主机(AT89S52)、温度检测、温度显示等三大主要部分。图2-1为系统的结构图。图2-1 温度采集系统的结构模块图2.2.1 主机AT89S52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图2-2 AT89S521主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89S52的一些特殊功能口,如下所示:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(定时器/计时器0外部输入)P3.5 T1(定时器/计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入。XTAL2:反向振荡放大器的输出。3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.3 ADC0809功能简介图2-3 ADC08091、主要特性1)8路8位AD转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。2、内部结构ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近。 3、外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图2-1所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入IN0IN7中的一路模拟量输入。通道选择表如表2-1所示。表2-1CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ALE地址锁存允许信号,输入,高电平有效; STARTAD转换启动信号,输入,高电平有效; EOCAD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平); OE数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量;CLK时钟脉冲输入端。要求时钟频率不高于640KHZ;REF(+)、REF(-)基准电压; Vcc电源,单一5V; GND地。 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位,所有内部寄存器清零。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。2 ADC0809应用说明ADC0809内部带有输出锁存器,因此可以直接与AT89S52单片机相连,初始化时,使ST和OE信号全为低电平,送要转换的哪一通道的地址到A,B,C端口上,在START端给出一个至少有100ns宽的正脉冲信号,是否转换完毕,我们根据EOC信号来判断,当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。2.2.2 温度检测这部分包括热敏电阻、放大器和A/D转换器三部分。传感器可采用电流型传感器,其随着温度的变化输出相应的线形变化的电流,该电流通过一定的电阻转换成响应的电压送入变送器。变送器可采用一定放大倍数的放大器,放大倍数以能输出适合单片机处理的信号为宜。然后变送器输出信号进入A/D转换器,因为系统控制精度在0.5 ,所以采用双积分型A/D转换器。2.2.3 温度显示本系统设有4位LED数码显示器,可直接用单片机的I/O口,采用并行口进行数据传送,采用软件进行动态扫描。第3章 硬件电路的设计3.1 温度检测方法温度的检测方法:本设计采用热敏电阻来检测温度的变化。热敏电阻的工作原理:热敏电阻的阻值随温度的升高而成非线性急剧变化,一般具有负的温度系数,其阻值随温度升高而急剧减小。将热敏电阻的阻值变化转换成相应的电压变化,需要一个转换电路,这种转换电路种类较多,典型电路是电桥电路,用热敏电阻与三个普通电阻组成电桥,当温度变化时,电桥的输出电压信号随之变化。由于电桥输出的电压信号幅值较低,需经过放大后才能满足A/D转换器对输入电压的要求,因此采用运算放大器LM324对信号进行放大,电桥与放大电路共同组成测温电路。3.2 温度检测电路与实现温度检测采用图3-1电路图3-1 温度检测电路3.2.1校准电路本电路的校准步骤如下:首先将装置放在0的环境中,调整电路,使得电路输出为0mV(用万用表测试)。然后再将装置放在100环境中,调整电路,使得电路输出为100mV(用万用表测试),校准即可结束。只要温度有变化,温度检测电路输出电压就会发生变化,经过运算放大电路后就立刻得到一个新的电压值,经ADC0809模数转换后得到新的温度数字量,经单片机处理送数码管显示,温度就会连续不段的显示出来。3.3温度采集与显示设计温度检测电路经LM324放大电路,将温度信号转换为电压信号,通过A/D变换器 ADC0809,将温度信号传送给单片机AT89S52。单片机通过查询方式将ADC0809转换的数字信号进行采集处理,送数码管进行显示。如图3-3所示显示电路采用动态扫描,单片机P3口将要显示数字的段码送至数码管进行显示,数码管为共阳极,位码由单片机的P1口进行片选。如图3-2所示:图3-2 显示电路图3-3 ADC0809采集电路第4章 软件设计 本软件系统有1个主程序,5个子程序组成。5个子程序为定时/计数器0中断服务程序、温度采集及模数转换子程序ADCON、温度计算子程序CALCU、十进制转换子程序BTOD及数码管显示子程序DISP。4.1主程序主程序进行系统初始化操作,主要是进行定时/计数器的初始化。4.2定时/计数器0中断服务程序应用定时计数器0中断的目的是进行定时采样,消除数码管温度显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调整。每当定时时间到,调用温度采集机模数转换子程序RD-ADC,得到一个温度样本,并将其转换为数字量,传送给89S52单片机,然后在调用温度计算子程序CALCU,十进制转换子程序BTOD,温度数码显示子程序DISP。4.3温度采集及模数转换子程序ADCON该子程序进行温度采样并将其转换为8位数字量传送给89S52的P3口。采样得到的温度数据存放在片内RAM的20H单元中。4.4温度计算子程序CALCU根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在DATATAB数据表中,由于篇幅关系,本程序只给出0-49的温度数据。一个温度有两个字节组成,前一字节为温度值,后一字节为该温度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比较的方法计算出当前的温度值,并将其存入片内RAM的21H单元。采用查表法计算温度值时为了克服热敏电阻的阻值温度特性曲线的非线性,提高测量精度。4.5十进制转换子程序METRICCON将存放于内部RAM21H单元的当前温度值得二进制数形式转换为十进制数(BCD码)形式,以便输出显示,转换结果存放在片内RAM的32H单元(百位)、31H(十位)、30H单元(个位)。4.6数码显示子程序DISP该子程序利用89S52并行口,将片内RAM的30H、31H、32H单元的BCD码查表转换为七段码后由P3口发出去,将七段值传送给数码管,以十进制形式显示出当前温度值。4.7流程图根据以上分析画出的部分程序设计流程图如图4-1至图4-3所示。开始计数寄存器R1赋初值10TMOD赋初值01HT0工作于定时方式1软启动堆栈指针SP赋初值60HSETB TR0启动T0工作P3口赋初值0FFHTH0赋初值3CH,TL0赋初值B0H,T0定时100msIE赋初值82H,T0允许中断动态停机图4-1 主程序流程图T0中断服务子程序温度采样时间间隔到否T0重装初值调用数码管显示子程序DISP调用十进制转换子程序BTOD调用温度计算子程序CALCU调用温度采用及模数转换子程序RD-ADC中断返回YN图4-2 T0中断服务程序流程图温度采样及模数转换子程序启动A/D转换读取转换数据将转换数据存于片内RAM20H单元转换结束否返回NY图4-3 温度采样及模数转换子程序流程图4.8温度控制程序设计在本设计中,晶体振荡器频率为6MHz,T0定时时间为100ms,T0工作于方式1,则T0的初值为:X=(最大计数值M定时时间t/及其周期Tm)=216 -100ms/2us=15536=3CB0H按以上任务分析设计出的源程序如下:ORG 0000H ;跳转到主程序LJMP MAIN ORG 000BH LJMP T0INT ;跳转到T0中断服务程序;4.8.1主程序ORG 0100HMAIN:MOV R1,#10 ; T0 100马上定时溢出计数寄存器R1赋初值10MOV P3,#0FFHMOV SP,#60HMOV TMOD,#01HMOV TL0,#0B0H;T0赋初值MOV TH0,#3CHMOV IE,#82H;开放T0中断SETB TR0;启动T0SJMP $4.8.2定时/计数器0中断服务子程序ORG 0200HT0INT:DJNZ R1,NEXT;T0溢出10次,即1s进一次采样处理LCALL RD-ADC;调用温度采样及模数转换子程序LCALL CALCU;调用温度计算子程序LCALL BTOD ;调用十进制转换子程序LCALL DISP;调用数码管显示子程序MOV R1,#10;R1重赋值10NEXT:MOV TL0,#0B0H;T0重装初值MOV TH0,#3CHRETI4.8.3温度采样及模数转换子程序RD-ADC:PUSHACCPUSHPSWCLR P2.0;关闭ADC0809的START和ALESETBP2.1;转换结束信号EOC,转换开始后将变为低电平,所以转换开始前置为高电平CLR P2.2;ADC0809的OE置低电平,不允许ADC0809输出转换结果MOVP0,#0FFH;IO口用作输入口接收转换结果前需要先写1SETBP2.0;ADC0809的START和ALE置高电平,开始转换NOPCLR P2.0;关闭转换JNB P2.1,$;没有采集到转换结束信号EOC则在本行等待SETBP2.2;ADC0809的OE置高电平,允许ADC0809输出转换结果MOV A,P0MOV 20H,A;将采集到的转换结果存入20HCLR P2.2;ADC0809的OE置低电平,不允许ADC0809输出转换结果POP PSWPOP ACCRET4.8.4温度计算子程序ORG 0400HCALCU:MOV R2,#01H ;R2为数据表的索引值寄存器MOV DPTR,#DATATAB;温度数据表首地址送DPTRNEXT1:MOV A,R2;索引值送AMOVC A,A+DPTR;查表取出某一温度的数字电压值CJNE A,20H,K1;与当前温度的数字电压值比较DEC R2;等于当前温度的数字电压值,则查表取出该温度值作为当前温度值MOV A,R2MOVC A,A+DPTRLJMP K3K1:JNC K2;大于当前温度的数字电压值,则继续取出下一温度的数字电压进行比较DEC R2;小于当前温度的数字电压值,则查表取出前一个温度值作为当前温度值DEC R2DEC R2MOV A,R2MOVC A,A+DPTRLJMP K3K2:INC R2INC R2LJMP NEXT1K3:MOV 21H,A;将当前温度值存于21H单元RETDATATAB:DB 0,194,1,193,2,192,3,191,4,190 ;温度数据表 DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,137,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,1144.8.5十进制转换子程序ORG 0600HMETRICCON:MOV R3,#00H;将存于21H单元中的当前温度转换为BCD码MOV R4,#00H;百位存于32H单元,十位存于31H单元,个位存于30H单元MOV A,21HCLR CW1:SUBB A,#100JC W2INC R4AJMP W1W2:ADD A,#100CLR CW3:SUBB A,#10JC W4INC R3AJMP W3W4:ADD A,#10MOV 30H,AMOV 31H,R3MOV 32H,R4RET4.8.6数码管显示子程序ORG 0700HDISP:MOV R6,#0FEHMOV R5,#03H;将存于32H单元、31H单元、30H单元中的温度BCD码查表转换为七段码MOV R0,#30HMOV DPTR,#TABLOOP:MOV A,R0MOVC A,A+DPTRMOV P3,AMOV P1,R6LCALL DELAYMOV P3,#0FFHMOV P1,#0FFHMOV A,R6RL AMOV R6,AINC R0DJNZ R5,LOOPRETDELAY: MOV R7,#1 D1: MOV R6,#2 D2:MOVR5,#248DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETTAB: DB 03H,9FH,25H,0DH,99H ;七段码数据表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论