基于单片机的高精度温控系统设计说明_第1页
基于单片机的高精度温控系统设计说明_第2页
基于单片机的高精度温控系统设计说明_第3页
基于单片机的高精度温控系统设计说明_第4页
基于单片机的高精度温控系统设计说明_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE28 / NUMPAGES32 工业学院毕 业 设 计设计题目:基于单片机的高精度温控系统设计姓 名 乔 磊 学 号 081203205 院 (系) 电气与电子工程学院 专 业 电子信息科学与技术 指导教师 西 曲 2011年6月11日目 录 TOC o 1-3 h z u HYPERLINK l _Toc325056936摘要 PAGEREF _Toc325056936 h IHYPERLINK l _Toc325056937Abstract PAGEREF _Toc325056937 h IHYPERLINK l _Toc3250569381 前言 PAGEREF _Toc325

2、056938 h 1HYPERLINK l _Toc3250569391.1高精度温控系统发展与应用 PAGEREF _Toc325056939 h 1HYPERLINK l _Toc3250569401.2 温控系统的方案 PAGEREF _Toc325056940 h 1HYPERLINK l _Toc3250569411.2.1 模拟温度传感器方案 PAGEREF _Toc325056941 h 1HYPERLINK l _Toc3250569421.2.2 数字温度传感器方案 PAGEREF _Toc325056942 h 2HYPERLINK l _Toc3250569431.3 本

3、温度控制系统的初步思想 PAGEREF _Toc325056943 h 3HYPERLINK l _Toc3250569442高精度温控系统的基本原理 PAGEREF _Toc325056944 h 4HYPERLINK l _Toc3250569452.1单片机基本原理概述 PAGEREF _Toc325056945 h 4HYPERLINK l _Toc3250569462.2STC89C52单片机引脚排列与功能介绍 PAGEREF _Toc325056946 h 4HYPERLINK l _Toc3250569472.2 DS18B20温度传感器检测技术原理 PAGEREF _Toc32

4、5056947 h 6HYPERLINK l _Toc3250569482.2.1 DS18B20的性能特点: PAGEREF _Toc325056948 h 7HYPERLINK l _Toc3250569492.2.2 DS18B20的测温原理 PAGEREF _Toc325056949 h 7HYPERLINK l _Toc3250569502.2.3 DS18B20与单片机的接口电路 PAGEREF _Toc325056950 h 9HYPERLINK l _Toc3250569513 系统的硬件组成电路设计 PAGEREF _Toc325056951 h 10HYPERLINK l

5、_Toc3250569523.1 时钟电路 PAGEREF _Toc325056952 h 10HYPERLINK l _Toc3250569533.2 STC89C52的复位电路 PAGEREF _Toc325056953 h 11HYPERLINK l _Toc3250569543.3 LED显示模块 PAGEREF _Toc325056954 h 11HYPERLINK l _Toc3250569553.4 单总线数字温度传感器DS18B20检测电路 PAGEREF _Toc325056955 h 12HYPERLINK l _Toc3250569563.5 驱动电路 PAGEREF _

6、Toc325056956 h 12HYPERLINK l _Toc3250569573.6 系统总硬件设计 PAGEREF _Toc325056957 h 13HYPERLINK l _Toc3250569584、软件设计 PAGEREF _Toc325056958 h 14HYPERLINK l _Toc3250569594.1主程序流程图 PAGEREF _Toc325056959 h 14HYPERLINK l _Toc3250569604.2主程序设计 PAGEREF _Toc325056960 h 15HYPERLINK l _Toc3250569614.3 DS18B20温度传感器

7、初始化 PAGEREF _Toc325056961 h 21HYPERLINK l _Toc3250569624.3.1读出温度子程序 PAGEREF _Toc325056962 h 21HYPERLINK l _Toc3250569634.3.2 DS18B20的写读时序 PAGEREF _Toc325056963 h 22HYPERLINK l _Toc3250569644.4 DS18B20数据采集程序的设计 PAGEREF _Toc325056964 h 23HYPERLINK l _Toc3250569654.5调试 PAGEREF _Toc325056965 h 25HYPERLI

