收藏 分销(赏)

主从式温度监测报警与控制系统电子-本科论文.doc

上传人:可**** 文档编号:3114420 上传时间:2024-06-18 格式:DOC 页数:50 大小:914.50KB
下载 相关 举报
主从式温度监测报警与控制系统电子-本科论文.doc_第1页
第1页 / 共50页
主从式温度监测报警与控制系统电子-本科论文.doc_第2页
第2页 / 共50页
主从式温度监测报警与控制系统电子-本科论文.doc_第3页
第3页 / 共50页
主从式温度监测报警与控制系统电子-本科论文.doc_第4页
第4页 / 共50页
主从式温度监测报警与控制系统电子-本科论文.doc_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、主从式温度监测报警与控制系统题目 主从式温度监测报警与控制系统 任务与要求设计主从式温度监测报警与控制系统,要求: 设计以单片机为从机,利用温度传感器对环境温度进行监测,将结果通过标准串行口传送通信给微机主机,由微机跟踪显示目标状态;若超过设定值,则从机目标状态以某种现场变化为提示,主机则以某种直观警方式为提示。设计硬件电路,编写PC机和单片机的控制程序,写出设计报告及详细说明。开始日期 2011 年4月 1 4日 完成日期 2011年6 月20 日 主从式温度监测报警与控制系统一、设计目的设计以单片机为从机,利用温度传感器对环境温度进行监测,将结果通过标准串行口传送通信给微机主机,由微机跟踪

2、显示目标状态;若超过设定值,则从机目标状态以某种现场变化为提示,主机则以某种直观警方式为提示。二、组内分工初定A.邬云辉:负责电路的焊接和调试。B俞彬:负责撰写“课程设计报告书”,协助电路的焊接和调试。C. 张锋:负责程序的编写,完善“课程设计报告书”。D. 张邑鹏:负责元件的采购和设计方案的制定。三、使用电子元件及个数单片机AT89C52 芯片1片液晶显示器LCD16021个MAX232芯片1片通讯接口RS-2321个数字温度传感器DS18B201个单片机插座、16脚插座各1个晶振、电解电容、LED-RED各1个按键、导线、电阻、电容若干四、设计方案现代化集中管理需要对现场数据进行统计、分析

3、、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为主机,单片机为从机,由单片机完成数据的采集及对装置的控制,而由主机完成各种复杂的数据处理及对单片机的控制。4.1系统的总体设计4.1.1 设计方案主从式温度监测报警与控制系统的总体设计思想为:温度传感器测量出来的温度值由单片机采集出来,然后单片机再将采集出的温度数据处理后,通过串行口发送给PC机。其总体方案流程图如下所示。DS18B20AT89C52MAX232PC机温度感应采集处理串口传输监控报警

4、图4.1 总体设计方案流程图采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。DS18B20的最大优点是之一是采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用52单片机控制,软件编程的自由度大,通过编程实现各种各样的算术算法和逻辑控制,且体积小,硬件实现简单,安装方便。4.1.2 系统的主要硬件4.1.2.1单片机主要特性:与MCS-51 兼容 8K字节可编程闪烁存储器 寿命:1000写/擦循

5、环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 2568位内部RAM 32可编程I/O线 3个16位定时器/计数器 8个中断源 可编程串行通道 低功耗的闲置和掉电模式 单片机AT89C52的引脚说明:4.1.2.1 AT89C52引脚图引脚描述:VCC:电源电压 GND:地P0口:P0口是一组8位漏极开路双向I/O口,即地址/数据总线复用口。作为输出口时,每一个管脚都能够驱动8个TTL电路。当“1”被写入P0口时,每个管脚都能够作为高阻抗输入端。P0口还能够在访问外部数据存储器或程序存储器时,转换地址和数据总线复用,并在这时激活内部的上拉电阻。P0口在闪烁编程时,

6、P0口接收指令,在程序校验时,输出指令,需要接电阻。P1口:P1口一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时输出一个电流。闪烁编程时和程序校验时,P1口接收低8位地址。P2口:P2口是一个内部带有上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL电路。对端口写“1”,通过内部的电阻把端口拉到高电平,此时,可作为输入口。因为内部有电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数

