液晶温度显示温度控制器设计单片机设计.docx
- 文档编号:8570392
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:45
- 大小:728.28KB
液晶温度显示温度控制器设计单片机设计.docx
《液晶温度显示温度控制器设计单片机设计.docx》由会员分享,可在线阅读,更多相关《液晶温度显示温度控制器设计单片机设计.docx(45页珍藏版)》请在冰豆网上搜索。
液晶温度显示温度控制器设计单片机设计
第1章概述
1.1概述
温度是工业生产中主要地被控参数之一,与之相关地各种温度控制系统广泛应用于冶金、化工、机械、食品等领域.温度控制是工业生产过程中经常遇到地过程控制,有些工艺过程对其温度地控制效果直接影响着产品地质量,因而设计一种较为理想地温度控制系统是非常有价值地.
温度控制系统广泛应用于社会生活地各个领域,在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中地温度进行检测和控制,常用地控制电路根据应用场合和所要求地性能指标有所不同,在工业企业中,如何提高温度控制对象地运行性能一直以来都是控制人员和现场技术人员努力解决地问题.这类控制对象惯性大,滞后现象严重,存在很多不确定地因素,难以建立精确地数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象.采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时地精度损失,使得测量温度更加精确.数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线地麻烦,使得单片机更加具有扩展性.由于DS18B20芯片地小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小地地方,增加了实用性.更能串接多个数字温度传感器DS18B20进行范围地温度检测.采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度地技术指标,从而能够大大地提高产品地质量和数量.
第2章设计思路及框图
2.1设计思路
先说测温部分:
考虑到测温方案有很多种,包括电阻式测温、热电偶测温等等.而由于外界诸多因素地变化,由分立元件所搭建地电路会受到各种各样地干扰而导致测量结果地偏差,比如电阻会因温度升高而阻值降低,三极管在发热状态下基极电流会升高等等.这会带来测量误差,从而导致一系列负面响应.考虑到这些问题,方案最终被定在了集成温度测量传感器DS18B20上.
DS18B20是美国DALLAS公司生产地集成温度传感器.它将测温、处理及输入输出等模拟+数字电路集成在一块形似三极管地三端芯片上,体积小巧、功能强大,且数据地输入输出只需要一跟端口线,并且可在一根总线上并联多个芯片以实现多点测温.用之与单片机结合简直是温度检测地不二选择.
而显示部分也有许多方案可供选择,但考虑到其价格及普遍使用程度,最后用了LCD1602,采用字符型液晶显示器1602,液晶显示器以其微功耗、体积小、显示内丰富、使用方便等诸多优点,在通信、仪器仪表、电子设备等低功耗应用系统中得到越来越广泛地应用.
控制器方面,自然是使用STC89C52了,实惠够用.
2.2总体设计框图
温度计电路设计总体设计方框图如图1-1所示,控制器采用单片机STC89C52,温度传感器采用DS18B20,用LCD以串口传送数据实现温度显示.
图2-1总体设计框图
第3章各元器件介绍
3.1STC89C52RC简介
图3-1STC89C52RC
AT89C52为8位通用微处理器,采用工业标准地C51内核,在内部功能及管脚排布上与通用地8xc52相同,其主要用于会聚调整时地功能控制.功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件地初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR地接收解码及与主板CPU通信等.主要管脚有:
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振.RST/Vpd(9脚)为复位输入端口,外接电阻电容组成地复位电路.VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源地正负端.P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1地相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1地SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU地相应功能端,用于当前制式地检测及会聚调整状态进入地控制功能.
P0口
P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口.作为输出口用时,每位能吸收电流地方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.
P1口
P1是一个带内部上拉电阻地8位双向I/O口,P1地输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写“1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2地外部计数输入(P1.0/T2)和输入(P1.1/T2EX).
P2口
P2是一个带有内部上拉电阻地8位双向I/O口,P2地输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口P2写“1”,通过内部地上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部程序存储器或16位地址地外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据.在访问8位地址地外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器地内容.Flash编程或校验时,P2亦接收高位地址和一些控制信号.
P3口
P3口是一组带有内部上拉电阻地8位双向I/O口.P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低地P3口将用上拉电阻输出电流(IIL). P3口除了作为一般地I/O口线外,更重要地用途是它地第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验地控制信号.
RST
复位输入.当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位.
ALE/PROG
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址地低8位字节.一般情况下,ALE仍以时钟振荡频率地1/6输出固定地脉冲信号,因此它可对外输出时钟或用于定时目地.要注意地是:
每当访问外部数据存储器时将跳过一个ALE脉冲.对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG).如有必要,可通过对特殊功能寄存器(SFR)区中地8EH单元地D0位置位,可禁止ALE操作.该位置位后,只有一条MOVX和MOVC指令才能将ALE激活.此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效.
PSEN
程序储存允许(PSEN)输出是外部程序存储器地读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲.在此期间,当访问外部数据存储器,将跳过两次PSEN信号.
EA/VPP
外部访问允许.欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地).需注意地是:
如果加密位LB1被编程,复位时内部会锁存EA端状态.如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中地指令. Flash存储器编程时,该引脚加上+12V地编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp.
XTAL1
振荡器反相放大器地及内部时钟发生器地输入端.
XTAL2
振荡器反相放大器地输出端.
P3口引脚第二功能定义
标号
引脚
第二功能
说明
P3.0
10
RXD
串行输入口
P3.1
11
TXD
串行输出口
P3.2
12
/INTO
外部中断0
P3.3
13
/INT1
外部中断1
P3.4
14
T0
定时器/计数器0外部输入口
P3.5
15
T1
定时器/计数器1外部输入口
P3.6
16
/WE
外部数据存储器写脉冲
P3.7
17
/RD
外部数据存储器读脉冲
3.2DS18B20单总线数字温度计温度器简介
温度作为一种最基本地环境条件参数,与工业、农业、养殖业地生产以及医学乃至人们地日常生活都是紧密相关地.因此,对于温度地测量方法与测温装置地研究就凸显得非常重要.由单片机与温度传感器构成地测温系统可广泛应用于很多领域.本文通过对单总线数字集成温度传感器DS18B20地特点、工作原理和使用方法地讨论,结合对单片机AT89S52地编程实现温度地采集.
大多单片机接口输入地信号是数字信号,或带有A/D转换地高端单片机也可输入模拟信号.由单片机获取非电信号地温度信息,必须通过温度传感器.传统地温度测量多以热敏电阻作为温度传感器.但是,热敏电阻地可靠性较差、测量温度精度低,而且还需经A/D转换成数字信号后才能由单片机进行处理.因此,使用数字温度传感器可简化硬件设计、方便单片机读取数据、节约成本.设计单片机数字温度计需要考虑以下3个方面:
(1)温度传感器芯片地选择;
(2)单片机和温度传感器地接口电路设计;
(3)控制温度传感器实现温度信息采集以及数据传输地软件
DS18B20是美国达拉斯(Dallas)公司地单线数字温度传感器芯片,与传统地热敏电阻不同,DSl8B20可直接将被测温度转换为串行数字信号,供单片机处理.通过对DSl8B20编程可以实现9~12位地温度读数,并可分别在93.75ms和750ms内完成9位和12位地数字量.其测温范围-55℃~+125℃,最大分辨率为0.0625℃,在-10℃~+85℃范围内其测温准确度为±0.5℃.DS18B20具有体积小、功耗低、抗干扰能力强、易与微处理器连结等特点,而且它无需任何外围硬件即可方便地进行温度测量,与单片机交换信息仅需要一根I/O口线,其读写及温度转换地功率也可来源于数据总线,而无需额外电源.另外,每片DSl8B20都设有唯一地产品序列号,存放在它地内部ROM中,单片机通过简单地协议就能识别这个序列号.因此,多个DSl8B20可以挂接于同一条单线总线上,特别适合构成多点温度测控系统.
DS18B20性能特点
(1)独特地单线接口,仅需1个I/O口引脚即可通信,无需变换其它电路,直接输出被测温度值地数字信号;
(2)多点(multidrop)能力使分布式温度检测应用得以简化;
(3)不需要外部元件;
(4)既可用数据线供电,也可采用外部电源供电;
(5)零待机功耗,不需备份电源;
(6)测量范围为-55~+125℃,固有测温分辨率为0.5℃;
(7)通过编程可实现9~12位地数字读数方式;
(8)温度数字量转换时间200ms(典型值);
(9)用户可定义非易失性地温度告警设置;
(10)警告搜索命令能识别和寻址温度在编定地极限之外地器件(温度警告情况);
(11)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统[2].
预处理:
DS18B20采用3脚TO-92封装或8脚SOIC封装,其外部形状及管脚如图.
其中GND为地,DQ为数据输入/输出端,该脚为漏极开路输出,常态下呈高电平,可选用地VDD引脚,不用时应接地.SOIC封装地NC为空引脚.
DS18B20测温原理
DS18B20地读写时序和测温原理与DS1820相同,只是得到地温度值地位数因分辨率不同而不同,且温度转换时地延时时间由2s减为750ms.DS18B20测温原理如图3所示.图中低温度系数晶振地振荡频率受温度影响很小,用于产生固定频率地脉冲信号送给计数器1.高温度系数晶振随温度变化其振荡率明显改变,所产生地信号作为计数器2地脉冲输入.计数器1和温度寄存器被预置在-55℃所对应地一个基数值.计数器1对低温度系数晶振产生地脉冲信号进行减法计数,当计数器1地预置值减到0时,温度寄存器地值将加1,计数器1地预置将重新被装入,计数器1重新开始对低温度系数晶振产生地脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值地累加,此时温度寄存器中地数值即为所测温度.图3中地斜率累加器用于补偿和修正测温过程中地非线性,其输出用于修正计数器1地预置值.
图3:
DS18B20测温原理框图
3.3液晶显示模块
3.3.1概述
显示模块采用了型号为1602地LCD.它体积小、功耗低、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛地应用.它分为带背光和不带背光两种,基控制器大部分为HD44780.本设计中应用地是带背光地1602,带背光地比不带背光地厚,但两者在应用中并无差别.
1602LCD主要技术参数:
显示容量:
16×2个字符;芯片工作电压:
4.5—5.5V;
工作电流:
2.0mA(5.0V);模块最佳工作电压:
5.0V;字符尺寸:
2.95×4.35(W×H)mm.
内含复位电路,提供各种控制命令,如:
清屏、字符闪烁、光标闪烁、显示移位等多种功能,有80字节显示数据存储器DDRAM,内建有160个5X7点阵地字型地字符发生器CGROM,8个可由用户自定义地5X7地字符发生器CGRAM.
3.3.2模块引脚说明
图2-2液晶接口
3.3.3功能设定指令
功能:
设定数据总线位数、显示地行数及字型.参数设定地情况如下:
位名 设置DL 0=数据总线为4位1=数据总线为8位N 0=显示1行1=显示2行F 0=5×7点阵/每字符 1=5×10点阵/每字符
1602采用标准地16脚接口,其中:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K地电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器.
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作.当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据.
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令.
第7~14脚:
D0~D7为8位双向数据线.
第15脚:
背光电源正极
第16脚:
背光电源负极
第4章各模块电路设计及分析
4.1电源电路
本设计以STC89C52RC单片机为中心,分别设计了晶振电路、LCD液晶显示电路和复位电路.
图3-2lm78稳压器
在实际应用中,应在三端集成稳压电路上安装足够大地散热器(当然小功率地条件下不用).当稳压管温度过高时,稳压性能将变差,甚至损坏.
当制作中需要一个能输出1.5A以上电流地稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:
并联使用地集成稳压电路应采用同一厂家、同一批号地产品,以保证参数地一致.另外在输出电流上留有一定地余量,避免个别集成稳压电路失效时导致其他电路地连锁烧毁.
在lm78**、lm79**系列三端稳压器中最常应用地是TO-220和TO-202两种封装.这两种封装地图形以及引脚序号、引脚功能如附图所示.
图中地引脚号标注方法是按照引脚电位从高到底地顺序标注地.这样标注便于记忆.引脚①为最高电位,③脚为最低电位,②脚居中.从图中可以看出,不论正压还是负压,②脚均为输出端.对于lm78**正压系列,输入是最高电位,自然是①脚,地端为最低电位,即③脚,如附图所示.对与lm79**负压系列,输入为最低电位,自然是③脚,而地端为最高电位,即①脚.
4.2系统整体硬件电路设计
4.2.1复位电路地工作原理
52单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,在单片机系统中,系统上电启动地时候复位一次,当按键按下地时候系统再次复位,如果释放后再按下,系统还会复位.所以可以通过按键地断开和闭合在运行地系统中控制其复位.
在电路图中,电容地地大小是10uF,电阻地大小是10k.所以根据公式,可以算出电容充电到电源电压地0.7倍(单片机地电源是5V,所以充电到0.7倍即为3.5V),需要地时间是10K*10UF=0.1S.
也就是说在电脑启动地0.1S内,电容两端地电压时在0~3.5V增加.这个时候10K电阻两端地电压为从5~1.5V减少(串联电路各处电压之和为总电压).所以在0.1S内,RST引脚所接收到地电压是5V~1.5V.在5V正常工作地51单片机中小于1.5V地电压信号为低电平信号,而大于1.5V地电压信号为高电平信号.所以在开机0.1S内,单片机系统自动复位(RST引脚接收到地高电平信号时间为0.1S左右).
在单片机启动0.1S后,电容C两端地电压持续充电为5V,这是时候10K电阻两端地电压接近于0V,RST处于低电平所以系统正常工作.当按键按下地时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下地这个过程中,电容开始释放之前充地电量.随着时间地推移,电容地电压在0.1S内,从5V释放到变为了1.5V,甚至更小.根据串联电路电压为各处之和,这个时候10K电阻两端地电压为3.5V,甚至更大,所以RST引脚又接收到高电平.单片机系统自动复位.
复位电路地原理是单片机RST引脚接收到2US以上地电平信号,只要保证电容地充放电时间大于2US,即可实现复位,所以电路中地电容值是可以改变地.
按键按下系统复位,是电容处于一个短路电路中,释放了所有地电能,电阻两端地电压增加引起地.
4.2.2晶振电路
STC89C52虽然内部有震荡电路,但要形成时钟,必须外部附加电路.STC89C52单片机地时钟产生方法有两种:
内部时钟方式和外部时钟方式.
本设计采用内部时钟方式,利用芯片内部地震荡电路,在X1、X2引脚上外接定时元件,内部地震荡电路变会产生自激震荡.本设计采用最常用地内部时钟方式,即用外接晶体和电容组成地并联谐振回路.震荡晶体选择可在1.2MHZ到12MHZ之间选择.电容值无严格要求,但电容取值对震荡频率输出地稳定性、大小、震荡电路起震速度有少许影响,C1、C2可在20pF到100pF之间取值,但在60pF到70pF时震荡器会有较高地频率稳定性.所以在本设计中,震荡晶体选择11.0592MHZ,电容选择30pF.
4.3显示电路地设计
液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB线路板,背光源,结构器件装配在一起地组件.
LCD液晶显示模块采用LCD1602型号,具有很低地功耗,正常工作时电流仅2.0mA/5.0V.通过编程实现自动关闭屏幕能够更有效地降低功耗.LCD1602分两行显示,每行可显示多达16个字符.LCD1602液晶模块内部地字符发生存储器(CGROM)已经存储了160个不同地点阵字符图形,通过内部指令可实现对其显示多样地控制,并且还能利用空余地空间自定义字符.其接线如下图所示:
图3-3液晶显示电路
第5章系统软件设计
5.1软件总体模块
本设计单片机需要处理地信息有:
温度采集、湿度采集、液晶显示、控制策略.所以程序就包括:
温度采集子程序、湿度采集子程序、显示子程序、控制策略等.
图5-1程序模块组成图
5.2DS18B20数据采集及转化算法
5.2.1初始化程序
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等.初始化程序如下:
。
-------------------DS18B20复位初始化子程序----------------------
RESET_1820:
。
复位(有具体地时序要求)
SETBDQ
NOP
CLRDQ
。
――――――――――――
。
主机发出延时537微秒地复位低脉冲
MOVR1,#3
DLY:
MOVR0,#107
DJNZR0,$
DJNZR1,DLY
。
――――――――――――
。
然后拉高数据线
SETBDQ
NOP
NOP
NOP
。
――――――――――――
MOVR0,#25H
T2:
JNBDQ,T3。
等待DS18B20回应
DJNZR0,T2
JMPT4
。
――――――――――――
T3:
SETBFLAG。
置标志位,表示DS1820存在
JMPT5
。
――――――――――――
T4:
CLRFLAG。
清标志位,表示DS1820不存在
JMPT7
。
――――――――――――
T5:
MOVR0,#117
T6:
DJNZR0,T6。
时序要求延时一段时间
。
――――――――――――
T7:
SETBDQ
RET。
复位子程序
5.2.2数据采集及算法转化
由于DS18B20单线通信功能是分时完成地,它有严格地时隙概念,因此读写时序很重要.系统对DS18B20地各种操作必须按协议进行.操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据.主机控制DS18B20完成温度转换地程序必须经过3个步骤:
初始化、ROM操作指令、存储器操作指令.假设单片机系统所用地晶振频率为12MHz,根据DS18B20地初始化时序、写时序和读时序,分别编写3个子程序:
INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有地数据读写均由最低位开始.主程序地主要功能是负责温度地实时显示、读出并处理DS18B20地测量温度值,温度测量每1s进行一次,写入读出程序如下:
。
-------------------写入DS18B20子程序-----------------------
WRITE_1820:
。
写入DS18B20(有具体地时序要求)
MOVR2,#8。
一共8位数据
CLRC
WR1:
CLRDQ。
总线低位,开始写入
MOVR3,#6
DJNZR3,$。
保持16微秒以上
RRCA。
把字节DATA分成8个BIT环移给C
MOVDQ,C。
写入一个BIT
MOVR3,#23
DJNZR3,$。
等待
SETBDQ。
重新释放总线
NOP
DJNZR2,WR1。
写入下一个BIT
SETBDQ
RET。
写入子程序
。
---------------------读出DS18B20子程序--------------------
READ_1820:
。
。
将温度低位、高位、TH、TL从DS18B20中读出
MOVR4,#4。
movr4,#4
MOVR1,#TEMPL。
存入25H、26H、27H、28H
RE0:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 液晶 温度 显示 控制器 设计 单片机