8、NK l _Toc325056966结束语 PAGEREF _Toc325056966 h 26HYPERLINK l _Toc325056967致 PAGEREF _Toc325056967 h 27HYPERLINK l _Toc325056968参考文献 PAGEREF _Toc325056968 h 28摘 要随着嵌入式技术、计算机技术、通信技术的不断发展与成熟。控制系统以其直观、方便、准确、适用广泛而被越来越广泛地应用于工业过程、空调系统、智能楼宇等。恒温控制系统,控制对象是温度。温度控制在日常生活与工作领域应用的相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制,而以往温度控制

9、是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。本项目设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:被控温度围可以调整,初始围5=T=38。如果被测温度在5度到38度之间,则既不加热,又不报警;如果被测温度小于5度,则既加热,又报警;如果被测温度大于38度,则报警,降温。 数码管显示温度,温度精确一位小数。关键词:数字温度计、单片机、温度传感器AbstractWith the embedded technology, computer technology, communication technology continues to evo

10、lve and mature. Control system with its intuitive, convenient, accurate, widely applicable and is more widely used in industrial processes, air-conditioning systems, intelligent buildings. Constant temperature control system,control temperature. Temperature control in daily life and work application

11、s in thefield of a wide range of temperature control such as the greenhouse, pond,fermentation tank, power supply and other places, the past, temperature control isdone by hand and not enough attention, in fact, in many places the temperature need to be monitored prevent accidents. The project desig

12、n is the temperature real-time monitoring and control,temperature control system designed to achieve basic temperature control functions: charged with the temperature range can be adjusted, the initial range 5 =T = 38. If the measured temperature of 5 degrees to 38 degrees, neither heatingnor alarm;

13、 if the measured temperature is less than 5 degrees, both the heatingand alarm; if the measured temperature is greater than 38 degrees, then the alarmcooling.Digital display of temperature, temperature accurate to one decimal.Key words: digital thermometer, microcontroller, temperature sensor 1前 言1.

14、1高精度温控系统发展与应用随着现代计算机和自动化技术的发展,作为各种信息的感知、采集、转换、传输相处理的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,温度控制系统广泛应用于社会生活的各个领域 ,如家电、汽车、材料、电力电子等 ,常用的控制电路根据应用场合和所要求的性能指标有所不同 , 在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。国外度计算机控制技术的发展善计算

15、机的发展最早可以追溯到上个世纪的40年代,但将计算机用于环境控制则开始于20世纪60年代。20世纪80年代初诞生了第一批温室控制计算机,此后温度计算机控制与管理技术便函先在发达国家得到广泛应用,后来各发展中国家也都纷纷引进,开发出适合自己的系统。数字式温湿度传感器:就是能把温度物理量和湿度物理量,通过温、湿度敏感元件和相应电路转换成方便计算机、PLC、智能仪表等数据采集设备直接读取得数字量的传感器。我国南方温度严热而漫长,只有大力推广大棚蔬菜的种植来满足人们日常生活对蔬菜的需要。随着人们生活水平的日益增长,对蔬菜的要求也较高,对大棚蔬菜的温度控制就是一个重要因素。温度过高,蔬菜就会停止生长或者

16、糜烂。应用自动控制和电子计算机实现农业生产和管理的自动化,是农业现代化的重要标志之一。在信息化程度越来越高的今天,担当信息处理与交换重任的机房是整个信息网络工程的数据传输中心、数据处理中心和数据交换中心。为保证机房设备正常运行与工作人员有一个良好的工作环境,对机房温湿度的监测是必不可少的,合理正常的温湿度环境是机房设备正常运行的重要保障。温湿度监测除用于机房监测外,还可以广泛应用于如生物制药、无菌室、洁净厂房、电信银行、图书馆、档案馆、文物馆、智能楼宇等各行各业需要温湿监测的场所和领域。随着我国经济的高速发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术

