18B20温度采集LCD12864显示.doc
《18B20温度采集LCD12864显示.doc》由会员分享,可在线阅读,更多相关《18B20温度采集LCD12864显示.doc(20页珍藏版)》请在冰豆网上搜索。
![18B20温度采集LCD12864显示.doc](https://file1.bdocx.com/fileroot1/2022-11/2/a961b666-bbed-4260-9aa5-ea0cf7502cd9/a961b666-bbed-4260-9aa5-ea0cf7502cd91.gif)
基于单片机STC89C51的温度显示系统的设计
引言
随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。
目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。
因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。
本课题研究的内容就是以单片机为主要控制元件,通过温度传感器DS18B20实现对温度的测量,并通过LCD12864直接显示所测温度。
1、设计任务
用温度传感器DS18b20检测空气中的温度,STC89C51采集DS18B20的数据并通过LCD12864显示实时温度。
2、系统硬件设计
2.1系统方框图
见图2-1.
图3-1系统方框图
2.2各模块方案的选择
2.2.1温度检测方案选择
方案一:
采用热电偶或热敏电阻作感温元件,但热电偶需冷端补偿,电路设计复杂,热敏电阻虽然精度较高,但需要标准稳定电阻匹配才能使用,而且重复性、可靠性都比较差。
方案二:
采用集成温度传感器DS18B20。
该传感器结构简单,不需外接电路,数据传输采用one-wire。
总线,可用一根I/O数据线即供电又传输数据,在-10℃--+85℃范围内精度为±0.5℃,分辨率较高,重复性和可靠性好。
故采用方案二。
2.2.2显示模块方案的选择
方案一:
采用数码管显示。
数码管亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用受到很大的限制。
方案二:
采用液晶显示。
液晶显示功耗低,轻便防震。
采用液晶显示界面友好清晰,操作方便,显示信息丰富。
故采用方案二
2.3单片机控制系统
单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。
它由单片机、时钟电路、复位电路等组成。
为了简化电路、降低成本、提高可靠性,本系统采用STC89C51作为主控制器,它是一款与MCS51完全兼容且内部自带有4KB的Flash存储器及256KBRAM单元的芯片,因此可以不需另外扩展EEPROM及静态RAM就可以实现所需功能。
单片机最小系统是软硬件系统连接的桥梁。
它包括:
单片机89C51,LCD12864液晶模块,DS18B20温度采集模块。
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
下图中外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选6MHz。
为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。
单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。
复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
图2-2中R9和Cl组成上电复位电路,其值R取为1K,C取为22μF.
图3-2单片机最小系统
2.4温度检测模块
由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
它具有体积小,接口方便,传输距离远等特点。
DS18B20性能特点
2.4.1DS18B20的性能特点:
①采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)。
②测温范围为-55℃-+125℃,测量分辨率为0.0625℃。
③内含64位经过激光修正的只读存储器ROM。
④适配各种单片机或系统机。
⑤用户可分别设定各路温度的上、下限。
⑥内含寄生电源。
2.4.2DS18B20内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。
64位ROM结构图如图2所示。
不同的器件地址序列号不同。
DS18B20的管脚排列如图5-1所示。
图3-4-2DS18B20引脚分布图
2.4.3DS18B20高速暂存器
DS18B20高速暂存器共9个存储单元,如表所示:
序号
寄存器名称
作 用
序号
寄存器名称
0
温度低字节
以16位补码形式存放
4
配置寄存器
1
温度高字节
5、6、7
保留
2
TH/用户字节1
存放温度上限
8
CRC
3
HL/用户字节2
存放温度下限
表3-4-3DS18B20高速暂存器
以12位转化为例说明温度高低字节存放形式及计算:
12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
高8位
S
S
S
S
S
26
25
24
低8位
23
22
21
20
2-1
2-2
2-3
2-4
2.4.4DS18B20控制方法
DS18B20有六条控制命令,如表所示:
指 令
约定代码
操 作 说 明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
表3-4-4DS18B20控制命令
2.4.5DS18B20的通信协议
DS18B20器件要求采用严格的通信协议,以保证数据的完整性。
该协议定义了几种信号类型:
复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。
与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。
发送所有的命令和数据时,都是字节的低位在前,高位在后。
①复位和应答脉冲时隙
每个通信周期起始于微控制器发出的复位脉冲,其后紧跟DS18B20发出的应答脉冲,在写时隙期间,主机向DS18B20器件写入数据,而在读时隙期间,主机读入来自DS18B20的数据。
在每一个时隙,总线只能传输一位数据。
时序图见图
图
3-4-5-1DS18B20复位时序图
②写时隙
当主机将单总线DQ从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60~120us完成,且在每个循环之间至少需要1us的恢复时间。
写0和写1时隙如图所示。
在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。
3-4-5-2DS18B20写时序图
③读时隙
8B20器件仅在主机发出读时隙时,才向主机传输数据。
所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。
所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。
每个读时隙都由主机发起,至少拉低总线1us。
在主机发起读时隙之后,DS18B20器件才开始在总线上发送0或1,若DS18B20发送1,则保持总线为高电平。
若发送为0,则拉低总线当发送0时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。
DS18B20发出的数据,在起始时隙之后保持有效时间为15us。
因而主机在
读时隙期间,必须释放总线。
并且在时隙起始后的15us之内采样总线的状态。
3-4-5-3DS18B20写读序图
2.4.6DS18B20的电路
采用集成温度传感器DS18B20。
该传感器结构简单,不需外接电路,数据传输采用one-wire。
总线,可用一根I/O数据线即供电又传输数据,在-10℃--+85℃范围内精度为±0.5℃,分辨率较高,重复性和可靠性好。
图3-3DS18B20电路
DS18B20为单总线器件,数据和命令在一根线上传输,先向温度传感器写入转换命令,延长一段时间,再发送读命令,将温度值读回单片机,单片机进行数据处理,送显示。
转换关系为:
T=temperature*6.25
T为单片机要显示的温度,temperature为从DS18B20读回的数字量。
图中TEM接单片机P0^6口
2.5液晶显示模块
LCD12864是一款具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
2.5.1模块接口说明
管脚号
名称
LEVEL
功能
1
VSS
0V
电源地
2
VDD
+5V
电源正(3.0V-5.5V)
3
VO
-
对比度(亮度)调整
4
CS
H/L
模组片选端,高电平有效
5
SID
H/L
串行数据输入端
6
CLK
H/L
串行同步时钟:
上升沿时读取SID数据
15
PSB
L
L:
端口方式
17
/RESET
H/L
复位端
19
A
VDD
背光源电压+5V
20
K
VSS
背光源负端0V
图2.5.1液晶模块借口说明
2.5.2并行接口说明
图2.5.2液晶并行借口说明
2.5.2控制器接口信号说明
①RS,R/W的配合选择决定控制界面的四种模式
表2.5.2控制界面模式
②BF忙标志位
③字形产生ROM
④显示数据RAM
⑤字形产生RAM
⑥地址计数器AC
2.5.3指令说明
2.5.3液晶指令说明
2.5.4读写时序图
①数据传输过程
②时序图
③