[信息与通信]智能水温控制系统论文.doc
毕 业 设 计(论 文) 题 目:基于单片机的智能水温控制系统学 院: 计算机与电子信息学院专 业: 电子信息工程 班 级: 电子071班 学 号: 0707200136 学生姓名: 钟跃 指导教师: 谢敏副教授 2010年5月11日摘要本系统是基于单片机STC89C52为控制核心,用DS18B20采集温度,经过微控制器处理后在LCD1602上面显示出来,并且可以自由设置上限温度和下限温度,当到达上限温度是,蜂鸣器开始报警,降温继电器吸合,开始降温工作,同时红灯闪烁。当低于下限温度时,蜂鸣器开始报警,升温继电器吸合,开始升温工作,同时,黄灯闪烁。在温度正常时,只有绿灯正常发光,红灯和黄灯关闭,继电器控制系统不工作。关键词:单片机 DS18B20 LCD1602 继电器 二极管 AbstractThis system is according to single slice of machine AT89 S52 in order to control core, collect temperature with the DS18 B20, suggest in the LCD1602 tops after tiny controller processing, and can freely establish upper limit temperature and bottom to limit temperature, be arrive the upper limit temperature BE, the buzzer starts reporting to the police and reduces the heat to absorb to match and start reducing the heat a work after the electric appliances, in the meantime red light flicker.While being lower than to descend limit temperature, the buzzer starts reporting to the police and heats to absorb to match and start heating a work after the electric appliances, in the meantime, yellow light flicker.Normal in the temperature, only the green light give out light as usual, the red-light and yellow light closes, after electric appliances control system not work.Keyword:Single slice of machine DS18B20 LCD1602 after electric appliances diode目录第一章 国内外现况1第二章 总体方案2第三章 元器件简介及电路设计33.1 STC89C52单片机.53.2 LCD1602显示电路53.3 DS18B20温度传感器93.4 按键控制电路.113.5继电器控制系统.123.6 蜂鸣器报警及LED指示系统.133.7电源模块电路.153.8 protel99se163.9 本章小结17第四章 软件设计.174.1 编译开发环境174.2 主程序流程.174.3 DS18B20的程序设计204.4 键盘检测程序的设计23第五章 系统测试及误差分析.285.1 测试方法285.2 误差分析29第六章 硬件调试方法296.1 常见的硬件故障296.2 联机调试.30第七章 结论.30第八章 总结与展望31参考文献32 第一章 国内外现况分析自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。 目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。 温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面总体技术水平处于20世纪80年代中后期水平。成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。现在,我国在温度等控制仪表业与国外还有着一定的差距。温度、压力,流量和液位是四种最常见的过程变量,其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。温度控制在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。尽管温度控制很重要,但是要控制好温度常常会遇到意想不到的困难。随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。本文主要介绍单片机温度控制系统的软件设计过程,其中涉及系统结构设计、元器件的选取和控制算法的选择、程序的调试和系统参数的整定。在系统构建时选取了ATMEL公司提供的STC89C52芯片作为该控制系统的核心。温度信号由DS18B20提供。使用SSR固态继电器作执行部件。同时,具有温度数字语音播报和显示功能。系统控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性与较小的超调。该系统为一实验系统,要求系统有控制能力,实现对主要可变参数的实时监控。第二章 总体方案根据功能和指标要求,本系统可以从元件级开始设计,选用STC89C52单片机为主控机。通过扩展必要的外围接口电路,实现对烘箱温度的测量和控制。该系统以STC89C52单片机为核心,由温度传感器DS18B20,显示模块LCD1602,按键检测模块,报警指示模块,控制模块,电源模块等共同组成。在系统中,温度值及误差显示、控制参数得设置、运行及复位等功能由键盘及显示电路完成。电源模块控制模块显示模块LCD1602单片机控制核心键盘检测模块温度传感器报警及指示模块图2-1 单片机温度控制系统方案原理示意图用DS18B20采集温度,经过微控制器处理后在LCD1602上面显示出来,通过键盘检测模块可以自由设置上限温度和下限温度,并且以报警指示模块和控制模块做出反应。第三章 元器件简介及电路设计31 STC89C52单片机1)STC89C52简介 STC89C52单片机是现在最常用的单片机之一。它采用静态CMOS工艺制造,最高工作频率为24MHz,其PDIP/DIP封装如图所示。除了PDIP封装之外,还有PQFP/TQFP和PLCC/LCC等2种不同的封装,用户可以根据不同的场合进行选择。STC89C52是一种带4K字节闪烁,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图3.1 89C51引脚图单片机的主要特性有4K字节可编程闪烁存储器、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路引脚说明VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能,如下:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断0)P3.3 (外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2)单片机最小系统根据原理我们制作了如下电路,3.2 LCD1602显示电路1.简介 工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:为了表示的方便 ,后文皆以1表示高电平,0表示第电平。2.管脚功能1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.操作控制 操作控制表 操作 读状态 写指令 读数据 写数据 输入 RS=0,RW=1,E=1 RS=0,RW=0, D07=指令码,E=H脉冲 RS=1,RW=1,E=1 RS=1,RW=0, D07=数据,E=H脉冲 注:关于E=H脉冲开始时初始化E为0,然后置E为1,再4.字符集 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A。 以下是1602的16进制ASCII码表地址: 读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。编辑本段指令集 1602通过D0D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 0000 0x38 设置16×2显示,5×7点阵,8位数据接口; 显示开关及光标设置: (初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移) s=0 当写一个字符后,整屏显示不移动 数据指针设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。其时序图操作如下我们根据其性质设计如下电路图33 DS18B20温度传感器1)简介我们直接选用了数字温度传感器DS18B20来测试温度,Dallas 半导体公司的单线数字温度传感器DS18B20是世界上第一片支持 “一线总线”接口的温度传感器。具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。1 技术性能描述 1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 1.2 测温范围 55+125,固有测温分辨率0.5。 1.3 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温 1.4 工作电源: 35V/DC 1.5 在使用中不需要任何外围元件 1.6 测量结果以912位数字量方式串行传送 1.7 不锈钢保护管直径 6 1.8 适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 1.9 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 1.10 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2 应用范围 2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域 2.2 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 2.5 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。3 接线说明 特点 独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源 测量温度范围为-55 ° C至+125 。华氏相当于是-67 ° F到257华氏度 -10 ° C至+85 ° C范围内精度为±0.5 ° C 温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统 描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数。信息被发送到/从DS18B20 通过1线接口,所以中央处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个ds18b20s可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。其结构如下 2)外围电路设计 DS18B20外围只有一条数据线,电路设计简单,根据其以上特性,只需要跟单片机控制器一个IO口连接即可,主要需要在上面加一个10千欧的上拉电阻,为此,我们设计以下电路:3.4 按键控制电路 根据需要,数据需要进行需要相关的设置和控制,设置了这款电路,因为该电路比较简单,运用了独立键盘,来扫描每个IO口的状态,进行判断,同时我们在软件进行了消抖处理。3.5 继电器控制系统 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 继电器的输入信号x从零连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻从y=0跳跃到y=ym,即常开触点从断导通。一旦触点闭合,输入量x继续增大,输出信号y将不再起变化。当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开。我们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。 释放值xf与动作值xx的比值叫做反馈系数,即 Kf= xf /xx 触点上输出的控制功率Pc与线圈吸收的最小功率P0之比叫做继电器的控制系数,即Kc=PC/P0电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。根据原理我们设计其电路结构如下3.6 蜂鸣器报警及LED指示系统为了更加直观,我们在上面加了蜂鸣器报警和LED灯来指示电路的工作,具体如下: 3.7 电源模块电路 在系统中需要5V的单片机供电,和3.3V的无线模块供电我们之间用了稳压模块LM7805和ASM1117分别用来提供相应的电压5V和3.3V电压。用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。该系列集成稳压IC型号中的lm78或lm79后面的数字代表该三端集成稳压电路的输出电压,如lm7806表示输出电压为正6V,lm7909表示输出电压为负9V。 因为三端固定集成稳压电路的使用方便,电子制作中经常采用。7805电参数参数符号测试条件最小值典型值最大值单位输出电压VoTj=254.85.05.2V5.0mA<1o<1.0A,Po<15W Vi=7.5v to 20v4.755.005.25V线性调整率VoTj=25,Vi=7.5V to 25V4.0100mVTj=25,Vi=8V to 12V1.650mV负载调整率VoTj=25,lo=5.0mA to 1.5A9100mVTj=25,lo=250mA to 750mA450mV静态电流IQTj=255.08mA静态电流变化率IQlo=5mA to 1.0A 0.030.5mAVi=8V to 25V0.30.8mA输出电压温漂Vo/Tlo=5mA 0.8mV/ 输出噪音电压VNf=10Hz to 100KHz,Ta=2542V纹波抑制比RRf=120Hz,Vi=8V to 18V 6273dB输入输出电压差Volo=1.0A,Tj=252V输出阻抗Rof=1KHz15m短路电流1SCVi=35V,Ta=25230mA峰值电流1PKTj=252.2AAMS1117系列稳压器有可调版与多种固定电压版,设计用于提供1A输出电流且工作压差可低至1V。在最大输出电流时,AMS1117器件的压差保证最大不超过1.3V,并随负载电流的减小而逐渐降低。AMS1117器件引脚上兼容其他三端SCSI稳压器,提供适用贴片安装的SOT-223,8引脚SOIC,和TO-252(DPAK)塑料封装。 AMS1117 参数 AMS1117 基本参数 输出电流 (A) 1 输出电压 (V) Adj,1.5, 1.8, 2.5, 2.85, 3.3, 5.0。根据其特性,设计电路图如下:3.8 protel99se本次设计硬件电路用到的设计软件 protel 99se :PROTEL是PORTEL公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高。可生成30多种格式的电气连接网络表; 强大的全局编辑功能; 在原理图中选择一级器件,PCB中同样的器件也将被选中; 同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性; 满足国际化设计要求(包括国标标题栏输出,GB4728国标库); * 方便易用的数模混合仿真(兼容SPICE 3f5); 支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件; * PCB可设计32个信号层,16个电源-地层和16个机加工层; 强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查; 智能覆铜功能,覆铀可以自动重铺; 提供大量的工业化标准电路板做为设计模版; 放置汉字功能; 可以输入和输出DXF、DWG格式文件,实现和AutoCAD等软件的数据交换; 智能封装导航(对于建立复杂的PGA、BGA封装很有用); 方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果; 独特的3D显示可以在制板之前看到装配事物的效果; 强大的CAM处理使您轻松实现输出光绘文件、材料清单、钻孔文件、贴片机文件、测试点报告等;经过充分验证的传输线特性和仿真精确计算的算法,信号完整性分析直接从PCB启动;反射和串扰仿真的波形显示结果与便利的测量工具相结合; 专家导航帮您解决信号完整性问题。3.9 本章小结 本章主要介绍了本设计所需用到的芯片元件进行简单的介绍,针对硬件电路涉及的主控系统,既STC89C52单片机,显示电路,按键控制电路,继电器控制系统,蜂鸣器报警及LED指示系统模块外围电路的设计。第四章 软件设计4.1 编译开发环境1)Keil uVision4使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS-51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。42主程序流程我们根据硬件特点,设计了主要各个模块的子程序,控制相应的电路,执行程序时,直接调用相关的子程序,使程序更易操作。上电开始 数据处理键盘检测 按键判断是功能键是否按下?否温度转换,并处理,并在LCD上显示出来判断温度是否超过报警温度并作相应的处理断电结束 以下为主程序部分:void main() int i;int lin1,lin2;/温度临时存放值ji1=1;ji2=1;feng=1;ds18b20_start();lcd_init();delayms(10);while(1)key_scan();if(flag)i=ds18b20_temperature();if(i&0x8000)i=i;i=i+1;flag_f=1;else flag_f=0;temph=i>>4;templ=i&0x0f;templ=(uchar)(templ*0.63);lcd_write_com(0x80+8);if(flag_f)lcd_write_date('-');else lcd_write_date('+'); lcd_write_date(temph/10+0x30);lcd_write_date(temph%10+0x30);lcd_write_date('.');lcd_write_date(templ+0x30);delayms(10); if(hf='+')lin1=(hs*10+hg)*16+hd; else lin1=(hs*10+hg)*16+hd)*(-1); if(lf='+')lin2=(ls*10+lg)*16+ld; else lin2=(ls*10+lg)*16+ld)*(-1); if(i>=lin1)d2=d2;d1=1;d3=1;ji1=0;ji2=1;feng=feng; if(i<=lin2)d1=1;d2=1;d3=d3;ji1=1;ji2=0;feng=feng; if(i<lin1)&&(i>lin2)d1=0;d2=1;d3=1;ji1=1;ji2=1;feng=1;4.3 对DS18B20的程序设计 根据元件的工作参数,条件特性,我们绘出其程序流程图如下:DS18B20初始化读取转化温度DS18B20初始化延时一段时间启动温度转换包括:1、对18B20的初始化设计; 2、启动其温度转换特性; 3、延迟; 4、初始化; 5、处理器读取转化的温度;根据以上步骤,编写以下关于18B20的程序:void ds18b20_init()/18B20初始化uchar x;DQ=1;delayus(8);DQ=0;delayus(50);DQ=1;delayus(20);x=DQ;delayus(5);void ds18b20_write_date(uchar date)/向DS18B20中写入一个字节uchar i;for(i=0;i<8;i+)DQ=0;DQ=date&0x01;delayus(5);DQ=1;date>>=1;delayus(5);uchar ds18b20_read_date(void)/从18B20中读出一个字节uchar i,date;TR0=0;for(i=0;i<8;i+)DQ=0;date>>=1;DQ=1;if(DQ)date|=0x80;delayus(5);TR0=1;return date;void ds18b20_start()/启动温度转换ds18b20_init();ds18b20_write_date(0xcc);/跳过读取序列号ds18b20_write_date(0x44);/启动温度转换delayus(200);uint ds18b20_temperature(void)/读取温度uchar a;uint b,t;ds18b20_init();ds18b20_write_date(0xcc);/跳过读取序列号ds18b20_write_date(0x44);/启动温度转换delayus(200);ds18b20_init();ds18b20_write_date(0xcc);ds18b20_write_date(0xbe);/读取温度寄存器,共九个节a=ds18b20_read_date();b=ds18b20_read_date();b<<=8;t=a+b;return t;44 键盘检测程序设计程序流程:功能键按下 确定哪一个位置判断按键数据增加数据减小功能键返回重新显示设置报警温度根据以上流程,设计出摁键检测程序:sbit k1=P13;sbit k2=P14;sbit k3=P15;uchar k;void key_scan()if(k1=0)delayms(10);if(k1=0)while(!k1);delayms(10);k+;if(k=9)k=0;switch(k)