17、具有重大意义。发电厂锅炉的温度必须控制在一定的围之;许多化学反应的工艺过程必须在适当的温度下才能正常进行。炼油过程中,原油必须在不同的温度和压力条件下进行分流才能得到汽油、柴油、煤油等产品;没有合适的温度环境,很多工业生产根本无从谈起。可见研究温度的测量具有重要的理论意义和推广价1.2温控系统的方案1.2.1 模拟温度传感器方案该案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、LCD显示电路、集成功率放大器、报警器组成。该方案采用模拟温度传感器AD590作为测用运算放大器交给信号进行适当的放大,最后通过模数转换器将模拟模拟信号转换成数据信号,传给单片机,单片机将温度值进行处理之后

18、用LCD显示,当温度值超过设定值时开始报警。如图1-1所示:图1-1 温度测量系统方案框图数字温度传感器方案论证:采用模拟温度传感器,转换结果需要经过运算放大器传给处理器。它控制虽然简单,但电路复杂,不容易实现对多点温度测量和监控。由于采用了多个分立元件和模数转换器,不容易出现误差,测量结果不是很准确。1.2.2 数字温度传感器方案该方案使用了STC89C51单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,通过键盘模块对温度上、下限设置。显示电路采用LED模块,如图1-2所示:图1-2 温度测量系统方案框图数字温度传感器方案的论证:采用智能温度传感器DS18B20,它直接输入

19、数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度。DS18B20 可以直接读出被测温度值,支持多点测温。而且采用3 线制与单片机相连,减少了外部硬件电路,具有低成本和易使用的特点。 DS18B20 是Dallas 半导体公司的数字化温度传感器,它是一种支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。一线总线将独特的电源和信号复合在一起,并仅使用一条线,每个芯片都有唯一的编码,支持联网寻址,简单的网络化的温度感知,零功耗等待等特点。综上所述数字温度传感器方案最适合本实验

20、。1.3 本温度控制系统的初步思想本系统控制核心芯片选用STC89C52单片机;测温电路选用了美国DALLAS公司生产的单线总线数字式温度传感器DS18B20;数字显示电路采用4位LED共阳极数码管实现。电源部分采用5V电压供系统使用。单片机由外接11.0592MHz标准晶振提供时钟电路。选用89S52单片机为中央处理器,通过温度传感器DS18B20对室的温度进行实时精确测量,将采集到的温度信号传输给单片机,再由单片机控制LED显示器,并比较采集温度与设定温度是否一致,然后驱动继电器加热或降温对温度进行处理,从而实现对温度温度在某一围进行控制。温度的设定部分,采用3个键盘设计,键盘包括状态选择

21、键、温度加、温度减,。三个独立按键,分别设置,加温和降温三个功能,以实现对各种环境温度的调整。加热模块工作以后通过电暖器,热得快,空调等方式实现温度的升高,降温模块工作以后通过电扇,空调,制冷设备等方式实现温度降低,以达到对温度进行控制的目的。对于温度控制,采用单片机STC89C52组成的自动控制系统,其系统硬件总体方框图如1-3图所示:图1-3 硬件总体方框图2高精度温控系统的基本原理2.1单片机基本原理概述STC89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,STC89C52 提供以下功能标准:8K字节Flash闪速存储器,256字节部RAM,32个I/O 线个16位

22、定时器/计数器,一个6向量两极中断结构,一个全双工串行通信口,片振荡器与时钟电路2。同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口与中段系统继续工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它部件工作直到下一个硬件复位。2.2STC89C52单片机引脚排列与功能介绍 STC89C52单片机有3种不同的封装,即PDIP、PLCC和TQFP,其有效引脚为40条,现以PDIP(双列直插式,见图2-1)封装为例简述各引脚功能。 图2-1 单片机引脚排列图1 主电源引脚Vcc(40脚):直流电

