智能温度测量仪表课程设计报告_第1页
智能温度测量仪表课程设计报告_第2页
智能温度测量仪表课程设计报告_第3页
智能温度测量仪表课程设计报告_第4页
智能温度测量仪表课程设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

.PAGE.....课程设计报告课程:智能测量仪表题目:智能测量仪表学生__XXXXXX专业年级:2009自动化指导XXXXXXXXXX信息与计算科学系20XX3月25日智能测量仪表本次课程设计中智能温度测量仪表所采用的温度传感器为LM35DZ。其输出电压与摄氏温度成线性比例关系,无需外部校准,在0℃~100℃温度范围内精度为0.4℃~±0.75℃。,输出电压与摄氏温度对应,使用极为方便。灵敏度为10.0mV/℃,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。是一种得到广泛使用的温度传感器。本次课程设计的主要目的在于让学生把所学到的单片机原理、电子线路设计、传感器技术与原理、过程控制、智能仪器仪表、总线技术、面向对象的程序设计等相关专业课程的内容系统的总结,并能有效的使用到项目研发中来,做到学以致用。课程设计的内容主要分为三个部分,即使用所学编程语言〔C或者汇编完成单片机方面的程序编写、使用VB或VC语言完成PC机人机界面设计〔也可以用C+API实现、按照课程设计规范完成课程设计报告。目录1.课程设计任务和要求…………31.1设计任务……………32.2设计要求……………32.系统硬件设计…………32.1STC12C5A60S2单片机A/D转换简介……………32.2LM35DZ简介………………………72.3硬件原理图设计……………………73.系统软件设计…………103.1设计任务…………103.2程序代码…………103.3系统软件设计调试………………174.系统上位机设计…………184.1设计任务…………184.2程序代码…………184.3系统上位机软件设计调试………215.系统调试与改善…………225.1系统调试…………225.2系统改善…………226.系统设计时常见问题举例与解决办法……247.总结……………………251.课程设计任务和要求1.1课程设计任务本次课程设计要求设计出智能化温度测量仪表,要求该测量仪表能够将所测得的温度数据和当前电机设备的运行状况远传给上位机。仪表测量范围为0-100℃;测量精度为±1℃;可以进行温度整定,比如,温度≥30℃,启动压缩机外设;温度≤20℃,关闭压缩机外设;要求上位机和下位机都能显示温度值和电机设备的运行状态并且都能独立控制温度数据采集状态和电机设备的运行状态;通讯方式可以采用RS232C或485。上位机要求人机界面在保证简单实用的基础上做的美观。1.2课程设计要求〔1利用所学专业课相关知识合理的选择器材,使用Protel99se绘制出硬件原理图。〔2使用C语言或者汇编语言完成下位机程序驱动,并且要尽量保证系统的稳定性和可靠性以及实用性。〔3使用VB或VC语言或用C+API〔应用程序接口调用实现上位机人机界面的设计,要求上位机发送的命令下位机能及时的给予响应,并且上位机能够实时准确的显示下位机所上传数据以及电机设备的运行状态。〔4按照课程设计规范撰写课程设计报告。2.系统硬件设计2.1STC12C5A60S2单片机A/D转换简介STC12C5A60S2单片机集成有8路10位高速模数转换器〔ADC,速度可达到250KHz〔25万次/秒,可做温度检测、压力检测、电池电压检测、按键扫描、频谱检测等。STC12C5A60S2单片机片内集成8通道10位模数转换器〔ADC。ADC输入通道与P1口复用,上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。2.1.1模数转换器的结构图STC12C5A60S2单片机的模数转换器由多路选择开关、比较器、逐次比较寄存器、10位ADC、转换结果寄存器〔ADC_RES和ADC_RESL以及ADC控制寄存器ADC_CONTR构成。如图2-1所示。图2-1STC12C5A单片机内部A/D转换结构图2.1.2模数转换器的参考电压STC12C5A60S2单片机A/D转换模块的参考电压源是输入工作电压Vcc,所以一般不用外接参考电压源。如三端稳压电路7805的输出电压是5V,但实际电压可能是4.88V到4.96V,如果用户需要的精度比较高,可在应用产品出厂前将实际测出的工作电压值记录在单片机内部的EEPROM里面,以供程序校正使用。如果Vcc不稳定〔例如电池供电的系统中,电池电压常常在5.3V-4.2V之间漂移,则需要在8路A/D转换的一个通道外接一个稳定的参考电压源,来计算出此时的工作电压Vcc,再计算出其他几路A/D转换通道的电压。例如,可在ADC转换通道的第七通道外接一个1.25V的基准参考电压源,由此求出此时的工作电压Vcc,再计算出其它几路A/D转换通道的电压。2.1.3与ADC相关的寄存器1、P1口模拟功能控制寄存器P1ASF〔地址为9DH,复位值为00HP10ASFP10ASFP11ASFP12ASFP13ASFP14ASFP15ASFP16ASFP17ASF位名称D0D1D2D3D4D5D6D7位号如果要使用相应口的模拟功能,需将P1ASF特殊功能寄存器中的相应位置为‘1’。如,若要使用P1.6的模拟量功能,则需要将P16ASF设置为1。〔注意,P1ASF寄存器不能位寻址,可以使用汇编语言指令ORLP1ASF,#40H,也可以使用C语言语句P1ASF|=0x40;2、ADC控制寄存器ADC_CONTR〔地址为BCH,复位值为00HCHS0CHS0CHS1CHS2ADC_STARTADC_FLAGSPEED0SPEED1ADC_POWER位名称D0D1D2D3D4D5D6D7位号1ADC_POWER:ADC电源控制位。0:关闭ADC电源。1:打开ADC电源。2SPEED1、SPEED0:ADC转换速度控制位。3ADC_FLAG:A/D转换结束标志位。A/D转换完成后,ADC_FLAG=1,要由软件清0。不管A/D转换完成后由该位申请产生中断,还是由软件查询该标志位判断A/D转换是否结束,当A/D转换完成后,ADC_FLAG=1,一定要软件清0。4ADC_START:A/D转换启动控制位,ADC_START=1,开始转换;ADC_START=0,停止转换。5CHS2、CHS1、CHS0:模拟输入通道选择,如表2-1所示。CHS2CHS2CHS1CHS0AnalogChannelSelect<模拟输入通道选择>000选择P1.0作为A/D输入来用001选择P1.1作为A/D输入来用010选择P1.2作为A/D输入来用011选择P1.3作为A/D输入来用100选择P1.4作为A/D输入来用101选择P1.5作为A/D输入来用110选择P1.6作为A/D输入来用111选择P1.7作为A/D输入来用程序中需要注意的事项:由于是2套时钟,所以,设置ADC_CONTR控制寄存器后,要加4个空操作延时才可以正确读到ADC_CONTR寄存器的值,原因是设置ADC_CONTR控制寄存器的语句执行后,要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR控制寄存器。3、A/D转换结果寄存器ADC_RES、ADC_RESL特殊功能寄存器ADC_RES〔地址为BDH,复位值为00H和ADC_RESL〔地址为BEH,复位值为00H用于保存A/D转换结果。A/D转换结果存储格式由辅助寄存器AUXR1〔地址为A2H,复位值为00H中的ADRJ控制,ADRJ是AUXR1中的D2位。〔1当ADRJ=0时,10位A/D转换结果的高8位放在ADC_RES寄存器,低2位放在ADC_RESL寄存器。存储格式如下:〔2当ADRJ=1时,10位A/D转换结果的最高2位放在ADC_RES寄存器的低2位,低8位放在ADC_RESL寄存器。存储格式如下:模/数转换结果计算公式如下:ADRJ=0时,取10位结果<ADC_RES[7:0],ADC_RESL[1:0]>=1024×Vin/VccADRJ=0时,取8位结果ADC_RES[7:0]=256×Vin/VccADRJ=1时,取10位结果<ADC_RES[1:0],ADC_RESL[7:0]>=1024×Vin/VccVin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。4、与A/D转换中断有关的寄存器中断允许控制寄存器IE中的EADC位〔D5位用于开放ADC中断,EA位〔D7位用于开放CPU中断;中断优先级寄存器IP中的PADC位〔D5位和IPH中的PADCH位〔D5位用于设置A/D中断的优先级。在中断服务程序中,要使用软件将A/D中断标志位ADC_FLAG〔也是A/D转换结束标志位清0。2.2LMDZ35简介TS-LM35温度传感器是由LM35CZ/DZ集成电路温度传感器外加金属套密封组装而成,其输出电压与摄氏温度成线性比例关系,无需外部校准,在-55~+150℃温度范围内精度为0.4℃~±0.75℃。,输出电压与摄氏温度对应,使用极为方便。灵敏度为10.0mV/℃,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。是一种得到广泛使用的温度传感器。LM35技术特性:⑴温度范围:LM35DZ0℃~100℃;LM35CZ-40℃~110℃⑵在摄氏温度下直接校准⑶线性刻度系数:+10.0mV/℃⑷精度:0.5℃<在25℃>⑸工作电压为4~30V⑹功耗:小于60uA⑺自热效应小于0.08℃⑻非线性:±0。25℃⑼输出阻抗:0.1Ω/1mA⑽输出电压:+6V~-1.0V适合于远程应用⑾输出电流10mA:2.3硬件原理图设计该系统硬件原理图可大体分为这几个模块:串行通信模块、模拟信号处理模块、4*7LED显示模块以及电源模块等。1、串行通信模块原理图如下:本通信过程采用RS232方式进行,由于单片机中的UART和电脑串口RS232的区别仅在于电平的不同,电脑串口采用232电平,而单片机UART则采用TTL电平,如果不进行电平转换,单片机跟电脑串口就不能进行直接通信,RS232是UART的一种就意味着通信协议的格式是一样的,只要电平统一了,两者之间就可以直接通信,此处应用了MAX232这一芯片,MAX232对两者之间通信的数据没有任何作用,仅仅是中介而已,而其只是负责将两者之间的电平进行统一,使两者之间没有通信障碍。另外,MAX232芯片采用单+5V电源供电,仅需几个外接电容即可完成从TTL到RS232电平的转换,共两路。其中13脚〔R1IN、12脚〔R1OUT、11脚〔T1IN、14脚〔T1OUT为第一数据通道。8脚〔R2IN、9脚〔R2OUT、10脚〔T2IN、7脚〔T2OUT为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。2、模拟信号处理模块原理图如下:此处,我们处理采集到的模拟量电压信号是采用了LM324集成运算放大器管脚排列图见图2-2。LM324系列由四个独立的带有差动输入的,高增益,内部频率补偿运算放大器,其中专为从单电源供电的电压范围经营。从分裂电源的操作也有可能和低电源电流消耗是独立的电源电压的幅度。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中"+"、"-"为两个信号输入端,"V+"、"V-"为正、负电源端,"Vo"为输出端。两个信号输入端中,Vi-〔-为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+〔+为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。图2-2LM324集成运算放大器管脚排列图此模拟量处理模块设计的使用起来比较灵活,图中左边的两路放大器都设计成了电压跟随器的形式,这样就减少了输入信号的损失。我们可以将传感器所测得标准电压信号或者电流信号通过P9或者P10接入〔也可以使用杜邦线通过J7或者J8接入信号LM324的其中一路放大器,然后再经过第二级放大使得处理后的电压信号输出到J9。做此课程设计时我们采用的是LM35DZ温度测量传感器,我们把它的输出信号连接到J8的2脚,由此出输入我们的采集到的信号。我们将上面的一路放大器的输入调至零,然后再经过后一级放大器,将两者之差放大5倍。3、4*7LED显示模块原理图如下:由图中可以看出,我们将数码管的断码端接到了单片机的P2口,控制端接到了P0口的低四位。图中Q2、Q3、Q4、Q5为开关型三极管此处用作数码管的选通控制。3.系统软件设计3.1程序代码根据下位机软件设计任务的要求,我们可以把程序代码分为一下几个模块:初始化模块、按键扫描模块、A/D转换数据获取模块、串行口通信模块、运算处理模块、延时模块等。其中初始化模块包括程序当中使用的变量的初始化和串行口通信方式初始化还有A/D转换模块的初始化,按键扫描模块是用于按键控制系统时用来响应按键被按下时的,A/D转换数据获取模块部分可以用查询方式,也可以使用中断的方式实现,串行口通信模块用来接收上位机发送来的命令,以控制和监测系统状态,运算处理模块包括多字节之间的加减乘除运算,延时模块用于程序中一小段时间的等待。汇编语言编写的程序代码如下:..$INCLUDE<STC12C5A.INC>;定义变量千百十个QIANEQU60HBAIEQU61HSHIEQU62HGEWEIEQU63HTEMPMHEQU64HTEMPMLEQU65HCOUNTEQU66H TEMPMMHEQU67HTEMPMMLEQU68HORG0000HLJMPMAINORG0023HLJMPTONGXINORG002BHLJMPADC_ISRORG0080HMAIN:LCALLMAIN_INIT LCALLUART1_INIT LCALLADC_INITAAA:LCALLSCANFKEYV LCALLDISPLAY SJMPAAAMAIN_INIT:MOVSP,#70H MOVQIAN,#00H MOVBAI,#00H MOVSHI,#00H MOVGEWEI,#00H MOVCOUNT,#00H MOVKEYVALUE,#00H MOVTEMPMH,#00H MOVTEMPML,#00H MOVTEMPMMH,#00H MOVTEMPMML,#00H RETUART1_INIT:MOVAUXR,#11HMOVBRT,#0FDH MOVSCON,#50HMOVPCON,#00H SETBEA SETBES RETSCANFKEYV:MOVP1,#0FFH MOVA,P1 CJNEA,#0FDH,KEYS2 LCALLDELAY10MS MOVA,P1 CJNEA,#0FDH,KEYS2 SETBEADC SJMPNOKEYKEYS2: CJNEA,#0EFH,KEYS3 LCALLDELAY10MS MOVA,P1 CJNEA,#0EFH,KEYS3 CLREADC SJMPNOKEYKEYS3: CJNEA,#0DFH,KEYS4 LCALLDELAY10MS MOVA,P1 CJNEA,#0DFH,KEYS4 CLRP0.4 CLREA MOVR7,#04HA21:MOVA,#01H MOVSBUF,A JNBTI,$ CLRTI DJNZR7,A21 SETBEA SJMPNOKEYKEYS4: CJNEA,#0BFH,NOKEY LCALLDELAY10MS MOVA,P1 CJNEA,#0BFH,NOKEY SETBP0.4 CLREA MOVR7,#04HA22:MOVA,#02H MOVSBUF,A JNBTI,$ CLRTI DJNZR7,A22 SETBEA SJMPNOKEYNOKEY: RETADC_INIT:MOVP1ASF,#01H MOVADC_RES,#00H MOVADC_RESL,#00H MOVAUXR1,#04H MOVADC_CONTR,#088H LCALLDELAY10MS ;SETBEADC RETTONGXIN:CLRRI MOVA,SBUF CJNEA,#46H,COMPEND SETBEADCCOMPEND: CJNEA,#47H,STAR1 CLREADCSTAR1:CJNEA,#51H,STAR2CLRP0.4STAR2:CJNEA,#03H,END1 CLRP0.5END1:CJNEA,#54H,END2 SETBP0.4END2:CJNEA,#04,OUTTONGXIN SETBP0.5OUTTONGXIN: RETIADC_ISR:PUSHPSW PUSHACC INCCOUNT ANLADC_CONTR,#0EFH MOVTEMPMH,ADC_RES MOVTEMPML,ADC_RESL CLRC MOVA,TEMPMML ADDA,TEMPML MOVTEMPMML,AMOVA,TEMPMMH ADDCA,TEMPMH MOVTEMPMMH,AMOVA,COUNT CJNEA,#20H,OUT0 MOVCOUNT,#00H MOVR6,TEMPMMH MOVR7,TEMPMML MOVR4,#00H MOVR5,#20H LCALLDBDIV MOVTEMPMH,5FH MOVTEMPML,5CHMOVTEMPMMH,#00HMOVTEMPMML,#00H LCALLCONVERTMOVR7,#4 MOVR0,#60HSENDTEMP:MOVA,R0 MOVSBUF,A JNBTI,$ CLRTI INCR0 DJNZR7,SENDTEMP MOVR4,#240A12: DJNZR4,A11 SJMPOUT0A11:LCALLSCANFKEYV LCALLDISPLAY SJMPA12OUT0: ORLADC_CONTR,#08H POPACC POPPSW RETI CONVERT:MOVR2,TEMPMH MOVR3,TEMPMLMOVR6,#03HMOVR7,#0E8HLCALLDBMULMOVR3,56HMOVR4,57HMOVR5,58HMOVR2,#04HMOVR1,#00HLCALLTDSDIVMOVR6,5BHMOVR7,5AHMOVR4,#03HMOVR5,#0E8HLCALLDBDIVMOVQIAN,5CHMOVR6,5DHMOVR7,5EHMOVR4,#00HMOVR5,#64HLCALLDBDIVMOVBAI,5CHMOVR6,5DHMOVR7,5EHMOVR4,#00HMOVR5,#0AHLCALLDBDIVMOVSHI,5CHMOVGEWEI,5EH OUT:RETDBMUL:MOVA,R3MOVB,R7MULABXCHA,R7MOVR5,BMOVB,R2MULABADDA,R5MOVR4,ACLRAADDCA,BMOVR5,AMOVA,R6MOVB,R3MULABADDA,R4XCHA,R6XCHA,BADDCA,R5MOVR5,AMOVF0,CMOVA,R2MULABADDA,R5MOVR5,ACLRAMOVACC.0,CMOVC,F0ADDCA,BMOVR4,AMOV56H,R7MOV57H,R6MOV58H,R5MOV59H,R4RETTDSDIV:CLRC MOV30H,#0MOV31H,#0MOV32H,#0TDSDIV_LOOP:CLRCMOVA,R3SUBBA,R1MOVR3,AMOVA,R4SUBBA,R2MOVR4,AMOVA,R5SUBBA,#0MOVR5,AJCTDSDIV_END_INC_SHANG:CLRCMOVA,30HADDCA,#1MOV30H,AMOVA,31HADDCA,#0MOV31H,AMOVA,32HADDCA,#0MOV32H,ALJMPTDSDIV_LOOPTDSDIV_END:CLRCMOVA,R1ADDCA,R3MOVA,R2ADDCA,R4MOVR3,30HMOVR4,31HMOV5AH,R3MOV5BH,R4RETDBDIV: CLRCCLRAMOVR2,AMOVR3,AMOVB,#10HLOOP: MOVA,R7RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,ACLRCMOVA,R3SUBBA,R5PUSHACCMOVA,R2SUBBA,R4CCY,LOOP0MOVR2,APOPACCMOVR3,ASETBCSJMPLOOP1LOOP0:POPACCLOOP1:DJNZB,LOOPMOVA,R7RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R2MOVR4,AMOVA,R3MOVR5,AMOV5CH,R7MOV5DH,R4MOV5EH,R5MOV5FH,R6RETDISPLAY:MOVDPTR,#TABLEMOVA,GEWEIMOVCA,A+DPTRMOVP2,ACLRP0.0LCALLDELAY10MSSETBP0.0MOVA,SHIMOVCA,A+DPTRORLA,#80HMOVP2,ACLRP0.1LCALLDELAY10MSSETBP0.1MOVA,BAIMOVCA,A+DPTRMOVP2,ACLRP0.2LCALLDELAY10MSSETBP0.2MOVA,QIANMOVCA,A+DPTRMOVP2,ACLRP0.3LCALLDELAY10MSSETBP0.3RETDELAY10MS:MOVR6,#10D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETDELAY100MS:MOVR6,#200D2:MOVR7,#248DJNZR7,$DJNZR6,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,;012345DB7DH,07H7FH,6FH,00H,40H, ;6789+-END..3.3系统软件设计调试程序代码编写完成以后再开发环境中编译看是否通过,如检查到有错误编译系统就会报错,然后再根据提示进行修改,至没有错误时,再重新编译文件并生成.hex文件。将此文件烧录到STC12C5A60S2单片机中,连接好硬件电路,给系统上电。观察四位共阴极数码管上面是否显示出我们想要显示的温度数据,如不能再修改程序代码,

温馨提示

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

评论

0/150

提交评论