测量室内温度

测量室内温度
测量室内温度

专业:2011级电子信息工程

姓名:范开鹏

学号:

时间:2013年10月19日

一、设计任务书

1、设计题目:基于单片机的室内温度测量

2、设计背景:在日常生活中温度与人们息息相关,采用单片机来对温度进行控制已成为当今的主流。现在采用单片机来实现对温度的控制。它的主要组成部分有:AT89S51单片机、温度传感器、键盘与显示电路、温度控制电路。可实时的显示和设定温度,实现对温度自动控制。

3、设计要求:

1)能够完成对温度的测量且达到精度范围;

2)设计方案和结构框图应简单明了;

3)所设计的测温计应当方便使用;

4)温度计抗干扰能力要强;

5)完成此次设计所需费用应当合理;

6)完成本毕业设计电路原理图设计。

7)完成本毕业设计程序流程图和汇编语言源程序设计

8)完成软件和硬件系统的调试,功能指标达到技术要求;

9)完成本毕业设计程序流程图和汇编语言源程序设计

4、元器件选择、系统组成:

CPU选用的是 AT89S51 、温度传感器用的是Dallas公司的DS18B20、显示器选用的LCD液晶屏;主要组成部分有:AT89S51单片机、温度传感器、键盘与显示电路、温度控制电路。

元件清单列表如下:

2.1 电路的总体工作原理

温度控制系统采用AT89S51八位机作为微处理单元进行控制。采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。温度传感器把采集的信号与单片机里的数据相比较来控制温度控制器。

系统框图如下:

2.2 各元件功能、选择原因及系统总体设计思路

运放、数/模转换电路以

CMOS 8位单片机,片内

次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80S51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

此外,AT89S51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。AT89S51单片机综合了微型处理器的基本功能。按照实际需要,同时也考虑到设计成本与整个系统的精巧性,所以在本系统中就选用价格较低、工作稳定的AT89S51单片机作为整个系统的控制器。

5.温度传感器的选择

采用模拟集成温度传感器,集成传感器是采用硅半导体集成工艺而制成的,因此亦

称硅传感器或单片集成温度传感器,它是将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用IC。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。AD590把被测温度转换为电流再通过放大器和A/D转换器,输出数字量送给单片机进行温度控制。

6.采用数字单片智能温度传感器

智能温度传感器(亦称数字温度传感器)是微电子技术、计算机技术和自动测试技术(ATE)的结晶。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU). 智能温度传感器的总线技术也实现了标准化、规范化,所采用的总线主要有单线(1-WIRE)总线、I2C总线、SMBUS总线和SPI总线。温度传感器作为从机可通过专用总线接口与主机进行通信。它们还可以脱离微控制器单独工作,自行构成一个温控仪。DS18B20具有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 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。

由于DS18B20将温度传感器、信号放大调理、A/D转换、接口全部集成于一芯片,与单片机连接简单、方便,与AD590相比是更新一代的温度传感器,所以温度传感器采用DS18B20。

7. 显示器的选择

LED显示器

采用传统的七段数码LED显示器。LED虽然价格便宜,但在现代的许多仪表、各种电子产品中逐渐被LCD所取代。

LCD液晶屏

采用LCD液晶屏进行显示。LCD液晶显示器是一种低压、微功耗的显示器件,只要2~3伏就可以工作,工作电流仅为几微安,是任何显示器无法比拟的,同时可以显示大量信息,除数字外,还可以显示文字、曲线,比传统的数码LED显示器显示的界面有了质的提高。在仪表和低功耗应用系统中得到了广泛的应用。优点为:

1 显示质量高,由于液晶显示器的每一个点收到信号后就一直保持那种色彩和亮度恒定发光,因此液晶显示器的画质高而且不会闪烁。

2 数字式接口,液晶显示器都是数字式的,和单片机的接口简单操作也很方便。