23、源供电电压45。Vss(20脚):电源接地端。2 振荡器电路外接晶振引脚XTAL1(19脚)、XTAL2(18脚):当使用片振荡器的时钟电路方式时,电路接法如图2-2所示,C1、C2为微调电容,通常取2030pF,以保证振荡器电路的稳定性与快速性,同时要求在设计电路板时,晶振和电容应尽量靠近单片机芯片,以减小分布电容所引起对振荡电路的影响。图2-3为使用外部振荡器的时钟电路方式,使用该时钟电路方式时,高低脉冲电平持续时间应不短于20ns,否则工作不稳定。 图2-2 振荡器的时钟电路 图2-3 外振荡器的时钟电路3 多功能I/O接口引脚P0口(3239脚):P0口是一个8位漏极开路并行双向I/O

24、端口。当它作为通用I/O接口时每个引脚须外接上拉电阻。当作输出口时,每个引脚能以吸收电流的方式驱动8个LSTTL负载;当作为输入口时,须首先将引脚的输出锁存器置1。P0口在系统需要功能外扩展时,可用作访问外部程序存储器和数据存储器时的低8位地址线/数据总线的分时复用线,在该模式工作下,引脚不用外接上拉电阻。P1口(18脚):P1口是一个接上拉电阻的8位并行双向I/O端口。它可作为通用I/O口,当作输出口时,每个引脚可驱动4个LSTTL负载;当作输入口时,须首先将引脚的输出锁存器置1。在FLASH并行编程和校验时,P1口可输入低字节地址信息。在串行编程和校验时:P1.5(6脚):MOSI(串行指

25、令输入);P1.6(7脚):MISO(串行数据输出);P1.7(8脚):SCK(串行移位脉冲控制端)。P2口(2128脚):P2口是一个接上拉电阻的8位并行I/O端口,它可作为通用I/O口,作输出口时,每个引脚可驱动4个LSTTL负载,用作输入口时,须首先将引脚的输出锁存器置。P2口在系统外扩展时,可以用作访问外部程序存储器和数据存储器的高8位地址总线。在FLASH存储器并行编程和校验时,P2口可输入高字节地址信息,P2.6、P2.7作控制位。P3口(1017脚):P3口具有部上拉电阻的8位双向并行端口,它可以作为通用I/O口,作输出口时,每个引脚可驱动4个LSTTL负载,用作输入口时,须首先

26、将引脚的输出锁存器置1。在FLASH存储器编程和校验时,P3.3、P3.6、P3.7可作控制位。P3口还具有第二种功能,如下所示。P3.0:RXD(串行口输入端);P3.1:TXD(串行口输出端);P3.2:INT0(外部中断0信号输入端);P3.3:INT1(外部中断1信号输入端);P3.4:T0(定时器/计数器0外部计数脉冲输入端);P3.5:T1(定时器/计数器1外部计数脉冲输入端);P3.6:WR(外部数据存储器的写选通);P3.7:RD(外部数据存储器的读选通);4 复位、控制和选通引脚RST(9脚):单片机复位输入端,高电平有效。在单片机上电后,振荡器稳定有效运行的情况下,若RST

27、端脚能维持两个机器周期(24个振荡周期)以上的高电平,则可使单片机系统复位有效(复位有效时,片各特殊功能寄存器状态参见表4.1)。当看门狗定时器WDT溢出输出时,RST端脚将输出长达98个振荡周期的高电平。EA/VPP(31脚):双功能引脚,EA为访问部或外部程序存储器的选择信号端,当EA接地(低电平)时,CPU只执行片外程序存储器中的程序;当EA接VCC(高电平)时,CPU首先执行片程序存储器中的程序(地址单元从00000FFF),然后自动转向执行片外程序存储器中的程序(地址单元从1000FFFF)。VPP为片FLASH存储器并行编程时的编程电压,一般用DC12加入该引脚。ALE/PROG(

28、30脚):地址锁存允许/编程脉冲信号端,双功能引脚。当CPU访问外部程序存储器或外部数据存储器时,该引脚提供一个ALE地址允许信号(由正向负跳变),将低8位地址信息锁存在片外的地址锁存器中。在单片机的FLADH存储器并行编程时,该引脚作为编程负脉冲PROG的输入端。除上述两种情况外,在正常操作状态下,该引脚端输出恒定频率的脉冲,其频率为晶振频率的1/6,可用做外部定时或其他触发信号。应当注意的是,CPU每次访问外部RAM时,即执行MOVX类指令,都要丢失一个ALE脉冲。如果需要,可对特殊功能寄存器区的地址为8EH单元的第0位置1,则可以禁止ALE操作输出,但在使用MOVC或MOVX指令时,AL

