智能温度测量仪表课程设计报告.docx

上传人:b****5 文档编号:4253138 上传时间:2022-11-28 格式:DOCX 页数:25 大小:154.15KB
下载 相关 举报
智能温度测量仪表课程设计报告.docx_第1页
第1页 / 共25页
智能温度测量仪表课程设计报告.docx_第2页
第2页 / 共25页
智能温度测量仪表课程设计报告.docx_第3页
第3页 / 共25页
智能温度测量仪表课程设计报告.docx_第4页
第4页 / 共25页
智能温度测量仪表课程设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

智能温度测量仪表课程设计报告.docx

《智能温度测量仪表课程设计报告.docx》由会员分享,可在线阅读,更多相关《智能温度测量仪表课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

智能温度测量仪表课程设计报告.docx

智能温度测量仪表课程设计报告

 

课程设计报告

 

课程:

智能测量仪表

题目:

智能测量仪表

学生姓名:

XXXXXX

专业年级:

2009自动化

指导教师:

XXXXXXXXXX

 

信息与计算科学系

2013年3月25日

智能测量仪表

本次课程设计中智能温度测量仪表所采用的温度传感器为LM35DZ。

其输出电压与摄氏温度成线性比例关系,无需外部校准,在0℃~100℃温度范围内精度为0.4℃~±0.75℃。

,输出电压与摄氏温度对应,使用极为方便。

灵敏度为10.0mV/℃,重复性好,输出阻抗低,电路接口简单和方便,可单电源和正负电源工作。

是一种得到广泛使用的温度传感器。

本次课程设计的主要目的在于让学生把所学到的单片机原理、电子线路设计、传感器技术与原理、过程控制、智能仪器仪表、总线技术、面向对象的程序设计等相关专业课程的内容系统的总结,并能有效的使用到项目研发中来,做到学以致用。

课程设计的内容主要分为三个部分,即使用所学编程语言(C或者汇编)完成单片机方面的程序编写、使用VB或VC语言完成PC机人机界面设计(也可以用C+API实现)、按照课程设计规范完成课程设计报告。

 

1.课程设计任务和要求…………………………………………………………3

1.1设计任务……………………………………………………………………………3

2.2设计要求……………………………………………………………………………3

2.系统硬件设计…………………………………………………………3

2.1STC12C5A60S2单片机A/D转换简介……………………………………………3

2.2LM35DZ简介………………………………………………………………………7

2.3硬件原理图设计……………………………………………………………………7

3.系统软件设计…………………………………………………………10

3.1设计任务…………………………………………………………………………10

3.2程序代码…………………………………………………………………………10

3.3系统软件设计调试………………………………………………………………17

4.系统上位机设计…………………………………………………………18

4.1设计任务…………………………………………………………………………18

4.2程序代码…………………………………………………………………………18

4.3系统上位机软件设计调试………………………………………………………21

5.系统调试与改善…………………………………………………………22

5.1系统调试…………………………………………………………………………22

5.2系统改善…………………………………………………………………………22

6.系统设计时常见问题举例与解决办法……………………………………24

7.总结……………………………………………………………………25

 

1.课程设计任务和要求

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,复位值为00H)

如果要使用相应口的模拟功能,需将P1ASF特殊功能寄存器中的相应位置为‘1’。

如,若要使用P1.6的模拟量功能,则需要将P16ASF设置为1。

(注意,P1ASF寄存器不能位寻址,可以使用汇编语言指令ORLP1ASF,#40H,也可以使用C语言语句P1ASF|=0x40;)

2、ADC控制寄存器ADC_CONTR(地址为BCH,复位值为00H)

CHS0

CHS1

CHS2

ADC_START

ADC_FLAG

SPEED0

SPEED1

ADC_POWER

位名称

D0

D1

D2

D3

D4

D5

D6

D7

位号

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转换完成后由该位申请产生中断,还是由软件查询该标志位判断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模拟通道选择表

CHS2

CHS1

CHS0

AnalogChannelSelect(模拟输入通道选择)

0

0

0

选择P1.0作为A/D输入来用

0

0

1

选择P1.1作为A/D输入来用

0

1

0

选择P1.2作为A/D输入来用

0

1

1

选择P1.3作为A/D输入来用

1

0

0

选择P1.4作为A/D输入来用

1

0

1

选择P1.5作为A/D输入来用

1

1

0

选择P1.6作为A/D输入来用

1

1

1

选择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/Vcc

ADRJ=0时,取8位结果ADC_RES[7:

0]=256×Vin/Vcc

ADRJ=1时,取10位结果(ADC_RES[1:

0],ADC_RESL[7:

0])=1024×Vin/Vcc

Vin为模拟输入通道输入电压,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)

;定义变量千百十个

QIANEQU60H

BAIEQU61H

SHIEQU62H

GEWEIEQU63H

TEMPMHEQU64H

TEMPMLEQU65H

COUNTEQU66H

TEMPMMHEQU67H

TEMPMMLEQU68H

ORG0000H

LJMPMAIN

ORG0023H

LJMPTONGXIN

ORG002BH

LJMPADC_ISR

ORG0080H

MAIN:

LCALLMAIN_INIT

LCALLUART1_INIT

LCALLADC_INIT

AAA:

LCALLSCANFKEYV

LCALLDISPLAY

SJMPAAA

MAIN_INIT:

MOVSP,#70H

MOVQIAN,#00H

MOVBAI,#00H

MOVSHI,#00H

MOVGEWEI,#00H

MOVCOUNT,#00H