3 功率消耗小,相比而言液晶显示器的主要功耗在内部电极和驱动IC上,因而耗电量比其他器件要小很多。

虽然LCD显示器的价格比数码管要贵,但它的显示效果好,是当今显示器的主流,所以采用LCD 作为显示器。

8. 单片机的选择

采用AT89S51单片机

由于MCS-51系列单片机具有优越的性能、成熟的技术及高可靠性和高性能价格比,MCS系列单片机集成了几乎完善的中央处理单元,处理功能强,中央处理单元中集成了方便灵活的专用寄存器,运行速度更快,可靠性更高,抗干扰能力更强,而且51的优点是价钱便宜,I/O口多,程序空间大。因此,测控系统中,使用51单片机是最理想的选择。

2.2.2该系统的总体设计思路如下:

温度传感器DS18B20把所测得的温度发送到AT89S51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器为点阵字符LCD,1602液晶模块。检测范围5摄氏度到60摄氏度。本系统除了显示温度以外还可以设置一个温度值,对所测温度进行监控,当温度高于或低于设定温度时,开始报警并启动相应程序(温度高于设定温度时,风扇开;当温度低于设定温度时,加热器开)。

2.2.3 测温计系统各部分具体设计

1.单片机最小系统的设计

目前的单片机开发系统只能够仿真单片机,它的应用特点是:

(1)全部I/O口线均可供用户使用。

(2)内部存储器容量有限(只有4KB地址空间)。

(3)应用系统开发具有特殊性

4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出

和输入,P3口具有第二功能为系统提供一些控制信号。时钟电路用于产生MCS-51单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。MCS-51内部有一个用于构成振荡器的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。电路中的微调电容通常选择为30pF左右,该电容的大小会影响到振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体的振荡频率为12MHz。

把EA脚接高电平,单片机访问片内程序存储器,但在PC值超过0FFFH(4Kbyte地址范围)时,将自动转向执行外部程序存储器内的程序。

MCS-51的复位是由外部的复位电路来实现。采用最简单的外部按键复位电路。按键自动复位是通过外部复位电路的来实现的.我们选用时钟频率为12MHz,C1取47μf。

2. 温度传感电路设计

DS18B20的性能特点:

采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)测温范围为-55℃-+125℃,测量分辨率为0.0625℃;内含64位经过激光修正的只读存储器ROM;适配各种单片机或系统机;可分别设定各路温度的上、下限;内含寄生电源。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如下图所示。

图 3.2 DS18B20管脚图

DS18B20有六条控制命令,如下表所示:

DS18B20控制命令

CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM 指令,这样才能对DS18B20进行预定的操作。

3. 温度控制电路的设计

把实际测量的温度和设定的上下限进行比较,来控制P0.0、P0.1、P0.7端口的高低电平。把P0.0、P0.1、P0.7端口分别与三极管的基极连接来控制温度和报警。当测量的温度超过了设定的最高温度,P2.2由高电平变成低电平,就相当于基极输入为“0”,这时三极管导通推动小风扇和控制电路工作,反之,当基极输入为“1”时,三极管不导通,报警器和控制电路都不工作。只要控制单片机的P0.0、P0.1、P0.7口的高低电平就可以控制模拟电路的工作。

4. 键盘电路的设计

用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;液晶显示器上显示每个按键的“0-F”序号。对应的按键的序号排列如下图

示:

按键的序号排列图

键盘输入的信息主要进程是:

1 CPU判断是否有键按下.

2 确定是按下的是哪个键.

3 把此键所代表的信息翻译成计算机可以识别的代码或者其他的特征符号. 5. 显示电路的设计

根据显示内容和方式这里采用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脚:空脚。

键盘中阿拉伯数字0~9是数据输入键,A键是写上限的功能键,B键是写下限的功能键,C键是取消键,其他的键置空。

三、程序流程图的绘制

3.1 系统的主程序设计