29、E仍然有效,禁止位不影响对外部存储器的访问。PSEN(29脚):该引脚为外部程序存储器读选通信号,低电平有效。当单片机访问外部程序存储器读取与执行指令代码时,在每个机器周期均产生两次有效的PSEN信号,但在执行片程序存储器读取指令码时不产生PSEN信号。在读写部RAM单元的数据时,亦不产生PSEN信号18,19。2.2 DS18B20温度传感器检测技术原理DS18B20是美国DALLAS公司生产的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。可以在三根线上同时并联多个温度传感器,每台分机上可以连接多根电缆,每根电缆上可以并联几十个点,构成串行总线工作方式。由于

30、18B20芯片送出的温度信号是数字信号,因此简化了A/D转换的设计,提高了测量效率和精度;并且芯片的ROM中存有其唯一标识码,即不存在一样标识码的DS18B20,特别适合与微处理芯片构成多点温度测控系统。2.2.1 DS18B20的性能特点: 适用电压围:3.05.5V; (1) 测温围:-55+125,精度为0.5;(2) 无须外部器件,独特的单线接口仅需要一个端口引脚进行通信; (3) 多个DS18B20可以并联在唯一的三线上,实现多点组网功能;(4) 零待机功耗;(5) 用户可定义的EEPROM,设定的报警温度存在非易失存储器中;(6) 报警搜索命令识别并标志超过程序限定温度(温度报警条

31、件)的器件;(7) 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625;(8) 负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 图2-4 DS18B20引脚分布图引脚定义:1DQ为数字信号输入/输出端; 2GND为电源地; 3VDD为外接供电电源输入端(在寄生电源接线方式时接地)。2.2.2 DS18B20的测温原理DS18B20的测温原理如图2-5所示。用一个高温度系数的振荡器确定一个门周期,部计数器在这个门周期对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于55的一个值。如果计数器在门周期结束前到达0,则温

32、度寄存器的值增加,表明温度大于55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期未结束,将重复这一过程。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器达到被测温度值。图2-5 DS18B20测温原理图应该注意的是:由于DS18B20单线通信功能是时分完成的,它严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令

33、处理数据。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待1660us左右,后发出60240us的低脉冲,主CPU收到此信号表示复位成功。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625/LSB形式表示。对应的温度计算:当符号

34、位S=0时,表示测得的温度值为正值,可直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变为原码,再计算十进制值。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。DS18B20温度值格式表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 000

35、0 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H2.2.3DS18B20与单片机的接口电路DS18B20可以采用电源供电方式(如图2-6),此时DS18B20的1脚接地,2脚作为信号线,3脚接+5V电源。图2-6 DS18B20采用电源供电方式当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启

36、时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。3 系统的硬件组成电路设计系统的硬件组成部分包括:主控制器STC89C52单片机、温度传感器DS18B20、四位LED显示电路、加热、降温、报警装置等构成。STC89C52连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图焊接电路板。3.1 时钟电路STC89C52芯片部有一个高增益反向放大器,用于构成震荡器。反向放大器的输入端为XTAL1,输出端为XTAL2。在TXAL1和XTAL2两端跨接由石英晶体与两个电容构成的自激震荡器,如图3-1所示

37、。电容器C1和C2取30pF,选用不同的电容量对震荡频率有微调作用。但石英晶体本身的标定频率才是单片机震荡频率的决定因素。图 3-1 时钟电路 时钟电路中,两个电容都选择30pF的电容,电容各一端接与晶振相连,各一端接地。选择的晶振是频率为12MHZ。此模块就是产生像时钟一样准确的振荡电路。3.2 STC89C52的复位电路STC89C52单片机通常采用上电自动复位和开关手动复位两种方式。本系统采用上电复位电路,如图3-2所示,所谓上电复位,是指单片机只要一上电,便自动地进入复位状态。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。图 3-2 复位电路复位电路的基本功能是:系统