MOVKEYVALUE,#00H

MOVTEMPMH,#00H

MOVTEMPML,#00H

MOVTEMPMMH,#00H

MOVTEMPMML,#00H

RET

UART1_INIT:

MOVAUXR,#11H

MOVBRT,#0FDH

MOVSCON,#50H

MOVPCON,#00H

SETBEA

SETBES

RET

SCANFKEYV:

MOVP1,#0FFH

MOVA,P1

CJNEA,#0FDH,KEYS2

LCALLDELAY10MS

MOVA,P1

CJNEA,#0FDH,KEYS2

SETBEADC

SJMPNOKEY

KEYS2:

CJNEA,#0EFH,KEYS3

LCALLDELAY10MS

MOVA,P1

CJNEA,#0EFH,KEYS3

CLREADC

SJMPNOKEY

KEYS3:

CJNEA,#0DFH,KEYS4

LCALLDELAY10MS

MOVA,P1

CJNEA,#0DFH,KEYS4

CLRP0.4

CLREA

MOVR7,#04H

A21:

MOVA,#01H

MOVSBUF,A

JNBTI,$

CLRTI

DJNZR7,A21

SETBEA

SJMPNOKEY

KEYS4:

CJNEA,#0BFH,NOKEY

LCALLDELAY10MS

MOVA,P1

CJNEA,#0BFH,NOKEY

SETBP0.4

CLREA

MOVR7,#04H

A22:

MOVA,#02H

MOVSBUF,A

JNBTI,$

CLRTI

DJNZR7,A22

SETBEA

SJMPNOKEY

NOKEY:

RET

ADC_INIT:

MOVP1ASF,#01H

MOVADC_RES,#00H

MOVADC_RESL,#00H

MOVAUXR1,#04H

MOVADC_CONTR,#088H

LCALLDELAY10MS

;SETBEADC

RET

TONGXIN:

CLRRI

MOVA,SBUF

CJNEA,#46H,COMPEND

SETBEADC

COMPEND:

CJNEA,#47H,STAR1

CLREADC

STAR1:

CJNEA,#51H,STAR2

CLRP0.4

STAR2:

CJNEA,#03H,END1

CLRP0.5

END1:

CJNEA,#54H,END2

SETBP0.4

END2:

CJNEA,#04,OUTTONGXIN

SETBP0.5

OUTTONGXIN:

RETI

ADC_ISR:

PUSHPSW

PUSHACC

INCCOUNT

ANLADC_CONTR,#0EFH

MOVTEMPMH,ADC_RES

MOVTEMPML,ADC_RESL

CLRC

MOVA,TEMPMML

ADDA,TEMPML

MOVTEMPMML,A

MOVA,TEMPMMH

ADDCA,TEMPMH

MOVTEMPMMH,A

MOVA,COUNT

CJNEA,#20H,OUT0

MOVCOUNT,#00H

MOVR6,TEMPMMH

MOVR7,TEMPMML

MOVR4,#00H

MOVR5,#20H

LCALLDBDIV

MOVTEMPMH,5FH

MOVTEMPML,5CH

MOVTEMPMMH,#00H

MOVTEMPMML,#00H

LCALLCONVERT

MOVR7,#4

MOVR0,#60H

SENDTEMP:

MOVA,@R0

MOVSBUF,A

JNBTI,$

CLRTI

INCR0

DJNZR7,SENDTEMP

MOVR4,#240

A12:

DJNZR4,A11

SJMPOUT0

A11:

LCALLSCANFKEYV

LCALLDISPLAY

SJMPA12

OUT0:

ORLADC_CONTR,#08H

POPACC

POPPSW

RETI

CONVERT:

MOVR2,TEMPMH

MOVR3,TEMPML

MOVR6,#03H

MOVR7,#0E8H

LCALLDBMUL

MOVR3,56H

MOVR4,57H

MOVR5,58H

MOVR2,#04H

MOVR1,#00H

LCALLTDSDIV

MOVR6,5BH

MOVR7,5AH

MOVR4,#03H

MOVR5,#0E8H

LCALLDBDIV

MOVQIAN,5CH

MOVR6,5DH

MOVR7,5EH

MOVR4,#00H

MOVR5,#64H

LCALLDBDIV

MOVBAI,5CH

MOVR6,5DH

MOVR7,5EH

MOVR4,#00H

MOVR5,#0AH

LCALLDBDIV

MOVSHI,5CH

MOVGEWEI,5EH

OUT:

RET

DBMUL:

MOVA,R3

MOVB,R7

MULAB

XCHA,R7

MOVR5,B

MOVB,R2

MULAB

ADDA,R5

MOVR4,A

CLRA

ADDCA,B

MOVR5,A

MOVA,R6

MOVB,R3

MULAB

ADDA,R4

XCHA,R6

XCHA,B

ADDCA,R5

MOVR5,A

MOVF0,C

MOVA,R2

MULAB

ADDA,R5

MOVR5,A

CLRA

MOVACC.0,C

MOVC,F0

ADDCA,B

MOVR4,A

MOV56H,R7

MOV57H,R6

MOV58H,R5

MOV59H,R4

RET

TDSDIV:

CLRC

MOV30H,#0

MOV31H,#0

MOV32H,#0

TDSDIV_LOOP:

CLRC

MOVA,R3

SUBBA,R1

MOVR3,A

MOVA,R4

SUBBA,R2

MOVR4,A

MOVA,R5

SUBBA,#0

MOVR5,A

JCTDSDIV_END

_INC_SHANG:

CLRC

M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1