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

下载本文档

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

文档简介

1、信息与计算科学系课程设计报告课程设计报告课 程: 智能测量仪表 题 目: 智能测量仪表 学生姓名: XXXXXX 专业年级: 2009 自动化 指导教师: XXXXXX XXXX 信 息 与 计 算 科 学 系2013年3月25日智能测量仪表本次课程设计中智能温度测量仪表所采用的温度传感器为LM35DZ。其输出电压与摄氏温度成线性比例关系,无需外部校准,在0100温度范围内精度为0.40.75。,输出电压与摄氏温度对应,使用极为方便。灵敏度为10.0mV/,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。是一种得到广泛使用的温度传感器。本次课程设计的主要目的在于让学生把所学到

2、的单片机原理、电子线路设计、传感器技术与原理、过程控制、智能仪器仪表、总线技术、面向对象的程序设计等相关专业课程的内容系统的总结,并能有效的使用到项目研发中来,做到学以致用。课程设计的内容主要分为三个部分,即使用所学编程语言(C或者汇编)完成单片机方面的程序编写、使用VB或VC语言完成PC机人机界面设计(也可以用C+API实现)、按照课程设计规范完成课程设计报告。目录1 课程设计任务和要求311 设计任务322 设计要求32系统硬件设计321 STC12C5A60S2单片机A/D转换简介322 LM35DZ简介723 硬件原理图设计73系统软件设计1031 设计任务1032 程序代码1033

3、系统软件设计调试174系统上位机设计1841 设计任务1842 程序代码1843 系统上位机软件设计调试215系统调试与改善2251 系统调试2252 系统改善226系统设计时常见问题举例与解决办法247总结251. 课程设计任务和要求1.1课程设计任务本次课程设计要求设计出智能化温度测量仪表,要求该测量仪表能够将所测得的温度数据和当前电机设备的运行状况远传给上位机。仪表测量范围为0-100;测量精度为1;可以进行温度整定,比如,温度30,启动压缩机外设;温度20,关闭压缩机外设;要求上位机和下位机都能显示温度值和电机设备的运行状态并且都能独立控制温度数据采集状态和电机设备的运行状态;通讯方式

4、可以采用RS232C或485。上位机要求人机界面在保证简单实用的基础上做的美观。 1.2课程设计要求(1)利用所学专业课相关知识合理的选择器材,使用Protel99se绘制出硬件原理图。(2)使用C语言或者汇编语言完成下位机程序驱动,并且要尽量保证系统的稳定性和可靠性以及实用性。(3)使用VB或VC语言或用C+API( 应用程序接口调用)实现上位机人机界面的设计,要求上位机发送的命令下位机能及时的给予响应,并且上位机能够实时准确的显示下位机所上传数据以及电机设备的运行状态。(4)按照课程设计规范撰写课程设计报告。2. 系统硬件设计2.1 STC12C5A60S2单片机A/D转换简介STC12C

5、5A60S2单片机集成有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

6、_CONTR构成。如图2-1所示。图2-1 STC12C5A单片机内部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,再

7、计算出其他几路A/D转换通道的电压。例如,可在ADC转换通道的第七通道外接一个 1.25V的基准参考电压源,由此求出此时的工作电压Vcc,再计算出其它几路A/D转换通道的电压。2.1.3 与ADC相关的寄存器1、 P1口模拟功能控制寄存器P1ASF(地址为9DH,复位值为00H)P10ASFP11ASFP12ASFP13ASFP14ASFP15ASFP16ASFP17ASF位名称D0D1D2D3D4D5D6D7位号如果要使用相应口的模拟功能,需将P1ASF特殊功能寄存器中的相应位置为1。如,若要使用P1.6的模拟量功能,则需要将P16ASF设置为1。(注意,P1ASF寄存器不能位寻址,可以使用

8、汇编语言指令ORL P1ASF, #40H,也可以使用C语言语句P1ASF |= 0x40;)2、 ADC控制寄存器ADC_CONTR(地址为BCH,复位值为00H)CHS0CHS1CHS2ADC_STARTADC_FLAGSPEED0SPEED1ADC_POWER位名称D0D1D2D3D4D5D6D7位号1)ADC_POWER:ADC电源控制位。0:关闭ADC电源。1:打开ADC电源。 2)SPEED1、SPEED0:ADC转换速度控制位。3)ADC_FLAG:A/D转换结束标志位。A/D转换完成后,ADC_FLAG = 1,要由软件清0。不管A/D转换完成后由该位申请产生中断,还是由软件查

9、询该标志位判断A/D转换是否结束,当A/D转换完成后,ADC_FLAG = 1,一定要软件清0。4)ADC_START:A/D转换启动控制位,ADC_START=1,开始转换;ADC_START=0,停止转换。5)CHS2、CHS1、CHS0:模拟输入通道选择,如表2-1所示。表2-1 模拟通道选择表CHS2CHS1CHS0Analog Channel Select (模拟输入通道选择)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选择