7、据。在访问8位地址的外部数据存储器时,P2口线上的内容在整个运行期间不变。闪烁编程或校验时,P2口接收高位地址和其它控制信号。P3口:P3口是一组带有内部电阻的8位双向I/O口,P3口输出缓冲故可驱动4个TTL电路。对P3口写如“1”时,它们被内部电阻拉到高电平并可作为输入端时,被外部拉低的P3口将用电阻输出电流。P3口除了作为一般的I/O口外,更重要的用途是它的第二功能,如下表所示端口引脚第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RD表4.1.2.1 P3口第二功能P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。R

8、ST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输

9、出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:震荡器反相放大器及内部时钟发生器的输入端。XTAL2:震荡器反相放大器的输出端。时钟震

10、荡器:AT89C52中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。 外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发

11、生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 图4.1.2.2内部振荡电路 图4.1.2.3闲散节电模式AT89C52有两种可用软件编程的省电模式,它们是闲散模式和掉电工作模式。这两种方式是控制专用寄存器PCON中的PD和IDL位来实现的。PD是掉电模式,当PD=1时,激活掉电工作模式,单片机进入掉电工作状态。IDL是闲散等待方式,当IDL=1,激活闲散工作状态,单片机进入睡眠状态。如需要同时进入两种工作模式,即PD和IDL同时为1,则先激

12、活掉电模式。在闲散工作模式状态,中央处理器CPU保持睡眠状态,而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内随机存取数据存储器和所有特殊功能寄存器的内容保持不变。闲散模式可由任何允许的中断请求或硬件复位终止。终止闲散工作模式的方法有两种,一是任何一条被允许中断的事件被激活,IDL被硬件清除,即刻终止闲散工作模式。程序会首先影响中断,进入中断服务程序,执行完中断服务程序,并紧随RETI指令后,下一条要执行的指令就是使单片机进入闲散工作模式,那条指令后面的一条指令。二是通过硬件复位也可将闲散工作模式终止。需要注意的是:当由硬件复位来终止闲散工作模式时,中央处理器CPU通常是从激活空

13、闲模式那条指令的下一条开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期有效,在这种情况下,内部禁止中央处理器CPU访问片内RAM,而允许访问其他端口,为了避免可能对端口产生的意外写入:激活闲散模式的那条指令后面的一条指令不应是一条对端口或外部存储器的写入指令。掉电模式:在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在中指掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将从新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效切必须保持一定时间以使振荡器从新启动并稳定工作。

14、模式程序存储器ALEP0P1P2P3闲散模式内部11数据数据数据数据闲散模式内部11浮空数据地址数据掉电模式外部00数据数据数据数据掉电模式外部00数据数据数据数据表4.1.2.2闲散和掉电模式外部引脚状态。程序存储器的加密:AT89C52可使用对芯片上的三个加密位LB1,LB2,LB3进行编程(P)或不编程(U)得到如下表所示的功能:程序加密位保护类型1UUU没有程序保护功能2PUU禁止从外部程序存储器中执行MOVC指令读取内部程序存储器的内容3PPU除上表功能外,还禁止程序校验4PPP除以上功能外,同时禁止外部执行表4.1.2.3 程序存储器的加密当LB1被编程时,在复位期间,EA端的电平

15、被锁存,如果单片机上电后一直没有复位,锁存起来的初始值是一个不确定数,这个不确定数会一直保存到真正复位位置。为了使单片机正常工作,被锁存的EA电平与这个引脚当前辑电平一致。机密位只能通过整片擦除的方法清除。4.1.2.2 数字温度传感器DS18B20 DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。引脚排列:DS18B20的3脚封装如下图所示。其中,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输