38、上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降等问题,而其调整 RC 常数改变延时会令驱动能力变差。3.3 LED显示模块用STC89C52的P0口作为数据线,用P2.1、P2.2、P2.3分别作为LCD的RS 、R/W、E。其中E是下降沿触发的片选信号,连接P2.3,R/W是读写信号,连接P2.2,RS是寄存器选择信号,连接P2.1。如图3-3。图3-3 LED显示模块VEE用连接一阻值为10K的电阻,主要用于

39、调节对比度的调整。接高电源时对比度最低,接低电源时,对比度最高。对比度过高时,会产生“鬼影”。因此连接一10K的电阻用以调整。当P0口作为I/O用时需要上拉电阻,如图3.5接一排阻,用于上拉。3.4 单总线数字温度传感器DS18B20检测电路DQ 为数据输入/输出引脚,连接P3.6。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源,GND为地信号;VCC为电源信号。图3-4为DS18B20检测电路。图3-4 检测电路3.5 驱动电路系统使用的是直流马达,包含周围磁场、电刷、整流子等元件,电刷和整流子將外部所供应的直流电源,持续地供应给转子的线圈,並适时地改变电流的方向,使转子能以

40、同一方向持续旋转。直流马达的优点有速度调整容易,启动转矩较大等,但是电刷与整流子保养维修不易。直流马达广泛的用在消费电子产品与玩具,如电动刮胡刀、录音机、CD唱机等,而大输出功率的直流电动机则是用在电车,快速电梯,工作母机等。图3-5 驱动电路3.6系统总硬件设计 首先对硬件系统18B20定义端口为P3.6和P1口控制液晶LED的显示,定义端口P1.5为马达控制端口,P1.7为喇叭控制端口。首先对温度采集,将采集到的温度转换数字,采集到的温度由LCM液晶显示屏显示。再将采集到的温度所属软件设置的哪个围,而控制P1.5的电平输出。电路原理图用Protues7.7电路仿真软件绘制而成。用Protu

41、es7.7电路仿真软件软件绘制电路原理图方便,快捷。Protues7.7电路仿真软件有丰富的元件库,智能的器件搜索,智能化的连线,可输出高质量的图纸。电路原理图3-6清晰明了。图3-6 总电路原理图4、软件设计4.1主程序流程图 DS18B20是可编程器件,在是使用时必须经过以下三个步骤:初始化、写操作、读操作。每一次读写操作之前都要先将DS18B20初始化复位,复位成功后才能对DS18B20进行预定的操作,三个步骤缺一不可。在编写相应的应用程序时,必须先掌握DS18B20的通信协议和时序控制要求。 由于DS18B20是利用一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS1

42、8B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议由几种单线上信号类别型组成:复位脉冲,存在脉冲,写0,写1,读0和读1。主程序流程图如图4-1所示:图4-1 主程序流程图4.2主程序设计#include #includeDS18B20.h #define uint unsigned int #define uchar unsigned char #define SET P3_1 #define DEC P3_2 #define ADD P3_3 #define BEEP P3_7 bit shanshuo_st; bit beep_st; sbit DIAN=P17; uch

43、ar x=0; signed char m; uchar n; uchar set_st=0; signed char shangxian=38; signed char xiaxian=5; uchar LEDData=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xff;void Delay(uint num) while(-num); void InitTimer(void) TMOD=0 x1; TH0=0 x3c; TL0=0 xb0; void timer0(void) interrupt 1 TH0=0

44、 x3c; TL0=0 xb0; x+; void int0(void) interrupt 0 EX0=0; if(DEC=0&set_st=1) shangxian-; if(shangxianxiaxian) shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian-; if(xiaxian99) shangxian=99; else if(ADD=0&set_st=2) xiaxian+; if(xiaxianshangxian) xiaxian=shangxian; void check_wendu(void) uint a,b,c; c=