10、 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转换结果存储格式由

11、辅助寄存器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_RES7:0,ADC_RESL1:0) = 1024 Vin / VccADRJ = 0时,取8位结果 ADC_RES7:0 = 256 Vin / VccADRJ

12、 = 1时,取10位结果 (ADC_RES1:0,ADC_RESL7: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.2 LMDZ35简介TS-LM35温度传感器是由LM35C

13、Z/DZ 集成电路温度传感器外加金属套密封组装而成,其输出电压与摄氏温度成线性比例关系,无需外部校准,在-55+150温度范围内精度为0.40.75。,输出电压与摄氏温度对应,使用极为方便。灵敏度为10.0mV/,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。是一种得到广泛使用的温度传感器。LM35技术特性: 温度范围:LM35DZ 0100;LM35CZ -40110 在摄氏温度下直接校准 线性刻度系数: +10.0mV/ 精度:0.5 (在25) 工作电压为430V 功耗:小于60uA 自热效应小于0.08 非线性:0。25 输出阻抗:0.1/1mA 输出电压:+6V-

14、1.0V适合于远程应用 输出电流 10mA:2.3 硬件原理图设计该系统硬件原理图可大体分为这几个模块: 串行通信模块、模拟信号处理模块、4*7LED显示模块以及电源模块等。1、 串行通信模块原理图如下:本通信过程采用RS232方式进行,由于单片机中的UART和电脑串口RS232的区别仅在于电平的不同,电脑串口采用232电平,而单片机UART则采用TTL电平,如果不进行电平转换,单片机跟电脑串口就不能进行直接通信,RS232是UART的一种就意味着通信协议的格式是一样的,只要电平统一了,两者之间就可以直接通信,此处应用了MAX232这一芯片,MAX232对两者之间通信的数据没有任何作用,仅仅是

15、中介而已,而其只是负责将两者之间的电平进行统一,使两者之间没有通信障碍。另外,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、

16、模拟信号处理模块原理图如下:此处,我们处理采集到的模拟量电压信号是采用了LM324集成运算放大器管脚排列图见图2-2。LM324系列由四个独立的带有差动输入的,高增益,内部频率补偿运算放大器,其中专为从单电源供电的电压范围经营。从分裂电源的操作也有可能和低电源电流消耗是独立的电源电压的幅度。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-

17、”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。图2-2 LM324集成运算放大器管脚排列图此模拟量处理模块设计的使用起来比较灵活,图中左边的两路放大器都设计成了电压跟随器的形式,这样就减少了输入信号的损失。我们可以将传感器所测得标准电压信号或者电流信号通过P9或者P10接入(也可以使用杜邦线通过J7或者J8接入信号)LM324的其中一路放大器,然后再经过第二级放大使得处理后的电压信号输出到J9。做此课程设计时我

18、们采用的是LM35DZ温度测量传感器,我们把它的输出信号连接到J8的2脚,由此出输入我们的采集到的信号。我们将上面的一路放大器的输入调至零,然后再经过后一级放大器,将两者之差放大5倍。3、 4*7LED显示模块原理图如下:由图中可以看出,我们将数码管的断码端接到了单片机的P2口,控制端接到了P0口的低四位。图中Q2、Q3、Q4、Q5为开关型三极管此处用作数码管的选通控制。3. 系统软件设计3.1程序代码根据下位机软件设计任务的要求,我们可以把程序代码分为一下几个模块:初始化模块、按键扫描模块、A/D转换数据获取模块、串行口通信模块、运算处理模块、延时模块等。其中初始化模块包括程序当中使用的变量

19、的初始化和串行口通信方式初始化还有A/D转换模块的初始化,按键扫描模块是用于按键控制系统时用来响应按键被按下时的,A/D转换数据获取模块部分可以用查询方式,也可以使用中断的方式实现,串行口通信模块用来接收上位机发送来的命令,以控制和监测系统状态,运算处理模块包括多字节之间的加减乘除运算,延时模块用于程序中一小段时间的等待。汇编语言编写的程序代码如下:20$ INCLUDE (STC12C5A.INC);定义变量千百十个QIAN EQU 60HBAI EQU 61HSHI EQU 62HGEWEI EQU 63HTEMPMH EQU 64H TEMPML EQU 65H COUNT EQU 66

20、H TEMPMMH EQU 67HTEMPMML EQU 68HORG 0000HLJMP MAINORG 0023HLJMP TONGXINORG 002BHLJMP ADC_ISR ORG 0080HMAIN: LCALL MAIN_INIT LCALL UART1_INIT LCALL ADC_INITAAA: LCALL SCANFKEYV LCALL DISPLAY SJMP AAAMAIN_INIT: MOV SP,#70H MOV QIAN,#00H MOV BAI,#00H MOV SHI,#00H MOV GEWEI,#00H MOV COUNT,#00H MOV KEYVA

21、LUE,#00H MOV TEMPMH,#00H MOV TEMPML,#00H MOV TEMPMMH,#00H MOV TEMPMML,#00H RETUART1_INIT: MOV AUXR,#11H MOV BRT,#0FDH MOV SCON,#50H MOV PCON,#00H SETB EASETB ESRETSCANFKEYV: MOV P1,#0FFHMOV A,P1CJNE A,#0FDH,KEYS2LCALL DELAY10MSMOV A,P1CJNE A,#0FDH,KEYS2SETB EADCSJMP NOKEYKEYS2:CJNE A,#0EFH,KEYS3LCAL

22、L DELAY10MSMOV A,P1CJNE A,#0EFH,KEYS3CLR EADCSJMP NOKEYKEYS3:CJNE A,#0DFH,KEYS4LCALL DELAY10MSMOV A,P1CJNE A,#0DFH,KEYS4CLR P0.4CLR EAMOV R7,#04HA21: MOV A,#01HMOV SBUF,AJNB TI,$CLR TIDJNZ R7,A21SETB EASJMP NOKEYKEYS4:CJNE A,#0BFH,NOKEYLCALL DELAY10MSMOV A,P1CJNE A,#0BFH,NOKEYSETB P0.4CLR EA MOV R7,

23、#04HA22: MOV A,#02HMOV SBUF,AJNB TI,$CLR TIDJNZ R7,A22SETB EASJMP NOKEYNOKEY:RETADC_INIT: MOV P1ASF,#01HMOV ADC_RES,#00HMOV ADC_RESL,#00HMOV AUXR1,#04HMOV ADC_CONTR,#088HLCALL DELAY10MS;SETB EADCRETTONGXIN: CLR RIMOV A,SBUFCJNE A,#46H,COMPENDSETB EADCCOMPEND:CJNE A,#47H,STAR1CLR EADCSTAR1: CJNE A,#5

24、1H,STAR2 CLR P0.4STAR2: CJNE A,#03H,END1CLR P0.5END1: CJNE A,#54H,END2SETB P0.4END2: CJNE A,#04,OUTTONGXINSETB P0.5OUTTONGXIN:RETIADC_ISR: PUSH PSWPUSH ACCINC COUNTANL ADC_CONTR,#0EFHMOV TEMPMH,ADC_RESMOV TEMPML,ADC_RESLCLR CMOV A,TEMPMMLADD A,TEMPMLMOV TEMPMML,A MOV A,TEMPMMHADDC A,TEMPMHMOV TEMPMM

25、H,A MOV A,COUNTCJNE A,#20H,OUT0MOV COUNT,#00HMOV R6,TEMPMMHMOV R7,TEMPMMLMOV R4,#00HMOV R5,#20HLCALL DBDIVMOV TEMPMH,5FHMOV TEMPML,5CH MOV TEMPMMH,#00H MOV TEMPMML,#00HLCALL CONVERT MOV R7,#4MOV R0,#60HSENDTEMP: MOV A,R0MOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,SENDTEMPMOV R4,#240A12:DJNZ R4,A11SJMP OUT

26、0A11: LCALL SCANFKEYVLCALL DISPLAYSJMP A12OUT0:ORL ADC_CONTR,#08HPOP ACCPOP PSWRETI CONVERT: MOV R2,TEMPMH MOV R3,TEMPML MOV R6,#03H MOV R7,#0E8H LCALL DBMUL MOV R3,56H MOV R4,57H MOV R5,58H MOV R2,#04H MOV R1,#00H LCALL TDSDIV MOV R6,5BH MOV R7,5AH MOV R4,#03H MOV R5,#0E8H LCALL DBDIV MOV QIAN,5CH

27、MOV R6,5DH MOV R7,5EH MOV R4,#00H MOV R5,#64H LCALL DBDIV MOV BAI,5CH MOV R6,5DH MOV R7,5EH MOV R4,#00H MOV R5,#0AH LCALL DBDIV MOV SHI,5CH MOV GEWEI,5EHOUT: RET DBMUL: MOV A,R3 MOV B,R7 MUL AB XCH A,R7 MOV R5,B MOV B,R2 MUL AB ADD A,R5 MOV R4,A CLR A ADDC A,B MOV R5,A MOV A,R6 MOV B,R3 MUL AB ADD A

28、,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,F0 ADDC A,B MOV R4,A MOV 56H,R7 MOV 57H,R6 MOV 58H,R5 MOV 59H,R4 RET TDSDIV: CLR C MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 TDSDIV_LOOP: CLR C MOV A,R3 SUBB A,R1 MOV R3,A MOV A,R4 SUBB A,R2 MOV R4,A MO

29、V A,R5 SUBB A,#0 MOV R5,A JC TDSDIV_END _INC_SHANG: CLR C MOV A,30H ADDC A,#1 MOV 30H,A MOV A,31H ADDC A,#0 MOV 31H,A MOV A,32H ADDC A,#0 MOV 32H,A LJMP TDSDIV_LOOP TDSDIV_END: CLR C MOV A,R1 ADDC A,R3 MOV A,R2 ADDC A,R4 MOV R3,30H MOV R4,31H MOV 5AH,R3 MOV 5BH,R4 RET DBDIV: CLR C CLR A MOV R2,A MOV

30、 R3,A MOV B,#10HLOOP: MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A MOV R6,A MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A CLR C MOV A,R3 SUBB A,R5 PUSH ACC MOV A,R2 SUBB A,R4 JBC CY,LOOP0 MOV R2,A POP ACC MOV R3,A SETB C SJMP LOOP1LOOP0: POP ACCLOOP1: DJNZ B,LOOP MOV A,R7 RLC A MOV R7,A MOV A,R6 RLC A M

31、OV R6,A MOV A,R2 MOV R4,A MOV A,R3 MOV R5,A MOV 5CH,R7 MOV 5DH,R4 MOV 5EH,R5 MOV 5FH,R6 RETDISPLAY: MOV DPTR, #TABLE MOV A,GEWEI MOVC A,A+DPTR MOV P2,A CLR P0.0 LCALL DELAY10MS SETB P0.0 MOV A,SHI MOVC A,A+DPTR ORL A,#80H MOV P2,A CLR P0.1 LCALL DELAY10MS SETB P0.1 MOV A,BAI MOVC A,A+DPTR MOV P2,A C

32、LR P0.2 LCALL DELAY10MS SETB P0.2 MOV A,QIAN MOVC A,A+DPTR MOV P2,A CLR P0.3 LCALL DELAY10MS SETB P0.3 RET DELAY10MS: MOV R6,#10D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETDELAY100MS: MOV R6,#200D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH, ; 0 1 2 3 4 5 DB 7DH,07H 7FH,6FH,00

33、H,40H, ; 6 7 8 9 + - END 3.3 系统软件设计调试程序代码编写完成以后再开发环境中编译看是否通过,如检查到有错误编译系统就会报错,然后再根据提示进行修改,至没有错误时,再重新编译文件并生成.hex文件。将此文件烧录到STC12C5A60S2单片机中,连接好硬件电路,给系统上电。观察四位共阴极数码管上面是否显示出我们想要显示的温度数据,如不能再修改程序代码,重新编译,重新烧录程序,观察结果此过程重复进行,直到所采集温度数据能在数码管上面稳定显示并且准确度较高。此模块疏通后再加入串行通信部分代码,首先用串口助手测试数据的收发,看单片机与上位机之间能否正常收发数据,如不能修改代码,再编译、烧录、观察,直到数据收发正常为止。最后将按键扫描部分加入,调试方法同上,直

温馨提示

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

评论

0/150

提交评论