16、入端。图4.1.2.4 DS18B20封装内部结构:DS18B20内部结构如下图所示。它主要由64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器组成。图4.1.2.5 DS18B20内部结构图性能特点:1)独特的单线接口,既可通过串行口线,也可通过其它I/O口线与微机接口,无需变换其它电路,直接输出被测温度值;2)DS18B20支持多点组网功能,多个DS18B20可用并联在唯一的三线上,实现组网多点测温;3)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;4)适应电压范围更宽,电压范围:3.05.5V;5)DS18B20

17、不需要备份电源,既可用数据线供电,也可采用外部电源供电;6)测量范围为-55+125,固有测温分辨率为0.5;7)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温;8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有较强的抗干扰纠错能力;9)警告搜索命令能识别和寻址温度在编订的极限之外的器件(温度警告情况);10)应用范围包括恒温控制、工业系统、消费类产品、温度计或任何热敏系统;11)DS18B20具有负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。测温原理:DS18B20的测

18、温原理如下图所示,图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图4.1

19、.2.6 DS18B20测温原理框图相关控制接口介绍:1)温度传感器DS18B20加电后,处在空闲状态,要启动温度测量和模数转换,处理器需要向其发出Convert T44h命令,转换完后DS18B20回到空闲状态,温度数据以带符号位的16位补码存储在温度寄存器中,如下图所示。图4.1.2.7温度寄存器格式图中符号位说明温度是正值还是负值,正值时S=0,负值时S=1,表1给出了一些数字输出数据与对应的温度值的例子。以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,

20、-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。如下表所示。表4.1.2.4 DS18B20中的温度传感器对温度的测量值2)非挥发的温度报警触发器TH和TLDS18B20完成温度转换后,就把测得的温度值与TH、TL(TH和TL分别为最高和最低检测温度)作比较。若TTH或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行告警探索搜索。一旦某测温点越限,主机利用告警搜索命令即可识别正在告警器件。高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存

21、器写入。4.1.2.3 液晶显示器LCD1602LCD1602是一种字符型液晶显示模块,专门用于显示字母、数字、符号等点阵式LCD,目前常用的有16*1、16*2、20*2和20*4行等的模块。基本参数:LCD1602的主要技术参数为:显示容量:16*2个字符芯片工作电压:4.5V5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95*4.35(W*H)mm引脚功能说明:LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表所示。表4.1.2.5 引脚接口说明表控制接口介绍:1)LCD1602的结构特点LCD1602具有简单而功能较强的指

22、令集,可实现字符移动、闪烁等功能,与MPU的数据转送可采用8位并行传输或4位并行传输两种方式。LCD1602不仅作为控制器,而且还具有驱动40*16点阵液晶像素的能力,LCD1602内部的自定义字符发生器RAM(CGRAM)的部分未用位还可作为一般数据存储器应用。2)LCD1602与MPU接口信号LCD1602与MPU接口信号及其意义见下表。表4.1.2.6 接口信号表3)LCD1602的内部结构控制电路主要由指令寄存器(IR)、数据寄存器(DR)、忙标志(BF)、地址计数器(AC)、显示数据寄存器(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)和时序发生器等电路

23、构成。4.1.2.4 MAX232芯片单片机有一个全双工的串行通信口,所以单片机和PC机之间可以方便地进行串口通信。进行串行通信时要满足一定的条件,PC机的串口是RS-232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,一般采用专用芯片MAX232进行转换。MAX232的引脚图如下图所示。图4.1.2.8 MAX232引脚图MAX232内部有电荷汞电压转换器,可将+5V电源变换成RS232所需的10V电压,以实现电压的转换,既符合RS-232的要求,又可实现+5V单电源供电;所以MAX232收发器电路给短距离串行通信带来极大的方便。其内部结构如下图所示。图4.1.2.8

24、 MAX232的内部结构从图中可以看出,其结构基本可分为三个部分,即:1)电荷泵电路由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。2)数据转换通道由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到PC机的串行接口;串行口RS-232

