基于单片机的多点温度采集系统_第1页
基于单片机的多点温度采集系统_第2页
基于单片机的多点温度采集系统_第3页
基于单片机的多点温度采集系统_第4页
基于单片机的多点温度采集系统_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE基于单片机的多点温度采集系统ThedetectingSystemofthemuti-pointEnvironmentalTemperatureBasedonSinglechipMicrocomputer系(院)名称:电子信息与电气工程学院专业班级:2008级自动化1班学生姓名:xxx学号:指导教师姓名:xxx指导教师职称:副教授目录摘要 IAbstract II引言 1第一章方案论证 21.1课题的来源 21.2系统设计思路概述 21.3系统方案对比 21.3.1系统设计方案一 31.3.2系统设计方案二 31.3.3方案对比与选择 4第二章硬件系统设计 52.1硬件系统设计概述 52.2单片机最小系统设计 52.2.1单片机简要介绍 52.2.2时钟电路与复位电路 25661324\h52.2.3单片机的工作方式 62.2.4单片机最小系统 72.3温度采集电路设计 72.3.1传感器的选用 72.3.2温度传感器DS18B20简介 82.4键盘控制电路设计 11HYPERLINK\l"_Toc325661331"2.4.1键盘控制的主要功能 112.4.2键盘电路设计 112.5液晶显示电路设计 132.5.1LCD1602液晶显示模块 132.6报警电路设计 15第三章软件设计 163.1程序设计语言与软件开发环境 163.1.1程序设计语言的选用 163.1.2KeilC51简介 173.2程序流程图 173.2.1主程序流程图 173.2.2键盘控制子程序流程图 183.2.3温度采集子程序流程图 193.2.4LCD1602显示子程序流程图 203.2.5报警电路子程序流程图 21第四章仿真测试 234.1Proteus简介 234.2仿真结果 23总结 27致谢 28参考文献 29附件A原理图 30附件B程序 31PAGEII基于单片机的多点温度采集系统摘要:本课题设计制作了一个两点温度采集系统,主要实现两路温度采集,采集的温度可在LCD上显示,可根据需要手动调整LCD上显示哪一路的温度数据,包括实时温度值,高温限值,低温限值,并可以通过按键对限值进行设定。本设计硬件部分以STC89C52单片机为核心,通过两路DS18B20温度传感器进行温度采集,在单片机控制下对相应传感器采集到的温度数据进行处理,并将处理后的数据显示在LCD1602显示器上。此外,还配有5V电源电路,晶振电路,复位电路,按键电路,报警电路。其中按键电路对两路传感器的温度限值进行调节;当实测温度值超过温度限值时,报警电路会进行报警,此时蜂鸣器鸣响,发光二极管发光。软件部分采用KeiluVision4集成开发环境,以C51语言编写,并结合仿真软件proteus进行了仿真。在Proteus仿真环境仿真成功后,在AltiumDesignersummer09软件中绘制了原理图和相应的PCB图,在实验室完成了PCB板的制作。经过焊接,调试,本系统最终能实现预定的各项功能,运行良好。关键词:温度;单片机;传感器;LCDThedetectingSystemofthemuti-pointEnvironmentalTemperatureBasedonSinglechipMicrocomputerAbstract:Thispaperdesignedatwo-pointtemperaturecollectionsystem,mainlytherealizationoftwotemperatureacquisition,acquisitionoftemperaturecanbedisplayedontheLCD,accordingtotheneedtomanuallyadjusttheLCDshowwhichwaythetemperaturedata,includingreal-timetemperature,hightemperaturelimit,lowtemperaturelimit,andcanbekeytothelimitset.ThedesignofthehardwarepartoftheSTC89C52MCUasthecore,throughthetwoDS18B20temperaturesensorfortemperatureacquisition,underthecontrolofthemicrocontrolleronthecorrespondingsensorcollectedtemperaturedataareprocessed,andtheprocesseddataisdisplayedintheLCD1602display.Inaddition,italsoequippedwitha5Vpowersupplycircuit,acrystaloscillatorcircuit,aresetcircuit,akey-boardcircuit,alarmcircuit.Thekeycircuitcanadjustthelimitvalueoftwosensorstemperature;whenthemeasuredtemperaturevalueexceedsthelimitvalueoftemperature,thealarmcircuitcanalarm,buzzerringing,emittingdiodelighting.ThesoftwarepartadoptstheKeiluVision4integrateddevelopmentenvironment,usingC51programminglanguage,combinedwiththesimulationsoftwareProteusforsimulation.IntheProteussimulationenvironmentsimulationissuccessful,intheAltiumDesignersummer09softwarerenderingoftheschematicdiagramandthecorrespondingPCB,completedinthelaboratoryPCBboardproduction.Afterwelding,debugging,thissystemcanrealizeallthefunctionofexpecting,andrunningwell.Keywords:singlechipmicrocomputer;sensor;temperature;LCDPAGE42引言温度是重要的环境条件,也是最基本的环境条件,它与人们的生产生活息息相关。一方面,适宜的温度给人以舒适的感觉;另一方面,温度的状况决定了许多工农业产品的质量与品质。因此,对于温度的检测必不可少,也显得十分必要。做好环境温度状况的实时检测与显示,可以给后续针对环境温度状况的调节提供依据,进而更好地服务于工农业生产,更好的服务于人民生活。近年来,关于环境温度检测的技术层出不穷,检测技术与显示技术得到了很大的发展,有关的研究成果更是迅速地服务于工农业实际生产。本课题基于STC89C52单片机,采用温度传感器进行温度数据采集,并交由单片机处理,最后通过LCD显示屏进行数据显示,为工农业生产提供直观的数据。第一章方案论证1.1课题的来源温度是一种最基本的环境参数,人们生产生活与环境温度息息相关,在工农业生产过程中需要实时测量温度,在生产条件要求苛刻的实验室等场所更需要实时测量温度。而随着日常生产生活的需要,多点温度的同时采集和监测成为需要,如大型粮仓等环境,因此,研究多点环境温度的测量方法和测量装置具有重要的意义。进入21世纪,科学技术的发展日新月异,科技的进步在推动社会进步的同时也带动了测量技术的发展。在工农业生产逐步进入快车道的过程中,测量技术也成为当今科技的一个主流,被广泛地应用于工农业生产的各个领域。在信号测量中,我们常采用温度传感器来检测温度。在后续的信号处理中,多交由单片机进行信号的处理与分析。采用单片机来处理温度传感器检测到的环境温度信号,不仅具有系统控制简单方便、可扩展性强、灵活性大等优点,而且,还可以大幅度地提高环境温度的检测精度与准确度。因此,本次毕业设计选择以STC89C52单片机为核心器件的环境温度检测系统作为研究课题。1.2系统设计思路概述本次系统设计以STC89C52单片机为核心部件,主要由温度信号采集电路、时钟电路、复位电路、电源电路、键盘控制电路、报警电路、LCD液晶显示电路。系统通过温度传感器电路对环境中的温度信号进行准确的采集,并将采集到数据交于单片机进行分析与处理。在单片机进行数据分析与处理的同时,LCD液晶显示电路对检测到数据进行显示。若信号采集电路检测到的任何一个传感器的检测值超过人为的设定值时,则由单片机发送报警指令,此时,报警电路进行警示报警,以引起相关工作人员的注意,从而实现对环境温度状况的检测、显示、报警。本设计具体可实现如下功能:(1)检测两处环境的温度状况;(2)通过LCD显示屏显示温度采集电路采集到的环境温度状况;(3)通过拨动开关选择LCD显示哪一路传感器的温度数据;(4)使用键盘电路对温度的上下限进行设定及修正;(5)检测值与设定值比较,并通过报警电路进行警示。1.3系统方案对比在本次系统设计中,需要采用传感器作为信号采集器件。所谓传感器,就是能感受规定的被测量并按一定的规律转换成可用输出信号的器件或装置,通常由敏感元件和转换元件组成。简单的说,就是能把被测的非电量转换成为电信号输出的器件或装置称为传感器。信号检测效果的好坏是检测系统设计成败的关键,传感器的选择又决定了信号检测的效果。为此,本次系统设计根据传感器的选用设计以下两种方案。1.3.1系统设计方案一在方案一中,采用多个温度传感器AD590来测量环境温度,然后分别将采集到的多路数据通过模数转换芯片ADC0809进行信号转换,即将采集到的模拟信号转换为数字信号,然后送到单片机进行数据的分析与处理。在方案一种,辅助电路主要由电源电路、复位电路、报警电路、液晶显示电路、键盘控制电路等组成。方案结构如图1.1所示。单单片机电源电路键盘控制复位电路AD590AD590模数转换液晶显示电路报警电路图1.1方案一结构图1.3.2系统设计方案二在信号采集检测系统中,传感器的选用尤为重要,往往决定着检测到的信号是否准确,不同的传感器也会使硬件的复杂度不同。在系统设计方案二中,采用集成化的多个温度传感器DS18B20来检测环境的温度并完成转换,然后送给单片机进行分析与处理,不需要再使用ADC0809模数转换电路。系统设计方案二的结构如图1.2所示。单单片机电源电路键盘控制复位电路DS18B20DS18B20液晶显示电路报警电路图1.2方案二结构图1.3.3方案对比与选择在现代生产生活中,温度监测被广泛应用于仓储管理、智能化建筑、气象、环保、生物制药、食品加工等众多领域。随着信息科学与微电子技术,特别是微型计算机与通信技术的迅猛发展,传感器逐渐与微处理器、微型计算机相结合,产生了智能式传感器。智能化传感器是借助于半导技术将传感器部分与信号调节电路、接口电路和微处理器制作在同一块芯片上,即构成大规模集成电路的智能化传感器。方案一中分别采用温度传感器进行温度采集,不仅需要各自配备相应的数模转换电路,使电路变得复杂,而且在后续的系统调试过程中也容易出现许多不必要的麻烦,但是编程相对简单。而方案二中采用温度一体化的传感器,不仅简化了电路结构,而且,省去了方案一中由于电路调试所带来的不必要麻烦,但编程相对复杂。因此方案二电路简单,抗干扰能力强,采用温度采集转换一体化的传感器,不仅具有信号检测、转换和处理功能,同时还具有存贮、记忆、自动检测报警等多种功能。因而体积缩小、线路简化、结构更紧密,可靠性和抗干扰能力大大提高,但编程相对复杂一些。综合考虑硬件电路、软件设计、经济条件等原因,通过方案之间的比较,本课题选择第二种方案进行系统设计。第二章硬件系统设计 2.1硬件系统设计概述本系统设计采用STC89C52系列单片机作为核心部件,采用DALLAS公司生产的DS18B20温度检测、转换、报警一体化的数字传感器作为环境温度采集电路的主要部件,DS18B20采集到的环境温度信号送给STC89C52单片机进行分析与处理。由于显示的数据只有温度数据和英文字符,数据较少,液晶显示电路采用LCD1602就可以完成显示需求。报警电路由发光二极管和蜂鸣器等组成,当检测值超过设定值时,报警电路中的发光二极管发光,蜂鸣器响起,实现报警功能。键盘控制电路由于所需按键较少,采用独立式键盘方式以及拨动开关完成相应的控制调节功能。2.2单片机最小系统设计2.2.1单片机简要介绍单片机是单片微型计算机(SingleChipMicrocomputer)的简称。它是把组成微型计算机的各个功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口电路、定时/计数器以及串行通信接口等部件集成在一块芯片中,构成一个完整的微型计算机。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供灵活、有效的解决方案。2.2.2时钟电路与复位电路(1)时钟电路STC89C52单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地工作的。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种为外部时钟方式,本系统采用内部时钟方式,将XTAL1与XTAL2两引脚跨接石英晶体振荡器和微调电容,时钟电路如图2.1所示。图2.1时钟电路复位电路STC85C52单片机的复位是由外部复位电路来实现的。复位电路通常采用上电自动复位和按键复位两种方式。在本次系统设计中采用按键复位的方式,复位电路如图2.2所示,接在单片机的第9引脚(RST引脚)。图2.2复位电路2.2.3单片机的工作方式STC89C52单片机有复位、程序执行、低功耗、编程和校验四种工作方式。(1)复位复位操作是单片机的初始化操作,单片机在进入运行前和在运行过程中,程序出错或操作失误使系统不能正常运行时单片机会进入死锁状态,需要进行复位操作,从而使单片机摆脱死锁状态。复位时,PC初始化为0000H,使STC89C52单片机从0000H单元开始执行程序。复位除对PC产生影响外,还会对其他一些寄存器产生影响。(2)程序执行方式程序执行方式是单片机的基本工作方式。系统复位后PC=0000H,考虑到单片机存储器结构的特殊性(0003H~002AH共40个单元,预留用于存放中断程序的入口地址),在0000H~0002H中放一条绝对跳转指令,从而使程序从指定的地址开始执行。配合程序调试,程序又可运行在单步、跟踪、全速运行三种执行方式。目前一般仿真器都提供这三种程序执行方式。(3)低功耗工作方式51单片机中有HMOS和CHMOS两种工艺芯片,它们的节电运行方式不同,HMOS单片机的节电工作方式只有掉电工作方式,CHMOS单片机的节电工作方式有掉电工作方式和空闲工作方式两种。(4)编程和校验方式对于片内程序存储器为EPROM型的单片机,需要一种对EPROM可以操作的工作方式,即用户可对片内的EPROM进行编程和校验。这种工作方式即称为编程和校验方式。2.2.4单片机最小系统单片机最小系统,也称单片机最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对于STC89C52单片机而言,最小系统应该包括:单片机、时钟电路、复位电路等。下图即为一个单片机的最小系统,其具体结构如图2.3所示。图2.3单片机最小系统2.3温度采集电路设计2.3.1传感器的选用在温度采集电路中,传感器的选用是关键。在大多数情况下,对温度传感器的选用,需考虑以下几个方面的问题:1、被测对象的温度是否需记录、报警和自动控制,是否需要远距离测量和传送。2、测温范围的大小和精度要求。3、测温元件大小是否适当。4、在被测对象温度随时间变化的场合,测温元件的滞后能否适应测温要求。5、被测对象的环境条件对测温元件是否有损害。6、价格如何,使用是否方便。根据以上原则,DS18B20温度一体化的数字传感器完全可以满足设计要求,因此本次设计采用DS18B20温度传感器。2.3.2温度传感器DS18B20简介DS18B20的引脚图DS18B20数字温度传感器的外形及管脚示意图如图2.4所示。图2.4DS18B20外形及管脚排列示意图各引脚的功能如下:引脚1—电源地;引脚2—数字信号输入/输出端;引脚3—外接供电电源输入端(在寄生电源接线方式时接地);DS18B20的内部结构DS18B20的内部存储资源分为8个字节的ROM、9个字节的RAM、3个字节的EEPROM,如表2.1所示。表2.1DS18B20内部存储器分布ROM(8个字节)A1A2A3A4A5A6A7A8RAM(9个字节)B1B2B3B4B5B6B7B8B9EEPROM(3个字节)C1C2C3(1)ROM:在DS18B20内部光刻了一个长度为64bit的ROM,这个编码是器件的身份识别标志。如表2.2所示。64位光刻ROM的排列是:开始(最低)8位是产品类型标号,对于DS18B20来说就是(28H),接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。表2.2DS18B20中64位ROM存储内容分布8位CRC编号48位序列号8位产品系列编码MSBLSBMSBLSBMSBLSB注:MSB为最高有效位LSB为最低有效位(2)RAM:高速暂存存储器(RAM)由9个字节组成,包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是温度高限TH、温度低限TL暂存区,第五个字节是配置寄存器暂存区,第6、7、8字节是系统保留用,就相当于DS18B20的运算内存,第九个字节是冗余检验字节。其分配如表2.3所示。表2.3DS18B20暂存寄存器分布寄存器内容字节地址温度值低位(LSByte)0温度值高位(MSByte)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8第0和第1字节:当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。两字节所表示内容如表2.4所示。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表2.4DS18B20温度值低位和高位寄存器bit7bit6bit5bit4bit3bit2bit1bit0232221202-12-22-32-4LSBytebit15bit14bit13bit12bit11bit9bit8bit7SSSSS262524MSByte温度转化后得到的16位二进制数据中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,十进制是2000,乘以0.0625就等于125℃。第2第3字节:RAM的第2、3、4字节和EEPROM的三个字节是对应的,内容是相同的,只是RAM因为是暂存器,失电后数据就丢失了。而EEPROM是电擦除只读存储器,失电后数据不会丢失。第2字节为报警值高限TH,第3字节为报警值低限TL。第4字节配置寄存器:第4字节的配置寄存器是用来设置DS18B20的工作模式和测量精度的,其内容如表2.6所示。表2.6DS18B20配置寄存器结构TMR1R011111低五位一直都是"1",TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如表2.7所示(DS18B20出厂时被设置为12位)。表2.7DS18B20温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms我们使用时可以跟据实际需要通过修改RAM第4字节的R0和R1的值来DS18B20的温度测量精度。需要保存这种设置时,还要用一条复制命令将RAM内的数据复制到EEPROM内。第5、6、7、8字节:RAM的第5、6、7字节是器件的保留字节,就相当于器件内部转换运算时所用的内存。第8字节是循环冗余校验字节。它是前面8个字节的CRC值。起着对前面字节的校验作用。(3)EEPROM:EEPROM只有三个字节,和RAM的第2、3、4字节的内容相对应,它的作用就是存储RAM第2、3、4字节的内容,以使这些数据在掉电后不丢失。DS18B20供电方式外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。在外接电源方式下,可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到3V时,依然能够保证测量精度。所以本系统采用外部电源供电方式。在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上可以挂接任意多个DS18B20传感器,组成多点测温系统。外部电源供电方式如图2.5所示。在外部供电方式下,DS18B20的GND引脚必须接地,不能悬空,否则不能转换温度,读取的温度总是85℃。图2.5DS18B20外部电源供电本次设计中,将两个DS18B20温度采集电路分别接于单片机的P0.0引脚和P0.1引脚。2.4键盘控制电路设计2.4.1键盘控制的主要功能在单片机应用系统中,键盘用于输入数据、代码和命令;显示器用来显示单片机的输入值、控制过程中间信息及运算结果等。键盘和显示器是实现人机对话两个必不可少的硬件配置。在本系统中,键盘控制电路的主要功能是用于温度限值的设定和切换LCD显示的温度数据项。2.4.2键盘电路设计在键盘接口技术中,键盘分独立式键盘和矩阵式键盘两种。1、独立式键盘独立式键盘是最简单的键盘电路,每个键独立的连接一根输入线。这种键盘的优点是结构简单、使用方便,目前这种结构的键盘应用还相当普遍,这种键盘的缺点是每个键占用一根I/O口线,这样随着键盘数量的增加I/O端口会不足。因此独立式按键结构的键盘只适应于键盘数量较少的应用系统。2、矩阵式键盘矩阵式键盘也称行列式键盘。在系统所需按键数较多时,采用此种结构式键盘。行列式键盘由键盘开关矩阵、输出(行线)锁存器、输入(列线)缓冲器三部分组成。在行列式键盘有以下几种结构形式。第一种是直接使用I/O口构成的行形式键盘电路。MCU的I/O口输出具有锁存器,输入具有缓冲器,因此应用I/O口直接与行线、列线相连就可以组成行列式键盘。第二种是利用I/O口和译码器构成的行列式键盘电路。第三种是利用串行口和移位寄存器构成的行列式键盘电路。尽管构成的行列式键盘结构形式不一样,但它们的工作原理是相同的。按键扫描方式有以下3种:第一种程控扫描方式。CPU从执行程序就开始了键盘的扫描,等待来自键盘的命令。这种程控扫描方式,适用单任务多分支结构。第二种定时扫描方式。在多任务应用系统中,既要执行当前任务,又要及时接受键盘命令,定时扫描方式适应这种需要。具体做法是:在程序初始化时,先对定时/计数器进行设置,使其每10ms中断一次,每次中断,CPU将去扫描一次键盘,若扫描到有键按下,CPU将对键盘输入作相应的处理。第三种中断扫描方式。当有键按下时,产生中断请求,CPU响应中断,在中断服务程序扫描键盘后做相应处理。这是多任务应用系统常用的一种方式。在这次设计中,键盘控制电路主要用于设定温度的上下限和对显示的内容进行切换等,所用按键数较少,所以使用独立式键盘,足以满足系统设计的要求。所需的一个拨动开关和三个按键分别接单片机的四个引脚即可。其电路结构如图2.6所示。图2.6独立式键盘连接图拨动开关和按键的功能如下:拨动开关:拨动开关用来决定LCD上显示的是哪一路传感器的数据:若触头接1(接地),则显示传感器1的温度数据;若触头接3(悬空),则显示传感器2的数据。按键1(S3):显示项切换键。LCD显示一个传感器的数据时,有三个数据选项,分别为当前传感器采集温度值,当前传感器设定的最高限值(TH),当前传感器设定的最低限值(TL),按S3键可以对这三个数据分别进行显示查看。按键2(S4):限值+1键。若当前LCD上显示的数据是一个传感器的最低限值或最高限值,则按下S4后该限值加1;若当前显示的是采集到的温度值,则该按键不起作用。按键3(S5):限值+1键。若当前LCD上显示的数据是一个传感器的最低限值或最高限值,则按下S4后该限值加1;若当前显示的是采集到的温度值,则该按键不起作用。2.5液晶显示电路设计本次设计中,所需要显示的数据主要有当前温度值和上下限参数,也即所需显示的数据不多,而LCD1602可以总共显示32个字符,因此,采用LCD1602完全能够满足显示要求,这就是液晶显示电路设计中采用LCD1602的缘故。2.5.1LCD1602液晶显示模块液晶显示模块以其功耗、体积小、显示内容丰富、模块化、接口电路简单等诸多优点,在电器设备、仪器、仪表中得到广泛应用。液晶显示模块分字符型和点阵型两种,前者字符型显示模块只能显示常用的字符,后者点阵型液晶显示模块除显示字符外还能显示各种图形和汉字。目前,尽管液晶显示模块种类繁多,但是其结构及控制方法是一样的。LCD1602液晶显示模块表示横向有128点,纵向有16点,可显示16×2中文字2行,每行16个字。芯片工作电压为4.5V—5.5V,最佳工作电压为5V。1602液晶显示芯片的引脚分布如图2.7所示。图2.71602液晶显示芯片引脚分布图LCD1602芯片各引脚接口说明如表2.8所示。表2.81602液晶显示模块引脚功能管脚号管脚名称电平管脚功能描述1VSS0V地电源2VDD5V正电源3VL—液晶显示偏压,为显示器对比度调整端4RSH/L寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。5R/WH/L读写信号线,高电平进行读操作,低电平进行写操作。当RS和R/W共同为低电平时可以写入指令或显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。6EH/L使能端,E为高电平跳到低电平时,液晶模块执行命令。7D0H/L双向数据线8D1H/L双向数据线9D2H/L双向数据线10D3H/L双向数据线11D4H/L双向数据线12D5H/L双向数据线13D6H/L双向数据线14D7H/L双向数据线LCD1602显示电路连接图如图2.8所示。其中VL引脚经滑动变阻器与地相连,通过调节滑动变阻器可调节液晶背光;RS引脚与单片机P1.5连接,用于控制LCD寄存器的选择;R/W引脚与单片机P1.6引脚连接,用于通过单片机对LCD进行读写控制;数据端口D0-D7则直接与单片机P3连接,用于数据的传送。图2.8LCD1602显示电路连接图2.6报警电路设计当传感器的测定值超出系统预设值时,蜂鸣器发出报警声音,同时发光二极管闪烁。提示监测人员注意,以便做出相应调整。报警电路与单片机的接口电路如图2.9所示。图2.9报警系统与单片机接口图第三章软件设计 3.1程序设计语言与软件开发环境 3.1.1程序设计语言的选用在单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。对于用惯了汇编语言的人来说,高级语言的可控性不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多问题,首先它的可读性和可维护性不强,特别是当程序没有很好标注的时候;其次就是代码的可重用性也比较的低。C语言却没有这些问题。C语言具有模块化,容易阅读和维护等优点。由于模块化,用C语言编写的程序有很好的可移植性,功能化的代码能够很方便地从一个工程移植到另一个工程,从而减少了开发的时间。用C语言编写程序比用汇编语言更符合人们的思考习惯,开发者可以更专心地考虑算法而不用费很大力气考虑一些细节问题,这样就减少了开发和调试的时间。使用C语言,程序员不必十分熟悉处理器的运算过程,这是因为很多处理器支持C编译器,这也使得用C语言编写的程序有很好的可移植性。对于大多数51系列单片机,使用C语言有如下优点:1、不需要了解处理器的指令集,也不必了解存储器结构。2、寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的寻址和数据类型等细节。3、指定操作的变量选择组合提高了程序的可读性。4、可使用与人的思维更相近的关键字和操作函数。5、与使用汇编语言编程相比,C语言的程序的开发和调试时间大大缩短。6、C语言中的库文件提供许多标准的例程,例如格式化输出、数据转换和浮点运算等。7、可实现模块化编程技术,从而可将已编制好的程序加入到新程序中。8、C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,已完成的软件项目可以很容易地转换到其他的处理器或环境中。综上所述,在本次毕业设计中,使用C语言来编写程序。3.1.2KeilC51简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行的开发51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。3.2程序流程图3.2.1主程序流程图系统程序经开始初始化之后,进入工作模式。首先,进行键盘扫描,扫描是否有按键按下,有按键按下则做出相应的响应与处理,完成设定值的输入或通道及选项的切换;没有按键按下则显示当前指定输出;按键处理完成之后,单片机会根据当前指定的通道使相应的DS18B20开始采集温度数据并完成转换,将采集到的数据发送给单片机,并由单片机将数据发送给LCD1602进行数据显示;然后进行报警检测,若判断出检测值超出设定值的范围,则报警电路的蜂鸣器响起,报警发光二极管发光,起到报警警示作用。主程序的流程图如下图3.1所示。初始化蜂鸣器、LCD初始化蜂鸣器、LCD开始扫描结果处理在LCD上显示数据两温度传感器温度是否超限?报警Y按键扫描N图3.1主程序流程图3.2.2键盘控制子程序流程图键盘控制电路主要用来设定温度上下限和切换显示选项(传感器1温度Temperature1或者传感器Temperature2,对应上限温度TH1、TH2,下限温度TL1、TL2)。程序开始后,首先检测拨动开关所对应引脚为高电平还是低电平,若为低电平,则接通温度传感器1对应通道,LCD上显示1通道所对应的数据;若为高电平,则接通2通道,LCD上显示2通道所对应的数据。然后检测是否有按键按下,若有键按下,则检测是哪个键按下,若为1键,则当前通道对应的模式值加1,若2键按下,则当前通道的温度上限值或下限值加1;若3键按下,则当前通道的温度上限值或下限值减1。其流程图如下图3.2所示。开始开始初始化按键扫描拨动开关接低电平?按键1按下?按键1处理程序YY按键2按下?YN按键2处理程序按键2按下?YN按键3处理程序按键1按下?按键1处理程序Y按键2按下?YN按键2处理程序按键2按下?YN按键3处理程序N结束NN图3.2键盘控制流程图3.2.3温度采集子程序流程图温度采集电路用于温度数据的采集,在初始化之后,等待单片机发送的数据采集指令,在单片机发送采集指令后,等待DS18B20响应,DS18B20做出响应后就会进行一次温度数据的采集,DS18B20所要采集的温度信号是模拟信号,需要在片内经过模数转换后再送给单片机进行必要的处理,然后调用显示子程序完成数据的显示,至此结束程序。其工作流程图如图3.3所示。开始开始初始化是否有数据采集指令?YN数据采集片内数据转换调用显示子程序线束图3.3温度采集程序流程图3.2.4LCD1602显示子程序流程图LCD1602显示电路用于显示温度值和时间的显示,其具体工作流程为先由单片机向其发送指令,即向LCD1602写指令,设置第一行显示位号,也即显示地址,然后由单片机向其发送写数据指令,同样,LCD1602接到写数据指令后,由单片机向其写入数据,进而显示数据;同样,也要设置第二行显示位号,在接到单片机发送的写数据指令后,写入数据进行显示。其程序流程图如图3.4所示。开始开始初始化设第一行显示位号写数据显示第一行设第二行显示位号写数据显示第二行线束图3.4LCD1602显示电路流程图3.2.5报警电路子程序流程图报警电路是在数据采集电路采集到的温度值超出设定值的范围时,蜂鸣器响起起到报警作用,其具体工作流程为,先由数据采集电路进行温度数据的采集,然后,将采集到的数据送给单片机进行分析和处理,同时,单片机调用LCD1602显示子程序,将数据传送给显示电路进行显示;在单片机处理分析完信号作出判断,若做出判断的结果是检测值是超出设定值的上下限,则单片机发送信号使报警电路中蜂鸣器鸣叫,同时发光二极管发光,实现报警功能;若检测值没超出设定范围,则报警电路不工作。其程序流程图如下图3.5所示。开始开始读取传感器1温度并转换是否超限?报警Y读取传感器2温度并转换N是否超限?报警Y结束N图3.5报警电路流程图第四章仿真测试本次仿真采用Keil和Proteus相结合的方式,Keil环境下C语言编程简单,且调试方便。而在Proteus下进行仿真形象、直观,两者结合,相得益彰。仿真大致经过以下步骤:在Keil下编写程序,并进行调试,并生成十六进制文件(HEX文件)。在Proteus下新建文件,并在元件库中找到相应的元件如单片机、DS18B20等添加到文件中,并按照原理图连接好电路。将Keil生成的十六进制文件加载到Proteus单片机中,具体过程:source——Add/Removesourcefiles…——打开Add/RemoveSourceCodeFiles对话框——添加Hex文件——点击“OK”。按下Proteus左下角的按钮进行仿真,并根据仿真结果去修正程序和电路图。4.1Proteus简介Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:1、实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2、支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。3、提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision4、MPLAB等软件。4、具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。4.2仿真结果仿真电路图如图4.1所示。图4.1仿真电路图仿真结果如图4.2所示。图4.2仿真结果当按下最上面一个按键(相应于原理图中的S3)时,会切换LCD显示的温度数据项,如图4.3所示。图4.3温度传感器1上限温度值(TH1)可见温度传感器1的高温限值为35℃,继续按S3还可以查看传感器1最低限值。此时按下第二个按键(S4)时,限值将会增加1℃;按下第三个按键(S5)时,限值将会减1℃。当拨动开关断开时,将会显示温度传感器2的温度数据。如图4.4所示。图4.4温度传感器2实时温度值当温度传感器2温度为27℃,而把传感器器2上限调至低于其温度值时(26℃),如图4.5所示,则报警电路将报警,发光二极管发光,蜂鸣器鸣叫,如图4.6。图4.5传感器2温度上限值图4.6报警电路报警由仿真结果可知,程序和仿真电路可以实现各项预期的功能,并且工作良好。这为后期Altium中原理图的绘制,PCB板的制作提供了重要的依据。总结毕业设计是毕业前的重要环节,也是我们毕业生对于大学所学知识的一次自我检验。因此,它要求我们从最初的选题,开题、构思、绘图、编写程序、仿真直到完成设计等过程都必须认认真真,踏踏实实地对待。毕业设计过程中查找资料,导师指导,同学交流,编写程序,系统仿真调试等,都是对自己知识库的一次补充,一次自我提升的机会。本论文题目是“基于单片机的多点温度采集系统”,系统以STC89C52单片机为核心,主要由LCD数码显示电路、键盘控制、数字温度采集模块、报警系统组成。系统通过两路数字温度传感器采集环境的温度,并将采集的数据送入单片机中。在STC89C52单片机中,对两路传感器送过来的数据进行处理和分析,并将数据通过LCD显示电路显示。若测定值超过设定值,则通过报警电路进行报警,从而引起相关人员的注意,从而达到多点温度采集、监测的目的。在设计中,温度传感器选择数字式温度传感器DS18B20,从而使电路设计起来简单了许多。经过老师的指点和个人的努力,最终完成了仿真和实物的制作,并且都运行正常由于水平有限和时间等原因,本设计实现的功能还很有限,不足之处也在所难免,如使用了5V稳压电路,而没有直接使用USB接口标准5V电源,使设计较为麻烦;蜂鸣器驱动电路没有使用三极管,导致蜂鸣器声音较小;没有将多个DS18B20串联到单总线上而是使用了两个单独的引脚,导致程序比较复杂,可扩展性较差等。在日后的工作和学习中,我将不断努力,不断完善此设计,使其功能更加强大。致谢经过近半年的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论