45、ReadTemperature()-5; a=c/100; b=c/10-a*10; m=c/10; n=c-a*100-b*10; if(m99)m=99;n=9; Disp_init() P1=0 xbf; P2=0 xf7; Delay(200); P2=0 xfb; Delay(200); P2=0 xfd; Delay(200); P2=0 xfe; Delay(200); P2=0 xff; Disp_Temperature() P1=0 xc6; P2=0 xf7; Delay(300); P1=LEDDatan; P2=0 xfb; Delay(300); P1=LEDData

46、m%10; DIAN=0; P2=0 xfd; Delay(300); P1=LEDDatam/10; P2=0 xfe; Delay(300); P2=0 xff; Disp_alarm(uchar baojing) P1=0 xc6; P2=0 xf7; Delay(200); P1=LEDDatabaojing%10; P2=0 xfb; Delay(200); P1=LEDDatabaojing/10; P2=0 xfd; Delay(200); if(set_st=1) P1=0 x89; else if(set_st=2) P1=0 xc7; P2=0 xfe; Delay(200

47、); P2=0 xff; void Alarm() if(x=10)beep_st=beep_st;x=0; if(m=shangxian&beep_st=1)|(mxiaxian&beep_st=1) BEEP=0; else BEEP=1; void main(void) uint z; InitTimer(); EA=1; TR0=1; ET0=1; IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2) set_st=0; if(set_st=0) EX0=0; EX1=0; check_wendu(); Disp_Tempera

48、ture(); Alarm(); else if(set_st=1) BEEP=1; EX0=1; EX1=1; if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st)Disp_alarm(shangxian); else if(set_st=2) BEEP=1; EX0=1; EX1=1; if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st)Disp_alarm(xiaxian); 4.3 DS18B20温度传感器初始化主机总线 to 时刻应先向DS18B20送出(TX)发送一复位脉冲(最短

49、为 480us 的低电平信号即由主机将数据线拉低并保持480us960us) ,接着在 tl 时刻释放总线并进入接收状态(RX),DSl820 在检测到总线的上升沿之后等待 1560us,接着 DS1820 在 t2 时刻发出存在脉冲(低电平,持续 60240 us) 如图4-2中虚线所示。图4-2 DS18B20初始化DQ状态时序图4.3.1读出温度子程序读出温度子程序的主要功能读出RAM中的9个字节移入温度暂存器,启动温度转换。由于温度测量只有一只DS18B20,因此我们在读出温度时并不进行CRC校验。其程序流程图如图4-3所示。图4-3 读温流程图4.3.2 DS18B20的写读时序图4

50、-4读写时隙时序图写时序:对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。当主机总线 t0 时刻从高拉至低电平时,就产生写时间隙,从 t0时刻开始 15us 之应将所需写的位送到总线上 。DSl820 在 t0后1560us间对总线采样。若低电平 写入的位是 0;若高电平 写入的位是 1。连续写 2 位间的间隙应大于 1us。DS18B20写出子程序流程图4-5a)所示。读时序:主机总线t0时刻从高拉至低电平时,总线只需保持低电平1us,之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。t2距t0为15us,也就是说,t2时刻前主机必须完成读位,并在 D

51、S18B20读出子程序流程图4-5 b)所示。图4-5 a)DS18B20写入子程序流程图 b) DS18B20读出子程序流程图4.4 DS18B20数据采集程序的设计#include #define DQ P3_6 void Delay_DS18B20(int num) while(num-); void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay_DS18B20(8); DQ=0; Delay_DS18B20(80); DQ=1; Delay_DS18B20(14); x=DQ; Delay_DS18B20(20); unsigned

52、 char ReadOneChar(void) unsigned char i=0; unsigned char dat=0; for(i=8;i0;i-) DQ=0; dat=1; DQ=1; if(DQ) dat|=0 x80; Delay_DS18B20(4); return(dat); void WriteOneChar(unsigned char dat) unsigned char i=0; for(i=8;i0;i-) DQ=0; DQ=dat&0 x01; Delay_DS18B20(5); DQ=1; dat=1; unsigned int ReadTemperature(v

53、oid) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0 xCC); WriteOneChar(0 x44); Init_DS18B20(); WriteOneChar(0 xCC); WriteOneChar(0 xBE); a=ReadOneChar(); b=ReadOneChar(); t=b; t=8; t=t|a; tt=t*0.0625; t=tt*10+0.5; return(t); 4.5调试主程序的功能是:启动DS18B20测