25、数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。3)供电15脚DNG、16脚VCC(+5V)。4.2 系统的硬件设计基于PC传输的测温系统总体设计框图如下图所示。主控制器采用单片机AT89C52,温度传感器采用DS18B20,用LCD1602显示模块以及RS-232串口传送数据实现与PC机之间的通信。图4.2.1 系统总体方框图下面介绍各个硬件模块4.2.1 AT89C52单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。电路图如下所示:图

26、4.2.1.1 AT89C52单片机最小系统图 说明:复位电路由电容串联电阻构成,结合电容电压不能突变的性质,可知当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的52单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。这里C 取10u,R取10K。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平.至于如何具体定量计算。晶振电路,典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇

27、,方便定时操作)。4.2.2 温度采集电路 温度采集电路通过温度传感器DS18B20采集被控对象的实时温度,提供给AT89C52的P3.3口作为数据的输入,要想使DS18B20能够进行精确的温度转换,I/O线必须在转换期间保证供电。DS18B20与AT89S52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。图4.2.2.2 温度采集电路框图说明:DS18B20温度传感器适应电压范围宽,稳定性很好,反应也较快,测温范围为-55 +125。该温度传感器的分辨率为912位,测温精度高,因此本设计中选用了DS18B20采集实时温度。在实际使

28、用中电路简单,无需其他的外围器件。主机控制DS18B20完成温度转换必须经过初始化、ROM操作指令、存储器操作指令这三个步骤。首先启动初始化,DS18B20 开始转换,再读出温度转换值 在设计中使用默认的12位转换精度,外接供电电源,温度数据的传输,由于只有一根数据线 直接将数据线与单片机的P1.0口相连接,由单片机通过此数据线读取数据。4.2.3 温度显示报警电路利用LCD1602对采集到的温度实时显示,并可通过两个按键设定温度范围,当采集温度超出温度范围时,LED灯变亮实现报警。图4.2.2.3 温度显示报警电路框图说明:显示电路选用字符型液晶模块1602,它是采用的5*7的点阵图形显示字

29、符。根据显示的容量可以分为1行16个字,2行16个字,2行20个字等等。 在本设计中要显示的温度和其他字符可以满足要求。这里采用总线式接口方式。4.2.4 PC机与单片机通信接口电路本设计采用MAX232作为PC机与单片机的串行通信接口芯片。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图4.2.2.2所示。 图4.2.2.4 PC机与单片机通信接口电路设计框图说明:AT89C52单片机利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进

30、行串口通讯。单片机串口有3条引线:TXD(发送数据)、RXD(接收数据)和GND(信号地)。DEM方式,简单三连线结构。IBMPC机有两个标准的RS232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与单片机之间能可靠地进行串行通信,需要用电平转换芯片,我们采用了MAXIM公司生产的专用芯片MAX232进行转换。4.3系统的软件设计4.3.1 主程序设计AT89C52是该系统的核心部分,控制着温度的转换以及读取温度的数值并转化成十进制数以及相应的ASCII值在LCD1602上进行显

31、示,且通过RS-232转USB接线器供PC机读取温度值。其主要工作流程是初始化内部部件以达到环境运行要求,初始化DS18B20以及LCD1602,读取温度值,并将采集到的数据进行相应的转化传送到LCD1602上进行显示,当遇到中断时,进入中断服务函数,检查上位机是否向其请求发送数据,一旦检测到正确的请求即将读取的温度数值按照一定的格式放到缓冲器中,只到数据发送结束,返回中断点继续执行原函数。其MCU设计流程图如图4.3.11所示。图4.3.1.1MCU设计流程图4.3.2 DS18B20模块程序设计1)S18B20的工作过程主机控制DS18B20完成温度转换过程中的协议为:初始化;ROM操作命

32、令;存储器操作命令。2)读取DS18B20温度程序代码void TemperatuerResult(void)p=id_buff;ReadID();/读序列号Config18b20();/配置18B20Init18b20();/18B20初始化WriteByte(0xcc);/跳过序列号WriteByte(0x44);/温度转换Init18b20();/18B20初始化WriteByte(0xcc);/跳过序列号WriteByte(0xbe);/读取温度值p=temp_buff;GemTemp();/CRC校验3)温度采集流程图数据采集系统主要以AT89C52芯片为核心,它控制温度传感器DS1

