智能笔记本底座的设计_第1页
智能笔记本底座的设计_第2页
智能笔记本底座的设计_第3页
智能笔记本底座的设计_第4页
智能笔记本底座的设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

摘要笔记本电脑,便于携带,体积小,而且它的功能满足大多数人的需要,随着科学技术的近步带来的本钱下降,笔记本的价格也为大多数人所接受。随着使用笔记本人数的增加,笔记本的各种问题也暴露出来,除了性价比之外,最关心的莫过于散热。笔记本在性能与便携性对抗中,散热成为最关键的因素,笔记本散热一直是笔记本核心技术中的瓶颈。有时笔记本电脑会意外的死机,一般就是系统温度过高导致。为了解决这个问题,人们设计了散热底座,可以使笔记本产生的热量尽快的扩散到电脑外部,不影响笔记本的使用功能,不会使电脑的线路出现腐蚀现象,保证笔记本电脑的正常工作。好的底座可以很大的延长笔记本电脑使用寿命。设计针对散热问题做了深入的探讨,并设计出一套基于单片机控制的智能散热底座,综合了本钱和性能等相关因素,采用了宏晶公司的STC89C52RC为核心搭建了该系统。在本着本钱控制和推向市场的前提下,电路简约而易于批量生产,在完成散热功能和最少本钱的前提下到达了节能和智能。关键词:散热底座;单片机;智能控制目录1引言11.1系统研究背景11.2散热原理和方式11.3笔记本散热底座设计2散热底座的材料21.3.2散热底座的性能22系统各模块方案论证32.1控制器的选择32.2温度采集器件的选择42.3电机及其驱动器的选择43系统硬件设计53.1单片机STC89C52RC5引脚功能描述5系统时钟电路6复位电路73.2温度传感器电路8芯片DS18B20介绍8传感器连接电路93.3直流电机驱动电路9三极管简介9直流电机简介10直流电机驱动电路104系统软件设计114.1编程语言简介114.2单片机程序设计12主程序设计12温度采集子程序13结论14附录:单片机程序15参考文献23致谢25引言系统研究背景笔记本电脑,便于携带,而且它的功能满足大多数人的需要,随着技术的近步带来的本钱下降,笔记本的价格也为大多数人所接受。随着使用笔记本人数的增加,笔记本的各种问题也暴露出来,其中散热问题至关重要,它不仅关系着能耗更关系着笔记本的使用寿命。因此散热成为最关键的因素,笔记本散热一直是笔记本核心技术中的瓶颈。有时笔记本电脑会莫名奇妙的死机,一般就是系统温度过高导致。为了解决这个问题,人们设计了散热底座,可以使笔记本产生的热量尽快的扩散到电脑外部,不影响笔记本的使用功能,保证笔记本电脑的正常工作。而目前市场上仅仅有的是单开关式的散热器,且操作不方便,经常开关,还没有根据温度变化来进行控制的智能散热底座。散热原理和方式散热,其实就是一个热量传递过程通过传导、对流、辐射等几种方式。通常在台式机中主要是风冷技术,这包括中央处理器、显卡、电源及机箱的散热风扇等,在笔记本电脑中,风冷依旧的主要的散热方式,绝大数的散热方式是:风扇、热管、散热板的组合。目前很多笔记本电脑采用铝镁合金的外壳,对散热也起到了一定的作用。在笔记本电脑底部一般都有散热通风口,或吸入或吹出,对笔记本电脑的散热都非常重要。笔记本电脑在设计的时候也考虑到散热问题,往往会用垫脚将机身抬高,但是在温度过高的时候,就显得比拟勉强。笔记本的散热底座的散热原理主要有两种:1.单纯通过物理学上的导热原理实现散热功能。将塑料或金属制成的散热底座放在笔记本的底部,抬高笔记本以促进空气流通和热量辐射,可以到达散热效果。2.在散热底座上面安装一个散热风扇来提高散热性能。笔记本散热底座设计散热底座的材料当前市场主要产品使用的材料有两种:金属或者塑料。金属的导热性好,但现在任何一款笔记本的底部都有防滑胶垫,和金属散热底座不可能紧贴在一起,所以金属的导热性能不能完全发挥出来。当然,金属底座还是可以更好地将笔记本内散发出来热量吸收并扩散出去。另外金属一般比拟重,而且由于制造时工艺要求较高,一旦做工不够精细,极易伤人。塑料材质一般比拟轻便,硬度也较高,很多工程塑料的强度甚至超过金属。出于本钱及轻便的考虑,重量较轻、发热小的笔记本可以选用设计较好的塑料散热底座。但是如果是重量较大,发热较高的笔记本还是得使用金属材质的做工良好的散热底座。1.3.2散热底座的性能性能判定方法:同等环境下,使用散热底座和不使用,分别记录开机五分钟和开机一小时后的系统主要温度参数,可以大概确定该散热底座的散热性能。还需要特别注意的是散热底座的噪音和振动问题,风扇的数量和质量是决定因素。风扇多固然增加散热效果,但是相应的耗电及噪音振动也增加了,所以一般以1个为宜。所以底座测试的时候需要留心判断下其噪音是否能够接受,是否会有振动影响电脑硬盘。散热底座风扇的数量和布局也非常重要,现在的笔记本后部往往是电池,而一些主要发热部件如:中央处理器和硬盘等位置相对靠中间,特别是硬盘,大多设计在手托下面,而这些部位很多散热底座往往没有设计风扇。所以在设计散热底座前,先弄清笔记本底座几个主要部件的位置,确定最热的几个位置。风扇的供电方案有通过笔记本USB接口供电以及外置电源供电两种。大多数笔记本电脑的散热底座的风扇均采用吸风式设计,因为这样可以最大限度的减少空气扰动造成的影响,提高散热效率。系统各方案论证系统的结构主要包括对外界温度信息的采集电路,控制器电路,散热风扇控制电路,上位机串口通信电路。选择合理的电路方案,能实现好系统的功能,降低设计的本钱,而且有利于后继添加的扩展功能。下面是系统组成框图。图2-1系统框图2.1控制器的选择采用宏晶公司的STC89C52RC单片机作为主控制器。STC89C52RC是一种低功耗、高性能CMOS微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52RC具有以下标准功能:8k字节Flash,128字节RAM,40位I/O口线,看门狗定时器,2个16位定时器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52RC可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。2.2温度采集器件的选择方案一:使用模数转换芯片和模拟温度器件组成,其温度感知器件一般为温度的线性器件,然后通过模拟转数字芯片把模拟量转换为数字量送入控制器加以识别和判断,其优点是,其通过选择适宜的转换芯片和模拟温度器件可已到达很高的精度,一般的模数转换有8位、10位、12位等,在一般的系统中都采用此种方案。但对于本设计中会产生更多的电路,一是增加了体积不易于安装,二是本系统不需要很高的精度。方案二:采用“一线总线”数字化温度传感器DS18B20〔达拉斯公司〕,DS18B20支持“一线总线”接口,测量温度范围为-55℃~125℃,在-10℃~85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。适用于对性能要求不高,本钱控制严格的应用,是经济型产品。因此,本设计选方案二2.3电机及其驱动器的选择方案一:采用PWM控制直流电机。PWM控制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。PWM对半导体器件的导通和关断进行控制,是输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规那么对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也改变输出频率。方案二:采用直流电机加模拟电路,通过电位器调节电机两端电压进行控制。达林顿管串联在直流电机回路上,通过调节电位器改变电机回路的电流的大小,从而到达控制电机的目的。此方案的优点在,电路简单,通过一个电位器就可以到达调节电机速度的目的,但它也存在明显的缺乏,三极管工作在放大区时在电机回路上将产生一个压降,会产生很多的热量,效率很低。因此,本设计选方案一。系统硬件设计硬件系统的主要包括对外界温度信息的采集电路,控制器电路,散热风扇控制电路,上位机串口通信电路,电源电路。3.1单片机STC89C52RC引脚功能描述:VCC:电源。GND:地。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入〔P1.0/T2〕和时器/计数器2的触发输入〔P1.1/T2EX〕。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送“1”。在使用8位地址访问外部数据存储器时,P2口输出P2P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89S52特殊功能〔第二功能〕使用。在flash编程和校验时,P3口也接收一些控制信号。RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊存放器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号〔ALE〕是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚〔PROG〕也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否那么,ALE将被微弱拉高。这个ALE使能标志位的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号〔PSEN〕是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12V电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。系统时钟电路时钟电路是用来产生STC89C52RC单片机工作时所必须的时钟信号,STC89C52RC本身就是一个复杂的同步时序电路,为保证工作方式的实现,STC89C52RC在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。我们系统采用内部时钟方式来为系统提供时钟信号。STC89C52RC内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自鼓励振荡器电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的瓷片电容,采用的晶振频率为11.0592MHZ。图3-3时钟电路复位电路复位电路是影响单片机系统运行稳定性的主要内部因素之一。单片机的复位操作有手动复位和加电复位两中方式。加电复位是任何单片机都具有的功能。它通过专用的复位电路产生复位信号,是系统的原始复位方式,发生在开机加电时,是系统自动完成的。单片机系统在调试程序时,有可能出现死机、死循环、程序“跑飞”等情况,手动复位是解决这一情形的最好方式。单片机系统中用到的复位方式有四种,它们是:积分型、微分型、比拟器型和看门狗型。前三种是在芯片外面用分立元件或集成电路芯片搭建完成,最后一种位于芯片内部,属于芯片的一局部。单片机系统中用到的复位电路有上电复位、按键电平复位和按键脉冲复位三种。图3-4复位电路3.2温度传感器电路芯片DS18B20介绍Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20支持“一线总线”接口,测量温度范围为-55℃~125℃,在-10℃~85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,DS18B20可以程序设定9~12位的分辨率,精度为DS1822与DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2℃,适用于对性能要求不高,本钱控制严格的应用,是经济型产品。继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS182218B20管脚图传感器连接电路VCCVCCC10uF/16VR10KRST1211.0592MXTALC130pC230pX1X2P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.5/MO6P1.6/MI7P1.7/SC8RST9RXD/P3.010TXD/P3.111INT0/P3.212INT1/P3.313T0/P3.414T1/P3.515WD/P3.616RD/P3.717XTAL218XTAL119GND20A15/P2.021A14/P2.122A13/P2.223A12/P2.324A11/P2.425A10/P2.526A9P2.627A8P2.728PSEN29ALE/PRO30EA/Vpp31AD7/P0.732AD6/P0.633AD5/P0.534AD4/P0.435AD3/P0.336AD2/P0.237AD1/P0.138AD0/P0.039Vcc40U1DS18B20R14.7KVCC图3-6传感器连接电路3.3直流电机驱动电路三极管简介三极管,全称应为半导体三极管,也称双极型晶体管,晶体三极管,是一种电流控制电流的半导体器件。其作用是把微弱信号放大成幅值较大的电信号,也用作无触点开关。三极管分类:按材质分:硅管、锗管。按结构分:NPN、PNP。按功能分:开关管、功率管、达林顿管、光敏管等。按功率分:小功率管、中功率管、大功率管。按工作频率分:低频管、高频管、超频管。按结构工艺分:合金管、平面管。晶体管促进并带来了“固态革命”,进而推动了全球范围内的半导体电子工业。作为主要部件,它及时、普遍地首先在通讯工具方面得到应用,并产生了巨大的经济效益。由于晶体管彻底改变了电子线路的结构,集成电路以及大规模集成电路应运而生,这样制造像高速电子计算机之类的高精密装置就变成了现实。直流电机简介输出或输入为直流电能的旋转电机,称为直流电机,它是能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。直流电机的结构应由定子和转子两大局部组成。直流电机运行时静止不动的局部称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。随着人们生活水平的提高,产品质量、精度、性能、自动化程度、功能以及功耗、价格问题已经是选择家用电器的主要因素。永磁直流电机既具有结构简单、运行可靠、维护方便等优点,又具备良好的调速特性,现已广泛应用于各种场合。直流电机驱动电路电路使三级管工作在饱和或截止区,三极管处于很低的功耗状态,发挥简单的开关作用来控制电机两端电流的通断,从而到达控制电机的目的。系统软件设计软件局部也是整个系统的核心局部之一,硬件制作成功后,加上软件局部才能使整个系统得以运行。本系统的软件局部主要包括主程序和系统初始化子程序、电机控制程序、温度采集程序、串口通信程序。4.1编程语言简介C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。其特点为:1.语言简洁、紧凑、使用方便、灵活。2.运算符丰富。3.数据结构丰富,具有现代化语言的各种数据结构。4.具有现代化的控制语句。5.语法限制不太严格,程序设计自由度大。6.能实现汇编语言的大局部功能,可以直接对硬件进行操作。7.生成目标代码质量高,程序执行效率高。8.程序可移植性好。汇编语言是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。“汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。其特点为:1.面向机器的低级语言,通常是为特定的计算机专门设计的。2.保持了机器语言的优点,具有直接和简捷的特点。3.可有效地控制计算机的各种硬件设备,如存储器、CPU、I/O端口等。4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。5.经常与高级语言配合使用,应用广泛。4.2单片机程序设计主程序开始主程序设计主程序开始电机控制初始化串口初始化电机控制初始化串口初始化到达散热温度图4-1主程序流程图温度采集子程序图4-2温度采集子程序结论在选择毕业设计课题上面,对笔记本散热问题非常的感兴趣,设计课题是用传感器、直流电机和单片机来实现。在这个设计中不仅需要对芯片进行硬件设计还要进行软件设计,在软件编程过程中遇到了很多问题,后来翻阅了大量有关单片机方面的书籍、上网查阅资料才真正根据设计要求设计硬件电路,逐步完成了软件方面的编程。系统实现了电脑底座温度数据的测量,设计很好的完成了对笔记本的温度监控和散热设备的运行。可以被广泛的应用到生产和生活中,如带有温度控制的场合、工业温度测量仪表等。附录:单片机程序应用层〔主程序〕#include"MAIN.H"#include"DS18B20.H"/*DS18B20存放器地址*/#definejump_ROM0xCC#definestart0x44#defineread_EEROM0xBE/*PWM值*/uint8CYCLE=10;//定义周期该数字X基准定时时间如果是10那么周期是10x0.1ms,时间可以调整这个是10步调整周期10ms8位PWM就是256步uint8PWM_ON=0;//定义高电平时uint8temp=0;/*温度值缓存*/codeuint8number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};/*********************************************************************名称:display_led*功能:中间延时*输入:无*输出:无***********************************************************************/voiddisplay_led(uint16sum){ staticuint8a=0; switch(a) { case0:ADDR0=1;ADDR1=1;ADDR2=1;ADDR3=0;P0=~number[sum%10];break; case1:P0=0XFF;break; case2:ADDR0=1;ADDR1=1;ADDR2=0;ADDR3=1;P0=~number[sum/10%10];break; case3:P0=0XFF;break; case4:ADDR0=1;ADDR1=0;ADDR2=1;ADDR3=1;P0=~number[sum/100%10];break; case5:P0=0XFF;break; case6:ADDR0=0;ADDR1=1;ADDR2=1;ADDR3=1;P0=~number[sum/1000%10];break; case7:P0=0XFF;break; default:break; } a++; if(a>7) { a=0; }}/*********************************************************************名称:Mode_Selection*功能:模式选择*输入:无*输出:无***********************************************************************/voidinterrupt_init(){ /*定时器0*/ TMOD=0x11; TH0=(65536-1000)/256; TL0=(65536-1000)%256;//定时1mS ET0=1; TR0=1; TH1=0X4c; TL1=0X00; ET1=1; TR1=1; EA=1;}/*********************************************************************名称:main*功能:主函数*输入:无*输出:无***********************************************************************/voidmain(){ ADDR0=1;ADDR1=1;ADDR2=1;ADDR3=1;PWM=1;/*端口初始化*/ interrupt_init();/*定时器设定*/ while(1) { display_led(temp); /*根据温度值调整转速*/ if((temp>=20)&&(temp<=21)) { PWM_ON=0; } if((temp>=22)&&(temp<=23)) { PWM_ON=6; } if((temp>=24)&&(temp<=25)) { PWM_ON=10; } if((temp>=26)&&(temp<=27)) { PWM_ON=17; } }}/*********************************************************************名称:interrupt_PWM*功能:定时中断0效劳函数,用于PWM波形产生*输入:无*输出:无***********************************************************************/voidinterrupt_PWM()interrupt1{ staticuint8count; TH0=(65536-1000)/256; TL0=(65536-1000)%256;//定时1mS if(count==PWM_ON) { PWM=1; } count++; if(count==CYCLE) { count=0; if(PWM_ON!=0)//如果左右时间是0保持原来状态 PWM=0; }}/*********************************************************************名称:interrupt_display*功能:数码管显示*输入:无*输出:无***********************************************************************/voidinterrupt_display()interrupt3{ staticuint8cont=0; uint8TMPH; uint8TMPL; TH1=0X4c; TL1=0X00; if(20==cont) { cont=0; Reset(); write_byte(jump_ROM); write_byte(start); Reset(); write_byte(jump_ROM); write_byte(read_EEROM); TMPL=read_byte(); TMPH=read_byte(); temp=TMPL/16+TMPH*16; } cont++; }DS18B20〔底层〕#include"MAIN.H"#include"DS18B20.H"/*********************************************************************名称:delay()*功能:延时函数*输入:无*输出:无***********************************************************************/voiddelay(uint16N){ uint16i; for(i=0;i<N;i++);}/*********************************************************************名称:Reset()*功能:复位DS18B20*输入:无*输出:无***********************************************************************/uint8Reset(){ uint8deceive_ready; DQ=0; delay(29); DQ=1; delay(3); deceive_ready=DQ; delay(25); return(deceive_ready);}/*********************************************************************名称:read_bit()*功能:从DS18B20读一个位值*输入:无*输出:从DS18B20读出的一个位值***********************************************************************/uint8read_bit(){ uint8i; DQ=0; DQ=1; for(i=0;i<3;i++); return(DQ);}/*********************************************************************名称:write_bit()*功能:向DS18B20写一位*输入:bitval〔要对DS18B20写入的位值〕*输出:无***********************************************************************/voidwrite_bit(uint8bitval){ DQ=0;if(bitval==1) DQ=1; delay(5); DQ=1;}/*********************************************************************名称:read_byte()*功能:从DS18B20读一个字节*输入:无*输出:从DS18B20读到的值***********************************************************************/uint8read_byte(){ uint8i,m,receive_data; m=1; receive_data=0; for(i=0;i<8;i++) { if(read_bit()) { receive_data=receive_data+(m<<i); } delay(6); } return(receive_data);}/*********************************************************************名称:write_byte()*功能:向DS18B20

温馨提示

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

评论

0/150

提交评论