1、 DS18B20; 显示电路1 绪 论1.1 课题研究的背景诸多领域的自动控制技术水平和自动化程度得到大幅度的提高。计算机的飞速发展和广泛的普及,使生产过程中温度控制系统的应用与研发得到了一个前所未有的黄金时期。随着大规模及超大规模集成电路的问世,计算机发展朝着更加智能、更加快速和小型化的方向前进。单片机的工业及日常应用达到了空前的高度。在温度采集、工业控制等方面更是如此。其根本原因就是单片机体积小、低功耗、低价、可靠的特点决定的。自从1980年以后。计算机测控技术发展日新月异,成为各大高校乃至国家发展的重点研究方向。温度控制是又是计算机测控技术中的重要分支。现代工业的生产朝着自动化,智能化的
2、方向发展,温度测量控制是重要的一环,为实现工业生产的指标提供有效的参考。为提升社会效益、经济效益提高生产效率节能环保起到了重要的保障。工业现场的温度检测以及控制是微机测控的重要学科,微机测控的迅猛发展正是为了适应工控现场和日常生活需要,在工业控制及生产中,将微机技术,软件技术以及自动控制原理融入其中,并且设计出所需要的计算机控制系统。特别是以51单片机为核心的温度测量与控制系统的研究与应用在一定程度上提高了生活生产中对温度的控制水平。本次毕业设计就是基于单片机STC89C52温度控制系统的研究设计,通过本次毕业设计实践,使我认识到了单片机测控系统的广泛用途和使用方法,以及其工作的原理。如今工控
3、及日常生活中的温度采集控制技术取得了日新月异的成就。随着现代工业生产以及电子技术的迅猛发展,特别是大规模集成电路与高性能微处理器的相继问世。1.2 本课题所研究的内容由于工业控制领域对于温度采集控制的需要,其重要性也日益凸显。本设计采用单片机STC89C52设计了温度实时测量及控制系统。单片机STC89C52 能够根据温度传感器DS18B20 所采集的温度在数码管上实时显示。能够对温度实施有效的监控及控制。所有温度数据均通过数码管显示出来。系统可以根据时钟存储相关的数据。本次的毕业设计不仅仅使我们在计算机测控方面加深了学习,锻炼了实际动手能力。也使我对单片机实现微机测控有了一定的了解,也学习到
4、了对于单片机编程的一些方法和心得体会。掌握了51单片机应用电路和硬件以及软件的设计思路、方法。2 系统硬件设计2.1设计方案:2.1.1方案列举方案一:实验硬件电路框图如图2-1所示:图2-1 方案1硬件电路框图此中方案直接选用模拟电路,该方法采用的是传统的一位式模拟控制回路,如上图所示。此系统采用模拟电路设计,其主要过程是通过电位器给出模拟温度值,经过过信号放大后与预先设定的数值进行比较。再通过信号放大之后执行型赢得报警操作。系统所得结果的精度不高并且调节动作频繁,系统误差大、不稳定,但是优点是电路简单、易于实现。而且系统受环境影响大,不能用数码显示,不能用键盘设定并且操作者与系统之间信息交
5、流教难。方案二:硬件电路如图2-2所示: 图2-2 方案2硬件电路框图可以采用以51单片机为核心进行整个系统的管理、协调。该方案有隔离、A/D转换、测量和控制等部分。比第一种方案有设计灵活、精度高等特点。单片机软件编程灵活、自由度大,可用软件编程实现控制STC89C52RC 单片机高速/低功耗/超强抗干扰等优点。用户应用程序空间为8K字节,片上集成512字节RAM。单片机系统可以用数码管显示外界温度的实际值,能用键盘输入设定值。本方案选用STC89C52RC芯片,可使系统整体结构更为简单。2.1.2方案论证:方案一的硬件电路所是以传统的模拟方式进行控制,虽然比较容易实现 ,但是精度不高,而且当
6、温度改变时与方案二相比不灵活,调整比较难。而方案二采用以51单片机为控制系统的核心元器件,在此系统中,使用单片机具有很多优点,理想的控制效果,对于显示模块、报警模块的实现更为简单。杜宇报警限定值的设置也更方便。系统的精度也是模拟电路所不能比拟的。所以设计采用方案二。2.2 STC89C52RC单片机简介STC89C52是宏晶公司出品的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,在传统的51系列单片机上进行改造使其具有许多新功能。在系统可编程Flash和灵巧的8位CPU使STC89C52为许多计算机控制系统提供高度
7、灵活、行之有效的解决方案。 STC89C52单片机具有512字节RAM, 8k字节Flash, P0P3一共32 位输入输出端口,看门狗定时器功能, MAX810复位电路,3个16 位定时器/计数器,内置4KB EEPROM,4个外部中断,一个7向量4级中断结构,全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。第一种是空闲模式,RAM、定时计数器、串口和中断可以正常工作,但是CPU停止工作。第二种是掉电模式,RAM可以进行保存内容,但是单片机一切工作停止,直到下一个中断或硬件复位为止。单片机最高运作的频率为35MHz,可以选择6T/12T两种模式。
8、2.3 STC89C52RC芯片的特性主要特性如下:1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.2. 单片机工作电压:5.5V3.3V(5V单片机本设计采用)3. 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512字节RAM6. 32个通用I/O端口,电路复位后P1/P2/P3/P4是准双向口(弱上拉),P0口是漏极开路输出,P0口作为总线扩展时不加上拉电阻,作为I/O口时需加上拉电阻。7. ISP/IAP模式下无需专用编程器和专用仿真器,可
9、通过串口(RxD/P3.0,TxD/P3.1)使用ISP软件直接下载程序,数秒钟即可下载完成8. 具有EEPROM功能9. 具有看门狗功能10. 有T0、T1、T2三个个16位定时器/计数器11. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒12. 通用异步串行口(UART),还可用定时器软件实现多个UART13. 工作温度范围:-40+85(工业级)/075(商业级)14. PDIP封装 图2-3 STC89C52RC单片机引脚图2.4 基于STC89C52RC的温度控制系统的总体设计2.4.1 系统硬件基本结构 在本次设计中,考虑到完
10、成该项设计的现实条件因素,在进行本系统的设计时,着重点在于系统的基本原理及整个思想的体现。因此在设计中,未考虑用于现实工业控制过程中,应有的一些控制机构,如加热、制冷装置以及相关涉及到的驱动电路(弱电驱动强电)等。本次设计采用DS18B20温度传感器采集温度信息。通过软件对温度信号进行分析处理,并发出相应的命令。单片机对外设发出指令,单片机发出启动相应电路的命令,外设执行相应动作。具体电路框图如图2-4所示: 图2-4系统硬件电路基本框架2.4.2 STC89C52的复位电路 在本次毕业设计的温度测控报警系统中,核心原件是STC89C52单片机,这是一种8位增强型51系列单片机。单片机的复位电
11、路可以在在单片机系统运行中,受到干扰出现程序抛费的时候,按下复位键可以将系统复位从头开始执行。其最小系统主要包括:复位电路、震荡电路以及存储器选择模式,其中系统晶振的振荡频率直接影响单片机的处理速度。频率越大处理速度也越快。电路如下图2-5所示: 图2-5 单片机最小系统电路图2.4.3 键盘电路键盘是重要的人机交互设备,能够向单片机实时输入数据,是使用者与单片机交流的重要手段。但是消除抖动是使用按键时不可回避的问题。主要有硬件消抖和软件消抖两种方式。那么如何消除抖动呢?软件消抖是最常采用的方法。软件来消抖基本思路是:按键按下时对应低电平,执行延时程序若干毫秒的后,确认该按键是否还是低电平,如
12、果仍为低电平,可以确定按键被按下。当按键松开时,行线的低电平为高电平,执行一段延时程序后,仍为高电平时,说明按键已经松开。采取以上措施,避开两个抖动时间,从而消除了按键抖动的影响。键盘接口的工作原理:键盘接口比较常见的有独立键盘和矩阵键盘。独立按键键盘:独立键盘的各个按键是独立存在的,每个按键输出接到单片机I/O口上,通过检测电平状态确定哪一个按键被触发。在按键数量比较多的时候,独立按键需要占用很多单片机I/O口,电路结构也比较繁复。按键较少时才合适用独立按键。本课题所用4个按键来设置温度方式,所以用的就是独立式键盘,所以以下就只介绍几种独立式键盘的接口,行列式键盘接口将不做介绍。中断方式:当
13、有按键按下的时候,就向单片机发出中断请求,在中断服务程序对按下那个键进行识别。查询方式:独立按键直接接在单片机I/O口上,通过查询读取各个I/O口的电平状态,即可以识别出按下的键。此外,也可以使用扩展芯片8255A等的扩展I/O口作为独立式键盘的接口电路。本次设计只用了四个按键。四个独立按键的编码十分灵活简便。以下图2-8为该系统所用的键盘电路:图2-6键盘电路在本系统中,由于按键数目较少,(只有五个)而I/O又有空闲,故采用独立式键盘。如上图2-6所示,在系统中按键占用了STC89C52单片机的P2口.。2.4.4 温度传感器电路采用数字温度传感器DS18B20来作为此次毕业设计的温度传感器
14、。DQ端口引脚和共地引脚之间接上拉电阻到P1.1端口。DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计采用此温度传感器出于以下几点原因:(1) 原件特性:测温范围比较广,从-55+125 ,测温精度高,可以达到士0.5;转换时间短,12位精度转换时间仅仅需要750ms;可以通过数据线供电,超低功耗工作方式十分的节能环保。(2) 成本低廉:随着大规模集成电路的迅猛发展,电子元器件体积越来越小,功能越来越强大,夹克越来越低。一支DS18B20的体积与普通三极管相差无
15、几,价格只需要六七元。(3) 易于使用: DS18B20是单总线器件,CPU与其接口时仅需占用1个I/O端口且一条总线上接挂几十个DS18B20也是可行的,测温时电路十分简单,降低系统的复杂度,大大降低了难度和工作量。DS18B20温度传感器有三根引脚: DQ为单线数据总线传输端口 , VDD为外部电源端口, GND为共地端口。DS18B20传感器与单片机的连接采用外部供电的方式,其电路如图2-7所示:图2-7 温度传感器接口2.4.5 系统电源电路的设计本系统采用LM2596电源稳压芯片,LM2596是降压型的电源管理集成电路输出+5V电压,具有良好负载调节特性,同时具有优良的线性。内部集成
16、固定150KHz的频率发生器,可以使用小规格滤波器件。该器件还有自我保护电路,在特定电压下可以保持低误差。在该温度控制系统中,其电源电路设计如下图2-8所示:图2-8 系统电源模块2.4.6报警电路在温度测控报警系统发生故障或者触发报警是,单片机测控系统必须要发出提示使用者的报警信号或者提示音,本设计采用蜂鸣器发声报警的方式。 本系统中的报警电路主要是用来监控当前的水温,当水温超过设定的温度值时,便发出报警声提示操作者。在本次设计中只采用简单的蜂鸣器来进行报警。 课题中用STC89C52单片机的P1.0接S8550三极管基极输入端。当P1.0输入高电平时,三极管导通,蜂鸣器两端获得约处罚电压而
17、发出鸣叫;当P1.0输出低电平,三极管截止,蜂鸣器停止发声。由此看出,三极管的作用相当于一个开关。蜂鸣器驱动电路如下图2-9所示:图2-9蜂鸣器驱动电路 若想使蜂鸣器的发音有多重频率,可以使用555定时器设计多谐震荡电路,使蜂鸣器的发音随着震荡器的频率改变而产生高低不同的报警音。2.4.7 电路状态显示电路设计中提到系统中所须的单片机报警电路工作状态用两个发光二极管来模拟。当进行报警温度上下限时,由温度上下限指示灯进行状态显示。外界温度的正负值由正负温度指示灯进行状态指示。若单片机发出启动相应电路的命令,则点亮相关的指示灯表示当时电路状态。课题中用STC89C52单片机的P1.4作为报警指示、
18、P1.6和P1.7作为温度上下限指示P1.2和1.3作为正负温度指示外接LED表示系统的控制工作状态。要使LED发光,只要在所接I/O口线发出高电平信号即可,所以该部分电路很简单。电路图如图2-10所示:图2-10 输出状态显示电路2.4.8 数码管显示电路LED是发光二极管的英文缩写。LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。LED显示器在单片机系统中的应用非常普遍。LED显示器分为共阴共阳两种。所有的发光二极管阳极连接到一起形成公共阳极,这就是共阳数码管,共阳数码管应将公共阳极接到+5V电源,当某段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平
19、时,相应字段就不亮。共阴数码管的原理和共阳是一样的,所以不多做介绍。本课题设计的温度控制系统是采用4位数码管作为显示模块,数码管的段选断接在单片机P0口,位选端接在P2口。由软件实现对数码管的段选位选显示。其接口原理图如下图6所示: 图2-11 输出显示电路2.4.9 设计总电路电路中温度数据采集用DS18B20,当采集温度实时变化,单片机发出相关指令,外围电路执行相应操作。温度值在数码管中实现实时显示。在实现温度控制时,因为最后同样要通过传感器将数据传送至单片机内,发光二极管进行状态显示。本系统中的报警电路主要是用来监控当前的温度,可以使用独立键盘对报警值进行预设值,当温度超过设定的温度上下
20、限值时,便发出报警声提示操作者。在本次设计中采用简单的蜂鸣器来进行报警,当温度回归到正常温度以内,就停止报警。最终所设计的硬件电路图见附录1所示。3 系统软件设计3.1应用程序模块整体设计系统的软件编程主要是采用单片机C语言,对单片机进行编程实现系统各项功能。主程序对各模块模块进行初始化操作,而后调用读温度、处理温度、显示、键盘等模块。用的是循环查询方式,来显示和控制温度,主程序调用各个子程序对DS18B20所采集的数据进行实时显示读出与处理,其程序流程如图3-1系统程序流程图。图3-1系统程序流程图3.1.1系统资源分配 在控制温度报警系统的整个实时调度过程中,如何合理的利用系统资源是能否提
21、高系统的控制精度和工作效率的关键所在。各种控制任务是以中断方式实现的,发生中断时,CPU立即执行中断服务程序,本系统采用定时中断,来实现系统的实时控制。用定时/计数器1和软件计数结合定时作为系统的时钟基准(1s ),并兼作采集现场温度值的采样周期。对I/O口的定义,分配如下所示: P1.1 作为DS18B20传感器温度采集数据进入端口 P1.6、P1.7为温度上下限的工作指示灯端口 P1.4为温度过限报警指示灯端口 P1.2、P1.3为正负温度指示灯端口P2.4P2.7 为键盘与单片机的接口P0口为数码管段选接口P1.0为蜂鸣器报警电路接口P2.0P2.3为数码管位选接口通过对各个I/0编程和
22、有效的资源分配,可以实现本系统的功能。3.2主程序及循环3.2.1温度读取子程序 读出温度子程序的主要功能包括DS18B20的初始化,判断DS18B20是否存在,检测到DS18B20存在则进行ROM操作命令,再进一步进行存储操作命令。最后读取传感器所测量到的温度数据。如果检测到DS18B20不存在则返回。在读取温度过程中跳过读取温度传感器序列号。对DS18B20初始化的可以参考下面几个语句。DS18B20初始化:Init_DS18B20();读字节操作:Readonechar();写字节操作:Writeonechar();跳过温度传感器序列号读取:Writeonochar(0XCC);启动温度
23、转换:Writeonochar(0X44);读取温度寄存器:Writeonochar(0XBE);一共可以读取9个寄存器,前两个为温度寄存器。其程序流程图如图3-2所示。图3-2 读温度流程图3.3 按键与温度处理3.3.1 按键处理子程序按键处理子程序主要是负责参数的设置,首先是对系统的初始化操作。主程序每循环一次都要对按键进行扫描,判断是否有输入键按下则进行一系列的按键输入操作。P2.4-P2.7为按键I/O口,程序对I/O口进行循环检测,P2.4为上下限温度设置切换按键,P2.5为加温度,P2.6为减温度,P2.7为确定。在具体的对按键模块编程中,对按键进行消抖处理。其程序流程框图如图3
24、-3所示。图3-3 温度转换流程图3.3.2 计算温度子程序RAM中的的BCD嘛需要进行转换运算才能被读取,而温度计算子程序正是显示这个功能的,并进行温度值正负的判定,具体的关键语句如下if(temp=0) HLight=1;LLight=0;display(); if(temp0) HLight=0;LLight=1;display00();其程序流程图如图3-4所示:图3-4 计算温度子程序3.3.3 显示数据刷新子程序借助数据刷新子程序可以对显示缓存器中的数据进行刷线显示,读出RAM中的数据进行操作。当数据最高显示位为0时将符号显示位移入下一位。通过此子程序可以实时的读取温度值。程序流程
25、图如图3-5所示:图3-5 数据刷新子程序4 系统调试及问题解决STC89C52系列单片机功能强大速度快,但是必须借助一定的开发系统来开发软件和对硬件电路进行诊断、调试。本设计使用的仿真系统是Keil开发系统,对所设计的温度报警系统进行仿真。该仿真系统可以进行对程序的输入与修改,运行、调试、排错等功能,而且具有较全的开发软件,支持单片机C语言和汇编语言进行软件开发。4.1 硬件电路调试硬件部分的调试主要是与电路原理图进行对照,利用万用表来检查引脚之间是否焊接正确,硬件电路上引脚之间是否有短路的情况。第一步 系统硬件实物板焊接完成后,注意测试单片机管脚功能,当测到(RESET)复位脚,发现不复位
26、时,此引脚的电压也为高电平。原因及解决方法:由于焊接时的失误造成虚焊点。解决方法:重新焊接焊点再仔细检测是否还有错误。第二步 单片机复位电路中,经查,30pF电容的两个引脚之间短路,电路产生错误,经过重新焊接,复位电路已经能够正常工作。第三步 温度控制电路的调试在调试温度控制电路时,由于控制比较复杂,所以采用先用面板上进行插接,通过给一个高电平到控制电路输入,看它是否能够驱动状态显示电路。在面板上调试成功后再焊接到电路板上。调试的目的是排除硬件和软件的故障,使研制的样机符合预定设计目标,下面就调试过程中遇到的问题及其解决方法作以下叙述。第四步 控制电路工作异常,温度控制的作用未得到实现。使用万
27、用表检测控制电路,发现三极管在电压过大的情况下已经烧坏。单片机控制电路焊接时,在三极管与单片机数据口之间加入分压电阻,保护单片机,防止烧坏。第五步 单片机最小系统异常,复位电路及ALE I/O口不能输出方波信号。经过分析发现有很多原因都可能导致这个问题,可能存在以下几种情况:电路焊接时线路有错误、虚焊点造成的电路断路、元器件损坏等。首先,察看了电路焊接是否正确,经过与电路的仔细对照,发现电路没有问题,接着,利用万用表察看是否有虚焊点,在测量之后,发现有一个点没有焊接牢固,改正之后,电路工作正常。第六步 在焊接好DS18B20温度传感器以后,系统并没有正常测量温度。经查,在单片机开发板上温度测量
28、系统工作正常,排除了温度传感器损坏的原因 。检查电路查找资料后,发现温度传感器DQ端口接到单片机的一个接口上,但是这个接口没有接单片机+5V电源。把单片机I/O口接温度传感器的接口同时也接到单片机电源上。4.2 系统软件调试在编制软件时很难一次性成功,因为软件的开发是一项仔细的严谨的系统工作,需要重复不断进行修改和完善,尤其是一些复杂的功能强大的软件系统,对软件的要求也就更规范严格,要求符合软件设计的各项指标。毕业设计的测控控制报警系统的硬件电路确定之后,依靠软件才能实现硬件完成所需要的功能,所以软件程序的设计直接影响到了系统的运行及功能的实现,在设计和调试软件的时候使软件必须要符合软件开发的
29、要求,能够配合硬件。各个模块功能明确,使软件功能实现硬件,完美的实现硬件功能。软件开发调试系统使用了Keil编译系统,对于编制的软件程序,可以在Keil系统的编译环境下运行,本系统软件的调试步骤如下:1. 温度传感器不能正常测量温度。原因:使用DS18B20数字式温度传感器的时候,如果没有遵照严格的时序关系。在这方面我吸取了教训问题也得到了解决。查阅了大量资料,对照时序图和文字说明理清时序关系。2. 把系统分成若干个模块,进行分布调试,包括温度采集、读取、转换、计算等功能。然后再进行整体软件调试。3. 对各模块输入变量赋值,单步运行,看其运算是否正确,最终输出是否合乎要求。4. 把各个不同的模块有机的结合起来,进行单步运行,检测各个模块逻辑关系是否有误运行情况是否良好。4.3 系统联调在开发系统上单独进行软件调试后和在保证硬件连线基本正确的前提下进行软硬联调,即在线仿真,也就联机调试。联机调试就是整个系统组合起来进行运行测试,查看硬件电路连线正确与否,软件和硬件的配合完成的功能正确与否。本系统联机调试的步骤如下:第一步 将整个硬件系统连接起来,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1