33、8B20复位和读写操作。对温度进行采集,按时序直接从温度传感器读入温度值的数字信号(这就是所测的温度值,因为DS18B20是最新单线数字温度传感器),最后存入内存。由于精度准确、分辨率高、抗干扰性好、无需校验。由于所读出的数据格式为二进制数的补码,所以求出温度值的原码(当然正数是不必转换)。在显示温度值时,还需要进行十进制的转换,字符代码的转换。其温度采集流程图如图4.3.1.2所示。图4.3.1.2 S18B20温度采集流程图4.2.3 LCD1602显示模块程序设计1)D1602初始化LCD1602初始化流程图如图4.2.3.1所示图4.2.3.1位总线借口模式初始化流程图2)温度显示LC

34、D1602温度显示流程图如图4.2.3.2所示图4.2.3.2 LCD1602温度显示流程图4.2.4 RS-232串口通信模块程序设计1)机端通信程序设计AT89C52单片机串行口是全双工串行通信口,有4种工作方式,即:方式0作移位寄存器使用;方式1是波特率可变的8位UART;方式2是波特率固定为两种的9位UART;方式3是波特率可变的9位UART。在与PC机通信时我们选用方式1来循环。向PC机发送数据,在电平转换的过程中用到MAX232这一核心芯片。MAX232芯片通过DS18B20温度传感器进行采集温度放入单片机内存,采集到的温度将以二进制补码的形式出现,然后通过编写程序将二进制补码的形

35、式转换为字符的形式,通过字符型液晶显示模块将温度显示出来,最后利用MAX232内部电荷汞电压转换器,完成电压转换,使温度在PC机界面显示出来。2)PC端通信程序设计为方便进行远程控制可将采集到的温度数据发送到电脑,以便实时监测。通过RS_232将数据发送至终端设备,采用VC+ 6.0作为开发平台。五、设计方案电路图将T89C52单片机最小系统、温度采集电路、温度显示报警电路、PC机与单片机通信接口电路等各子模块电路组合起来,就得到了最终的设计方案电路图如下所示:图5主从式温度监测报警与控制系统电路图六、程序主要内容与流程图程序主要包括主程序设计、DS18B20模块程序设计、LCD1602显示模

36、块程序设计、 RS-232串口通信模块程序设计等主要内容,具体参见4.3系统的软件设计这部分内容,程序设计的总体流程图如下所示:图6 MCU设计流程图七、课程设计开展情况及总结 本次课程设计从4月中旬一直进行到6月20日。期间,也遇到过不少困难:元器件选择错误,不得不多次跑到赛格去重新买元器件;焊接出现错误,对着电路图苦苦寻找焊接错误的地方,通过仔细研究才发现是单片机引脚焊错,但再次测试时还是不行,最终运用万用表才发现:即使是接了电源,单片机除了直接接电源的管脚外其他都是低电平,百思不得其解;程序运行错误,最终不得不通过翻阅大量资料来参考以及增补知识,改写程序,烧写程序也是历尽苦心,由于是买了

37、AT的芯片,而大部分同学只有烧写SAT,最终在电信同学的帮忙下才烧写成功。虽然历尽千辛万苦,但很遗憾最终电路还是不能运行,估计有以下原因:1、模拟仿真的时候很成功,但焊接出来就实现不了,应该是模拟跟实际的有差别造成,也有可能是焊接时还是出现了问题;2、焊接是没有考虑液晶显示器的对比问题,因此造成液晶显示器只能点亮不能显示数字。下面再总结下我们的软硬件设计。在硬件方面,前面已经详细介绍,这里就不再赘述。展示下焊接好的电路板,如下图所示。图7主从式温度监测报警与控制系统实物电路图在软件方面,除了在4.3系统的软件设计部分提到的利用c编写程序外,我们还使用了PROTUES软件对电路进行了模拟仿真,经