54、量温度,将测量值与给定值进行比较,若测得温度小于设定值,则进入加热阶段,置P0.1为高电平,这期间继续对温度进行监测,直到温度在设定围,置P0.1为低电平断开可控硅,关闭加热器,等待下一次的启动命令。当测得温度大于设定值,则进入降温阶段,则置P0.2为高电平,这期间继续对温度进行监测,直到温度在设定围,置P0.2为低电平断开,关闭风扇,等待下一次的启动命令。第一次接电调试,设置温度上限为38摄氏度,温度下限为5摄氏度。加热后,温度有时超过38摄氏度却不报警,后经检查,发现是进位C没有清0,于是在如下写入程序中加入进位C清零,便排除了这个异常。MOV R3,#6DJNZ R3,$RRC AMOV

55、 P1.0,CMOV R3,#23DJNZ R3,$SETB P1.0NOPDJNZ R2,WR1RET; 读DS18B2再经实际接电调试,一切运行正常。加热到38摄氏度时,红灯亮起,自动断电,而低于5摄氏度时,绿灯亮起,开始加热。结束语本次论文是基于单片机的温控系统,温控系统就目前而言在生产生活领域应用广泛,在将来的很长一段时间将有很大的发展潜力,相关应用也将层出不穷。本文先从温控系统,并指出其优缺点。接下来介绍温控系统的原理与红外通信温控系统设计的方案。全文按照提出问题,分析问题,解决问题,验证设计的思路分别列为四章容进行详细述:第1章简要介绍了温控系统的背景、应用与发展。第2章主要讲述数

56、字温度传感器物理特性和温控系统的设计原理,包括单片机原理、DS18B20原理等。在此基础上,第3章,介绍了单片机各管脚的功能与硬件设计方法。第4章具体阐述了基于单片机的温控系统的软件设计方法,最后给出了测试的效果图测试了该系统的性能。写该论文前在keil软件上进行了进行C程序的设计、编译,并将输出的的hex文件通过STC_ISP_V479下载到单片机中,最后在单片机开发板上进行调试,经硬件调试证明本设计是正确的。测试中,我们用一个DS18B20作为温度采集器输出到单片机进行处理并显示温度,温度过高过低,采取相应动作,上电后调试达到预期目的,设计完全成功。本文给出的设计思想也适用于其他基于单片机

57、的系统设计。我做这次毕业设计的过程中碰到了一些困难。首先,本次设计是采用keil与STC_ISP_V479软件来完成的。因此须对这两种软件的使用要熟悉。其次,由于在显示过程中参数设置不够恰当,导致单片机无法稳定显示温度值。通过此次毕业设计我的动手能力得到了极大的加强。同时我深刻的认识到思维严谨与实践的重要性,在以后的学习中我将要加强理论与实际的结合。致 经过三个月的学习和试验,终于完成了我的毕业设计。看着自己辛勤的成果,心里非常高兴。在这期间遇到了很多从来都没有遇到过的问题,但是通过自己的努力和老师、同学的帮助最后把它们一一解决了。其中在西曲老师的精心安排和指导下,对题目有了较深入的理解,也尝到了电路系统设计的艰辛。在本次设计中我在各个环节中都做到了深入实际,动手实践,不仅对我们学过的理论知识进行了一次全面的复习和巩固,而且还在电子电路、单片机等方面拓展了我们的知识面,为将来的实际工作打下良好的基础,特别是在分析问题,解决问题的方面得到了良好的锻炼机会,受益匪浅。由于本人水平和经验有限,在设计的过程中难免存在一些不足甚至一些错误,敬请各位老师和同学批评指正。最后,向我的指导教师西曲老师表示

温馨提示

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

评论

0/150

提交评论