主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。流程图如 3.1 所示。系统在初始化完成后就进入温度测量程序,实时的测量当前的温度并通过显示电路在LCD上显示。程序中以中断的方式来重新设定温度的上下限。根据硬件设计完成对温度的控制。按下4*4键盘上的A键可以设定温度上限,按下B键可以设定温度下限。系统软件设计的总体流程图

3.2

CLR EA”来屏蔽所有的中断请求,也可以用开中断指令“SET EA”来允许CPU接收中断请求。在本设计中选用INTO 来作为中断请求源。

INT1—外部中断请求0,由INTO引脚输入,中断请求标志为IE0。

ORG 0000H

LJMP MAIN

ORG 0003H (中断入口地址)

JMP INT0

ORG 0038H (主程序的起始地址)

MAIN: (主程序)

MCS-51响应中断后,就进入中断服务程序,中断程序的基本流程图如下图

图 3.2 中断服务程序基本流程

3.3 温控电路及报警电路的控制

单片机的P0.0、P0.1、P0.7分别与三极管的基极连接来控制控制温度和报警。利用面包板搭了一个PNP9012的偏置电路电路。基极输入为“0”时,这时三极管导通推动报警器和控制电路工作,当基极输入为“1”时,三极管不导通,报警器和控制电路都不工作。只要控制单片机的P0.0、P0.1、P0.7口的高低电平就可以控制模拟电路的工作。

硬件控制电路

3.4 LCD显示电路的控制

把8根数据线和P2口连接,把3根控制线和P2.5、P2.6、P2.7连接。给VCC 端加上+5V的电压,GND端接地。VEE端的驱动电压不要过大,要调节滑动变阻器使VEE在0.7伏以下显示器才能工作。

四、汇编语言部分源程序如下:

DI EQU P3.3

DO EQU P3.4

CLK EQU P3.5

CS EQU P3.6 ; LCD端口定义

D2RS EQU P2.7

D2RW EQU P2.6

D2E EQU P2.5

KEYPORT EQU P1 ; DS18B20端口定义

TEMPER_L EQU 36H

TEMPER_H EQU 35H

TEMPER_NUM EQU 38H

FLAG1 BIT 00H

DQ BIT P2.4

ORG 0000H

LJMP MAIN

ORG 0003H

JMP INT00

ORG 0038H

MAIN: MOV SP,#60H

SETB P2.0

SETB P2.1

SETB P2.2

SETB EA

SETB EX0

SETB P2.0

SEETB P2.1

SETB P2.2

MOV R0,#01H ;清屏并置地址计数器AC为0

LCALL DIS_CMD _WRT

MOV R0,#38H ;8位数据接口,双行显示,5*7点阵 LCALL DIS_CMD _WRT

CALL DIS_CUR_OFF

MOV 42H,#20

MOV 43H,#32

XIAN: LCALL GET_TEMPER

LCALL DISP

LCALL DELAY43MS

MOV A,TEMPER_NUM

SUBB A,42H

JC ZZZL

MOV A,TEMPER_NUM

SUBB A,43H

JNC ZZZ2

SETB P2.0

SETB P2.1

SETB P2.2

JMP XIAN

ZZZL: CLR P2.0

CLR P2.2

JMP XIAN

ZZZ2: CLR P2.0

CLR P2.1

JMP XIAN

INT0: ;扫描键盘程序

LCALL ASK

SAO: CLR 01H

LCALL KEY

JNB 01H,SAO

CJNE A,#10,PAN

LCALL ANSW

RETI

PAN: CJNE A,#12,SAO

RETI ;显示函数部分,可供调用DIS_CUR_OFF: MOV R0,#0CH

LCALL DIS_CMD_WRT

RET

DIS_CUR_ON: MOV R0,#0EH

LCALL DIS_CMD_WRT

RET

CHK_BUSY_FLG: MOV P0,#0FFH

CLR D2RS

NOP

NOP

相关主题
相关文档
最新文档