38、过多次模拟调试以后,模拟仿真的结果正确,也大大增强了我们完成电子设计的信心。八、课程设计总结 本课程设计设计了一单片机/PC控制的测温/传输系统。前台由DS18B20传感器将温度直接转变成数字信号送入单片机中进行实时采集,通过LCD1602液晶显示模块将结果在前台显示出来;另外,采集结果又通过RS-232,接口送入PC机后台中以便进行显示、存储或后续处理。该系统体现了数字化控制,智能化控制的特点,实现了对温度的监测、报警和控制功能。九、单片机系统源程序main.c#include main()setds18b20(TH,TL,RS); /设置上下限报警温度和分辨率UART_init();del

39、ay(100); while(1) pt=ReadTemperature(); /测温函数返回这个数组的头地址 /读取温度,温度值存放在一个两个字节的数组中,temper_LCD(); /实测温度转化为ACSII码,并送液晶显示缓冲区alarm_LCD(TH,TL); /上下限报警温度转化为ASCII码,并送液晶显示缓冲区LCD_Initial();/第一个参数列号,第二个为行号,为0表示第一行/为1表示第二行,第三个参数为显示数据的首地址LCD_Print(0,0,TempBuffer0);LCD_Print(0,1,TempBuffer1); warning(); /温度检测和报警key_

40、command();COM_send(); /发送实时温度 LCD_18b20.c#include #include /测温头文件#include /液晶显示头文件#include /键盘扫描头文件sbit alarm=P26;/报警信号bit flag;/温度正负号标志位unsigned char warning_key;/PC报警标志位unsigned char key_value; /存放键盘扫描值unsigned char temper1,temper2;unsigned char TH=100,TL=0,RS=0x3f; /上限温度100,下限20,分辨率10位,也就是0.25Cun

41、signed char t2,*pt;/用来存放温度值,测温程序就是通过这个数组与主函数通信的unsigned char point; /定义发送数据个数指示变量unsigned char TempBuffer117=0x2b,0x20,0x60,0x30,0x2e,0x30,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0;/显示实时温度,上电时显示+ 30.00unsigned char TempBuffer017=0x54,0x48,0x3a,0x2b,0x20,0x30,0x30,0x20,0x54,0x4c,0x3a,0x2b,0

42、x20,0x30,0x30,0x43,0;/显示温度上下限,上电时显示TH:+ 100 TL:+ 00Cunsigned char code dotcode4=0,25,50,75;/*因显示分辨率为0.25,但小数运算比较麻烦,故采用查表的方法*再将表值分离出十位和个位后送到十分位和百分位*/*温度上下限转换为LCD显示数据*功能:将上下限报警温度,分离出符号位,百、十、个位 并将它们转化为ACSII码,送到液晶显示缓冲区*/void alarm_LCD( unsigned char TH, unsigned char TL) TempBuffer03=0x2b;/0x2B为+的ASCII码

43、TempBuffer011=0x2b;TempBuffer04=TH/100+0x30; /分离出TH的百十个位if(TempBuffer04=0x30)TempBuffer04=0xfe; /百位数消隐TempBuffer05=(TH%100)/10+0x30;/分离出十位TempBuffer06=(TH%100)%10+0x30; /分离出个位TempBuffer012=TL/100+0x30; /分离出TL的百十个位if(TempBuffer012=0x30)TempBuffer012=0xfe; /百位数消隐TempBuffer013=(TL%100)/10+0x30;/分离出十位TempBuffer014=(TL%100)%10+0x30; /分离出个位/*温度转换为LCD显示数据*功能:将两个字节的温度值,分离出符号位,整数及小数 并将它们转化为ACSII码,送到液晶显示缓冲区*/void temper_LCD(void)unsigned char x=0x00,y=0x00;t0=*pt;pt+;t1=*pt;if(t10x07) /判断正负温度flag=1;TempBuffer10=0x2d; /0x2d为-的ASCII码t1=t1; /*下面几句把负数的补码*/t0=t0; /* 换算成绝对值*/x=t0+1; /*/t0=x;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服