数字温度测量及控制系统本科学位论文Word格式文档下载.docx
《数字温度测量及控制系统本科学位论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数字温度测量及控制系统本科学位论文Word格式文档下载.docx(34页珍藏版)》请在冰点文库上搜索。
本章主要对毕业设计的题目进行了分析,根据要实现的功能,综合比较几种设计方法,提出了实现系统功能的最佳方案。
3设计说明
3.1工作原理
在本系统中,温度传感器DS18B20把所测得的温度发送到AT89S51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器为点阵字符LCD,1602液晶模块。
检测范围5摄氏度到60摄氏度。
本系统除了显示温度以外还可以设置一个温度值,对所测温度进行监控,当温度高于或低于设定温度时,开始报警并启动相应程序(温度高于设定温度时,风扇开;
当温度低于设定温度时,加热器开)。
最终实现温度的测量和控制。
3.2具体控制要求
根据设计的要求,要利用温度传感器实时温度。
当温度高于设定的温度时(60℃),打开降温装置进行调整使温度在设定的范围内。
当温度低于设定的温度时(5℃),打开升温装置进行调整使温度在设定的范围内。
同时要求能设定温度。
毕业设计的主要任务是能对温度进行自动的检测和控制。
设计中采用单片机来控制温度,因此要有温度的采集电路,键盘显示电路,温控电路,报警电路等几个部分。
要实现系统的设计要用到的知识点有单片机的原理及其应用,温度传感器的原理和应用,及键盘和显示电路的设计等。
4硬件设计
4.1系统结构图
温度控制系统采用AT89S51八位机作为微处理单元进行控制。
采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。
温度传感器把采集的信号与单片机里
的数据相比较来控制温度控制器。
系统框图如图4.1:
图4.1系统框图
根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89S51为测控系统的核心来完成数据采集、处理、显示、报警等功能。
选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。
4.2单片机的选择
微处理器是本系统的核心,其性能的好坏直接影响系统的稳定,鉴于本系统为实时控制系统,系统运行时需要进行大量的运算,所以单片机采用高效微控制器AT89S51。
他是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
她有以下优点:
●4KB片内在系统可编程Flash程序存储器;
●时钟频率为0~33MHz;
●128字节片内随机读写存储器(RAM);
●32个可编程输入/输出引脚;
●2个16位定时/计数器;
●6个中断源,2级优先级;
●全双工串行通信接口;
●监视定时器;
●2个数据指针。
单片机AT89S51引脚图如图4.2:
图4.2AT89S51单片机引脚图
4.3温度传感器的选择
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;
温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生;
多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为0.5℃。
DS18B20的精度较差为±
0.2℃。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量。
如:
环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的“DS1820”体积更小、更经济、更灵活。
使您可以充分发挥“一线总线”的长处。
DS18B20、DS1822“一线总线”数字化温度传感器。
由于DS18B20将温度传感器、信号放大调理、A/D转换、接口全部集成于一芯片,与单片机连接简单、方便,与AD590相比是更新一代的温度传感器,所以温度传感器采用DS18B20。
4.4显示器的选择
传统的七段数码LED显示器,虽然价格便宜,但在低功耗方面没有LCD好。
故采用点阵字符LCD,系统中我们选择2行16个字的1602液晶模块。
5硬件电路设计
5.1单片机最小系统的设计
目前的单片机开发系统只能够仿真单片机,却没有给用户提供一个通用的最小系统。
由设计的要求,只要做很小集成度的最小系统应用在一些小的控制单元。
其应用特点是:
(1)全部I/O口线均可供用户使用。
(2)内部存储器容量有限(只有4KB地址空间)。
(3)应用系统开发具有特殊性
单片机最小系统电路如图5.1:
图5.1最小系统图
5.2温度传感电路设计
DS18B20的性能特点:
采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)。
在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;
另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻.我们采用的是第一种连接方法,如图5.2所示:
把DS18B20的数据线与单片机的13管脚连接,再加上上拉电阻。
图5.2温度传感电路图
DS18B20有六条控制命令,如表5.1所示:
表5.1DS18B20控制命令
指
令
约定代码
操作
说
明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
5.3温度控制电路和报警电路的设计
图5.3温度控制和报警电路
实际电路如图5.3所示,通过键盘设定温度的上下限。
把实际测量的温度和设定的上下限进行比较,来控制P0.0、P0.1、P0.7端口的高低电平。
把P0.0、P0.1、P0.7端口分别与三极管的基极连接来控制温度和报警。
当测量的温度超过了设定的最高温度,P2.2由高电平变成低电平,就相当于基极输入为“0”,这时三极管导通推动小风扇和控制电路工作,反之,当基极输入为“1”时,三极管不导通,报警器和控制电路都不工作。
只要控制单片机的P0.0、P0.1、P0.7口的高低电平就可以控制模拟电路的工作。
5.4键盘电路的设计
如图六示,用AT89S51的并行口P1接4×
4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;
液晶显示器上显示每个按键的“0-F”序号。
对应的按键的序号排列如5.4所示:
图5.4按键的序号排列图
图5.5中微处理单元是AT89S51单片机,X1和X2接12M的两脚晶振,接两个30PF的起振电容,J1是上拉电阻.单片机的P1口8位引脚与行列式键盘输出脚相连,控制和检测行列式键盘的输入.行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,有键按下时,行线的电平状态将由与此行线相连接的列线的电平决定.键盘输入的信息主要进程是:
1CPU判断是否有键按下.
2确定是按下的是哪个键.
3把此键所代表的信息翻译成计算机可以识别的代码或者其他的特征符号.
图5.5键盘硬件电路图
5.5显示电路的设计
液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB线路板,背光源,结构器件装配在一起的组件。
根据显示内容和方式的不同可以分为,数显LCD,点阵字符LCD,点阵图形LCD在此设计中我们采用点阵字符LCD,这里采用常用的2行16个字的1602液晶模块。
1602采用标准的14脚接口,其中:
第1脚:
VSS为地电源第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚。
与单片机的连接如图5.6所示。
图5.6液晶显示电路图
图5.7系统仿真图
6系统的软件设计
6.1系统的主程序设计
主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。
流程图如6.1所示。
系统在初始化完成后就进入温度测量程序,实时的测量当前的温度并通过显示电路在LCD上显示。
程序中以中断的方式来重新设定温度的上下限。
根据硬件设计完成对温度的控制。
按下4*4键盘上的A键可以设定温度上限,按下B键可以设定温度下限。
Y
N
图6.1系统总体设计流程图
6.2中断程序的设计
MCS-51单片的中断系统有5个中断请求源,用户可以用关中断指令“CLREA”来屏蔽所有的中断请求,也可以用开中断指令“SETEA”来允许CPU接收中断请求。
在本设计中我们选用INTO来作为中断请求源。
INT1—外部中断请求0,由INTO引脚输入,中断请求标志为IE0。
MCS-51响应中断后,就进入中断服务程序,中断程序的基本流程图如图6.2:
图6.2中断服务程序基本流程
6.3源程序清单
DIEQUP3.3
DOEQUP3.4
CLKEQUP3.5
CSEQUP3.6;
LCD端口定义
D2RSEQUP2.7
D2RWEQUP2.6
D2EEQUP2.5
KEYPORTEQUP1;
DS18B20端口定义
TEMPER_LEQU36H
TEMPER_HEQU35H
TEMPER_NUMEQU38H
FLAG1BIT00H
DQBITP2.4
ORG0000H
LJMPMAIN
ORG0003H;
中断入口地址
JMPINT0
ORG0038H;
主程序的起始地址
MAIN:
MOVSP,#60H;
主程序
SETBP2.0
SETBP2.1
SETBP2.2
SETBEA
SETBEX0
SEETBP2.1
MOVR0,#01H;
清屏并置地址计数器AC为0
LCALLDIS_CMD_WRT
MOVR0,#38H;
8位数据接口,双行显示,5*7点阵
CALLDIS_CUR_OFF
MOV42H,#20
MOV43H,#32
XIAN:
LCALLGET_TEMPER
LCALLDISP
LCALLDELAY43MS
MOVA,TEMPER_NUM
SUBBA,42H
JCZZZL
SUBBA,43H
JNCZZZ2
SETBP2.0
SETBP2.1
SETBP2.2
JMPXIAN
ZZZL:
CLRP2.0
CLRP2.2
JMPXIAN
ZZZ2:
CLRP2.1
INT0:
;
扫描键盘程序
LCALLASK
SAO:
CLR01H
LCALLKEY
JNB01H,SAO
CJNEA,#10,PAN
LCALLANSW
RETI
PAN:
CJNEA,#12,SAO
RETI;
显示函数部分,可供调用
DIS_CUR_OFF:
MOVR0,#0CH
LCALLDIS_CMD_WRT
RET
DIS_CUR_ON:
MOVR0,#0EH
LCALLDIS_CMD_WRT
CHK_BUSY_FLG:
MOVP0,#0FFH
CLRD2RS
NOP
LCALLDISPLAY_RD
JBACC.7,CHK_BUSY_FLG
CLEAR_DIS:
MOVR0,#01H
DIS_CMD_WRT:
LCALLCHK_BUSY_FLG
MOVP0,R0
CLRD2RS
NOP
LCALLDISPLAY_WRT
RET
DIS_DATA_WRT:
CJNEA,#10H,DIS_DAT_WRT1
MOVP0,#0C0HCLRD2RS:
NOP
DIS_DAT_WRT1:
MOVP0,R0
SETBD2RS
LCALLDISPLAY_WRT
DISPLAY_WRT:
CLRD2RW
SETBD2E
CLRD2E
DISPLAY_RD:
SETBD2RW
MOVA,P0
DIS_DATA_RD:
MOVP0,#0FFH
LCALLDISPLAY_RD
RET;
键盘程序,出口:
A为按键值01H:
0无键按下1有键按下
KEY:
MOVKEYPORT,#0FH
MOVA,KEYPOR
CJNEA,#0FH,KEYDOWN
MOVA,#0FFH
RET
KEYDOWN:
MOVA,KEYPORT
CJNEA,#0FH,KEYDOWN_YES
KEYDOWN_YES:
MOVB,A
MOVKEYPORT,#0F0H
MOVA,KEYPORT
ORLA,B
PUSH30H
MOV30H,A
MOVR3,#10H
MOVDPTR,#KEYVALUE
NEXT_KEY:
MOVA,R3
MOVCA,@a+dptr
CJNEA,30h,NEXTKEYVALUE
DECR3
POP30H
WAITKEY_F:
MOVKEYPORT,#0FH
MOVA,KEYPORT
CJNEA,#0FH,WAITKEY_F
MOVA,R3
SETB01H
NEXTKEYVALUE:
DJNZR3,NEXT_KEY
WAITKEY_FREE:
MOVKEYPORT,#0FH
CJNEA,#0FH,WAITKEY_FREE
KEYVALUE:
DB0FFH,7EH,7DH,7BH,77H,0BEH,0BDH
0BBH,0B7H,0DEH,0DDH,0DBH
0D7H,0EEH,0EDH,0EBH,0E7H
DELAY43MS:
PUSHA
PUSHA
MOVA,R2
MOVR3,#43
DELAY:
MOVR2,#0FAH
LOOP:
NOP;
内层循环为1MS
DJNZR2,LOOP
DJNZR3,DELAY
POPA
MOVR2,A
MOVR3,A
RET;
确认是否修改温度设定
ASK:
LCALLDIS_CMD_WRT
MOV40H,#0
ZDZ:
MOVDPTR,#LINE
MOVA,40H
MOVCA,@A+DPTR
MOVR0,A
LCALLDIS_DATA_WRT
INC40H
CJNEA,#00H,ZDZ
RET
LINE:
DB"
AREYOUSURE
CHANGET(Y/N)?
"
00H
ANSW:
MOVR6,42H
MOVR7,43H
MOVR0,#44H
CALLDIS_DATA_WRT
MOVR0,#6FH
MOVR0,#77H
MOVR0,#6EH
MOVR0,#3AH
CLR00H
JMPSAO1
GAI:
MOVR0,#0FEH
MOVR0,#55H
MOVR0,#70H
SAO1:
JNB01H,SAO1
MOVR1,A
MOVB,#10
DIVAB
JZNEXT2
MOVA,A1
CJNEA,#11,XU
JB00H,DOWN
MOV42H,40H
CPL00H
JMPGAI
DOWN:
MOV43H,40H
XU:
CJNEA,#12,SAO1
MOV42H,R6
MOV43H,R7
NEXT2:
MOVA,R1
ADDA,#30H
MOVR0,A
MOVA,R1
XCH