欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    毕业论文(设计)基于单片机的智能温度控制系统设计.doc

    • 资源ID:11228239       资源大小:1.84MB        全文页数:45页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业论文(设计)基于单片机的智能温度控制系统设计.doc

    基于单片机的智能温度控制系统设计 摘要:以STC89C52单片机作为微控制器,设计出高低温报警系统可以通过智能DS18B20温度传感器检测温度。当检测到的温度高于温度设定值时,或当检测到的温度低于温度设定值时,蜂鸣报警器启动发出警告声。温度检测具有0.1度的精度设定值。并具有掉电保存功能,其中数据存储在单片机内部,在1602液晶上实时显示工作状态,其中电源使用3节5号电池。关键词:STC89C52单片机 DS18B20 1602液晶模块 指导老师签名:Based on single chip microcomputer intelligent temperature control system design Student Name: Zhang Wen bo Class: 1082022 Instructor: Guo LiangAbstract:. Intelligent temperature alarm system is such an intelligent system designed to STC89C52 SCM as microcontrollers, high and low temperature alarm system designed by intelligent DS18B20 temperature sensor detects the temperature, when the detected temperature is higher than the detection temperature setting, or when the detected temperature is lower than the temperature set value is detected. Buzzer alarm starts to sound a warning, the setting temperature detection with 0.1 degree accuracy. And has a power-down save feature, in which the data stored in the internal microcontroller. Display real-time status in 1602 to work on. Wherein the power supply using 3 AA batteries.Keywords: STC89C52 SCM DS18B20 1602 LCD Module Signature of Supervisor:目录1 绪论 1.1 基于单片机的温度控制系统的发展及研究意义1 1.2 国内外研究概况1 1.3 设计方案与论证12系统硬件设计 2.1 片机选择2 2.2 电源模块2 2.3 显示模块33 硬件实现及单元电路设计 3.1 主控制模块6 3.2 电源模块7 3.3 显示模块7 3.4 单片机最小运行系统8 3.5 温度传感器(DS18B20)电路9 3.6 蜂鸣器、发光二极管报警电路11 3.7 系统整体电路图124 系统软件设计 4.1 程序结构分析13 4.2 系统程序流图13 4.3 DS18B20初始化程序流程图14 4.4 读温度子程序流程图14 4.5 DS18B20程序15 4.6 报警函数16 4.7 独立按键函数18 4.8读温度程序205 硬件调试及调试中遇到的问题236 结束语24参考文献25致谢26附录2742南昌航空大学科技学院2013届学士学位论文基于单片机的智能温度控制系统1 绪论1.1 基于单片机的温度控制系统的发展及研究意义随着科技的发展,单片机技术在近几年得到了飞速的发展,以单片机技术为基础的科技革命正在蓬勃发展,单片机已经在各个领域得到了广泛的应用。在温度采集的领域也是如此。相比于传统温度采集方法的效率低下。使用单片机可以良好的解决温度采集和处理问题。1.2 国内外研究概况 国际新型温度传感器是从模拟到数字,从集成向智能化、网络化的方向发展。最早的智能温度传感器诞生于上世纪90年代,当时只有8位的A/D转换,其温度测量的精度非常低。分辨率更是只有1度。现如今外国国家相继推出了各种具有高精密和高分辨率的智能温度传感器,采用从9至12位A / D转换器,其中美国DALLAS半导体公司新开发的高分辨率智能温度传感器DS1624型智能温度传感器,更是能输出13位二进制数据,在过去,生产过程和科学实验,要想控制温度,一般使用模拟或者数字式仪表,但他们有一些缺陷,使用单片机来进行温度调节和控制可以大大提高可靠性和灵敏度。现在,随着网络的概念的日益普及,基于单片机的数据采集和控制系统已被广泛应用于各个领域。1.3 设计方案与论证 本文的控制单元为单片机STC89C52,因为这种类型的单片机的价格便宜,功能更强大,成本效益及容易在市场上购买。通过DS18B20温度传感器采集温度信息到主控制单元MCU,从而实现自身控制处理数据后完成相应的操作。LCD显示器采用1602LCD实时工作状态。这个系统更灵活,更重要的是利用软件来解决系统硬件的复杂电路,使得系统硬件更加简单,易于实现各种功能,能够满足本课题的需要。2 系统硬件设计2.1 单片机选择方案一:选择一个CPLD(如EPM7128LC84-15)作为系统的核心部件,实现功能的控制和处理。CPLD具有快速,方便的编程,资源丰富,开发周期短等优点,可以用VHDL语言开发被写入。但CPLD比对照单片机在控制上有较大的劣势。同时,CPLD的处理速度是非常快的,但是智能温控报警系统不需要太快的系统处理信息速度,在这一点上,MCU已经可以胜任了。使用该方案,会遇到很多不必要的问题和控制难度的增加。出于这个原因,本文不使用这种方案,然后做了第二个方案。方案二:使用单片机作为整个系统的核心,设计出高低温报警系统。观察本文的系统:以STC89C52单片机为微控制器,通过智能DS18B20温度传感器检测温度,当检测到的温度在检测设定值以上时,蜂鸣器报警,当温度低于设定值时蜂鸣器也开始报警,在这一点上,单片机的优势非常明显。其具有控制简单,方便,快捷等特点,因此,单片机可以充分发挥其丰富的资源,更强大的控制功能和操作功能,可位寻址,价格低廉等特点。 51单片机具有强大的操作指令, I / O端口可高达8K位寻址程序空间,足够多的设计,更为可贵的是非常廉价 。因此,这个方案是一个理想的方案。2.2 电源模块 由于本系统采用电池供电,我们设计了以下2种方案为系统供电。方案1:使用12V电池为系统供电。该电池具有很强的电流驱动能力,以及稳定的电压输出性能。但电池的体积过大,价格昂贵,极其不方便使用在智能温度报警系统上。所以本文放弃了这一方案。方案2:只需4.5V工作电压给传感器供电,使用3节1.5 V 南孚电池。实验结果表明,该系统运行稳定,更换电池方便。可以满足系统要求。 综上所述采用方案2。2.3 显示模块方案1:使用LED液晶显示器。由于LED液晶显示速度,使用方便,显示简洁而得到广泛应用。然而,由于温度的显示和设置菜单,LED液晶无法显示如此丰富的内容,所以本文放弃了这一方案。 方案2:使用LCD显示器。由于其清晰的液晶显示屏,显示内容丰富,使用方便,快捷,显示器已经得到广泛应用。对于这个系统,本文使用1602显示器可以很好的满足要求,所以本文选择了这个解决方案。2.4 温度传感器方案 1:用铂电阻测温的非线性校正方法,采用桥式电路将热敏电阻的感温效应,在将随被测温度变化的电压或电流采集过来,再加上放大器将信号放大,并经AD转换器,在通过显示电路,就可以将被测温度显示出来。图2.1铂电阻桥式测温电路方案 2:考虑使用一个数字温度传感器,结合单片机的电路设计,使用温度传感器直接读取被测温度值后转换,然后完成设计的要求。按键输入电路 显示电路驱动电路 单 片 机 测温电路时钟电路复位电路扩展接口:对时间和温度信息定点储存,并与计算机进行数据交换报警电路图2.2 DS18B20测温系统框图方案比较:方案一程序模拟温度传感器,数据处理繁琐,会出现信号失真。而DS18B20可以直接将温度转换成串行数字信号,有较强的抗干扰能力,性能强大而且功耗低。抗干扰能力强等特点。这两种方案的比较,很容易看出,使用方案二,电路比较简单,容易实现软件设计,所以实际使用方案二的设计。系统的电路设计图如图2.3。STC89C52CPUDS18B20温度芯片1602显示报警电路电源图2.3温度计电路总体设计方案DS18B20温度传感器是由DALLAS所生产的,它具有体型小,功耗低,性能高,抗干扰能力强,易于使用的处理器等优点,而且可以用于构建多点温度控制系统,温度可直接转换成串行数字信号(由九二进制位)的单片机处理,并在可在同一总线上连接复数的传感器芯片,可测量的温度范围-55 +125 ,可编程9 12 A / D转换的精度,最高可达0.0625温度分辨率,使用16位串行输出的符号扩展测得的温度, CPU只需一根端口线就能与多个DS18B20通信,占用微处理器少,比较别的电路可以使用相对少量的引线和逻辑电路。由此可以明显看出DS18B20完全满足本次设计的要求。图2.4 温度芯片DS18B203 硬件实现及单元电路设计3.1 主控制模块经过焊接电路最终完成如图3.1所示电路系统。 图3.1主控制电板实物图 主控制最小系统电路如图3.2所示。 图 3.2系统电路 3.2 电源模块 采用3节1.5 V 五号干电池串联共4.5V给系统供电。实物图如图3.3所示。图 3.3电源实物图3.3 显示模块 图3.4 1602晶显示屏实物图 显示模块采用1602液晶显示接口电路如图3.5图 3.5屏幕接口电路3.4单片机最小运行系统3.4.1晶振晶振为单片机提供时钟信号。单片机XIAL1和XIAL2分别接22PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路。图3.6晶振电路3.4.2复位电路单片机都需要在启动时复位,以确保CPU和系统的各个组成部分处于初始状态,以此保证单片机是从初始状态开始工作。89系列单片机的复位信号由RST引脚输入到芯片内部。处于工作状态的系统,并在振荡器稳定,RST引脚有较高的水平,并维持两个机器周期(24个振荡周期)或以上时,CPU可以响应和系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。图3.7复位电路 ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电源3.5 温度传感器(DS18B20)电路3.5.1 DS18B20基本介绍DS18B20数字温度传感器是由美国DALLAS半导体公司生产,封装成后可应用于多种场合。而且其电路线路简单。用DS18B20来组成的系统,通常设计非常方便,可以用一根通信线连接复数个的数字温度器。使得电路线路较简单。此外DS18B20还能进行精确的温度转换,但是在温度转换时I/O线必须保证能提供充足的能量,因为目前每个DS18B20的工作电流都会达到1mA,当同一根I / O线同时连接复数个的温度传感器时,只靠4.7K上拉电阻是不能提供足够的能量的,将会导致错误,使得DS18B20不能显著转变温度或显示的温度的误差大。 因此,下面的图表电路只在一个单一的温度传感器测温的情况下使用。而且必须保证电源VCC5V,当电源电压下降时,将会使温度误差变大。图3.8 温度传感器电路引脚图3.5.2 DS18B20控制方法DS18B20有六条控制命令:温度转换 44H 启动温度转换 命令读暂存器 BEH 读RAM9字节数据命令 写暂存器 4EH将报警高温限和抵温限值写入RAM的第二和第三字节复制暂存器 48H把9字节RAM的2、3字节复制到EEPRAM的TH和TL中重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节 读电源供电方式 B4H DS1820发出此命后,再进行读时序操作,可读出“0”或“1”,“0”寄生。图3.9温度传感器实物图3.6 蜂鸣器、发光二极管报警电路 电路主要是用来设定温度报警温度的、有高温和低温报警。 图3.10蜂鸣器、发光二极管驱动引脚图 蜂鸣器和发光二极管都是长脚接正级短脚接负极。图3.11 蜂鸣器实物图图3.12 发光二级管实物图3.7系统整体电路图图3.13 电路原理图4 系统软件设计4.1 程序结构分析主程序调用了LCD1602液晶显示程序、温度信号处理程序、按键设定报警温度程序共3个子程序。温度信号处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。LCD1602液晶显示程序:向LCD1602液晶的显示送数,控制系统的显示部分。按键设定程序:可以设定低温和高温报警可精确到0.1度。4.2 系统程序流图主程序主要作用是显示温度的实时变化和读出与处理传感器测量的温度值,其中每隔一秒测量一次温度。然后主程序负责将当前温度与设定的报警温度比较。程序流程图如图4.2.1显示。调用读温度子程序,在2个单元中分别存入内存的整数和小说部分。最后通过显示子程序显示出来。图4.1 DS18B20温度流程图4.3 DS18B20初始化程序流程图在DS18B20工作之前需要进行初始化,流程图如下:发复位命令发跳过ROM命令 初始化成功 结束图4.2初始化程序流程图4.4 读温度子程序流程图该程序主要用于从DS18B20中读取数据然后将数据保存在温度暂存器中。其程序流程图如下:发复位命令发跳过ROM命令 发读取温度命令 移入温度暂存器 结束 图4.3 温度子程序流程图 4.5 DS18B20程序4.4.1 DA18B20初始化函数void init_18b20()bit q;dq = 1;delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线4.5.2 DS18B20写程序void write_18b20(uchar dat)uchar i;for(i=0;i<8;i+) /写数据是低位开始dq = 0; /把总线拿低写时间隙开始 dq = dat & 0x01; /向18b20总线写数据了delay_uint(5); / 60usdq = 1; /释放总线dat >>= 1;4.5.3DS18B20读程序uchar read_18b20()uchar i,value;for(i=0;i<8;i+)dq = 0; /把总线拿低读时间隙开始 value >>= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据4.6报警函数void clock_h_l()if(temperature <= t_low) | (temperature >= t_high)flag_clock = 1;elseflag_clock = 0;beep = 1;void main()init_1602();init_1602_dis_csf();temperature = read_temp();/先读出温度的值time_init(); /初始化定时器 read_eepom();write_sfm3_18B20(2,2,t_high);write_sfm3_18B20(2,10,t_low);if(a_a = 0xff)/新的单片机初始单片机内问EEPOMt_high = 300;t_low = 100;a_a = 1;write_eepom();delay_1ms(650);temperature = read_temp(); /先读出温度的值write_sfm3_18B20(1,8,temperature);while(1)if(flag_300ms = 1) /300ms 处理一次温度程序temperature = read_temp();/先读出温度的值clock_h_l(); /报警函数if(flag_clock = 1)beep = beep; flag_300ms = 0;/if(menu_1 = 0)/write_sfm3_18B20(1,8,temperature);/if(zd_break_en = 1)/自动退出设置界面程序zd_break_value +; /每300ms加一次if(zd_break_value > 50) /15秒后自动退出设置界面menu_1 = 0;zd_break_en = 0;zd_break_value = 0;write_com(0x0c); /关闭光标 menu_dispaly(); /不同级的菜单对应显示1602对应显示不同key();/按键程序if(key_can < 10)key_with(); /设置报警温度4.7独立按键函数void key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按键松开的时候做松手检测if(P2 & 0x0f) = 0x0f)key_value +;else key_value = 0;if(key_value >= 10)write_eepom();key_value = 0;key_new = 1;flag_lj_en = 0;/关闭连加使能flag_lj_3_en = 0;/关闭3秒后使能flag_value = 0;/清零else if(P2 & 0x0f) != 0x0f)key_value +; /按键按下的时候else key_value = 0;if(key_value >= 7)key_value = 0;key_new = 0;flag_lj_en = 1; /连加使能zd_break_en = 1; /自动退出设置界使能zd_break_value = 0; /自动退出设置界变量清零key_time = 0;key_can = 20;if(key_500ms = 1)key_500ms = 0;key_new = 0;key_old = 1;if(key_new = 0) && (key_old = 1)switch(P2 & 0x0f)case 0x0e: key_can = 4; break; /得到k1键值case 0x0d: key_can = 3; break; /得到k2键值case 0x0b: key_can = 2; break; /得到k3键值case 0x07: key_can = 1; break; /得到k4键值 key_old = key_new; 4.8读温度程序void key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按键松开的时候做松手检测if(P2 & 0x0f) = 0x0f)key_value +;else key_value = 0;if(key_value >= 10)write_eepom();key_value = 0;key_new = 1;flag_lj_en = 0;/关闭连加使能flag_lj_3_en = 0;/关闭3秒后使能flag_value = 0;/清零else if(P2 & 0x0f) != 0x0f)key_value +; /按键按下的时候else key_value = 0;if(key_value >= 7)key_value = 0;key_new = 0;flag_lj_en = 1; /连加使能zd_break_en = 1; /自动退出设置界使能zd_break_value = 0; /自动退出设置界变量清零key_time = 0;key_can = 20;if(key_500ms = 1)key_500ms = 0;key_new = 0;key_old = 1;if(key_new = 0) && (key_old = 1)switch(P2 & 0x0f)case 0x0e: key_can = 4; break; /得到k1键值case 0x0d: key_can = 3; break; /得到k2键值case 0x0b: key_can = 2; break; /得到k3键值case 0x07: key_can = 1; break; /得到k4键值 key_old = key_new; 5 硬件调试及调试中遇到的问题首先进行目测将所以元器件都焊接到洞洞板上,仔细检测焊点查看是否有虚焊或者毛刺等情况。然后使用万用表检测第一步中感觉可能存在问题的线路及焊点。检查电源线路等关键点是否存在短路等问题。接着做加电检查。当系统加电时,检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。 最后是做联机检查。在对硬件电路调试过程中,还遇到了不少问题,第一次把所有的元件都焊上去后,通电后显示屏无法正常显示,报警器一直无故报警。经过检查电路之后发现显示屏电路没有连接好有松动、导致无法正常显示。而报警电路的线路没有理好,几根线接的太近。经过这次失败才明白做事情必须认真仔细。不然容易浪费时间精力。6 结束语本设计实现的功能:可以自由的设置报警温度的上下限,并具有0.1度的精确值,在单片机的内部储存数据。设计人性化,在进入设置界面后超过15秒没有继续操作就会自动退出,同时按键非常便捷,具有连加、减功能。LCD1602液晶显示的好处能够同时直观的看到实际温度和上、下限报警温度。通过本次设计我掌握了很多以前不熟练的东西,使我在人生上又进了一步。也认识到很多的不足。论文有很多不足之处,但这里的可以回忆起曾经的劳动,换回来今天的作品。然而看着自己的作品能够实现。真是酸甜苦辣后的得到成果都是甘甜的。 这次毕业设计的经历使我终身难忘,希望我的设计能够带给师弟师妹们学习这个课程的一个好辅助工具,那么我的辛苦没有白费,经历了这个设计后我学习了很多东西,而中途遇到的困难能够迎刃而解,为我以后遇到困难不畏惧,也为会激励我继续进步。参考文献1 郭惠,吴迅.单片机C语言程序设计完全自学手册M.电子工业出版社,2008.10:1-200.2 王东锋,王会良,董冠强. 单片机C语言应用100例M. 电子工业出版社,2009.3:145-300.3曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,20024全国大学生电子设计竞赛组委会编.第五届全国大学生电子设计竞赛获奖作品选编(2001), 北京:北京理工大学出版社,20035 何力民. 单片机高级教程. 北京:北京航空大学出版社,20006 金发庆. 传感器技术与应用.北京机械工业出版社,20027 刘坤、宋戈、赵洪波、张宪栋51单片机C语言应用开发技术大全,北京:人民邮电出版社,20088谭浩强C程序设计北京:清华大学出版社,2007;9 王忠飞,胥芳MCS-51 单片机原理及嵌入式系统应用M西安:西安电子科技大学出版社,2007P268-27310 Yamato I , et al 1 New conversion system for UPS using high fre2quency linkJ 1 IEEE PESC ,1988 :210-320.11Yamato I , et al 1 High frequency link DC/ AC converter for UPSwith a new voltage clamperJ 1IEEE PESC ,1990 :52-105.12 Peter Van Der Linden著,徐波译.C专家编程,人民邮电出版社,2003致谢 首先,需要感谢的是我的指导老师郭亮,在本次设计中耐心仔细的教导我。让我从最初的盲目中走出,找到了正确的设计方法。其次必须感谢班上同学对我的帮助,如果没有他们的帮助和鼓励,此次的毕业设计就不会进行的如此顺利。这次的毕业设计包括开始的准备时间一共耗时过4个月,是我在大学生涯中经过的时间最长、涵括内容最多的一次设计,因此过程中遇到的问题也不少。有时候很多简单的问题也会把我难住,这时我只有去提问老师,而老师从来都不会因为我问的问题过于简单而责备我,而是耐心的教导。从最简单的设计到后面的调试帮助,从无到有,老师始终都给予我帮助和指导。让我圆满的完成了此次设计。在此谨向郭亮老师致以诚挚的谢意和崇高的敬意。附录程序:#include <reg52.h>#include "lcd1602.h"#include "eepom52.h"#define uchar unsigned char #define uint unsigned intsbit dq = P23;/18b20 IO口的定义sbit beep = P24; /蜂鸣器IO口定义uchar a_a;uint temperature ; /bit flag_300ms ;uchar key_can; /按键值的变量uchar menu_1; /菜单设计的变量uint t_high = 300,t_low = 100;bit flag_lj_en; /按键连加使能bit flag_lj_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value; /用做连加的中间变量bit key_500ms ;uchar flag_clock;/温度报警变量uchar zd_break_en,zd_break_value; /自动退出设置界面uchar menu_shudu = 20; /用来控制连加的速度/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;i<q;i+)for(j=0;j<110;j+);/*把数据保存到单片机内部eepom中*/void write_eepom()SectorErase(0x2000);byte_write(0x2000, t_high % 256);byte_write(0x2001, t_high / 256);byte_write(0x2002, t_low % 256);byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);/*把数据从单片机内部eepom中读出来*/void read_eepom()t_high = byte_read(0x2001);t_high <<= 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low <<= 8;t_low |= byte_read(0x2002);a_a = byte_read(0x2055);/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i<8;i+) /写数据是低位开始dq = 0; /把总线拿低写时间隙开始 dq = dat & 0x01; /向18b20总线写数据了delay_uint(5); / 60usdq = 1; /释放总线dat >>= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i<8;i+)dq = 0; /把总线拿低读时间隙开始 value >>= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*

    注意事项

    本文(毕业论文(设计)基于单片机的智能温度控制系统设计.doc)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开