版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务分配
总体方案设计:XXXXXXXXXXXXXXXXXX
软件系统设计:XXXXXX
硬件系统设计:XXXXXX
绘图:XXX
软件编程:XXXXXXXXXXXX
整体效果图:
目录
任务分配0
第1章绪论1
1.1设计背景1
1.2系统总体方案设计概述2
第2章方案设计3
2.1性能要求3
2.2设计思路3
第3章电子体温计的控制电路的设计〔硬件系统的设计〕4
3.1总体设计思想4
3.2传感器电路4
3.3单片机电路5
3.4LCD1602显示屏电路8
3.5电源模块9
第4章软件控制程序的设计10
4.1DS18b20的读操作10
4.2DS18b20的温度数据处理11
4.31602显示局部12
第5章系统调试与测量13
5.1系统调试13
5.2测量数据13
5.3误差分析13
课程设计心得15
附录116
附录217
参考文献25
第1章绪论
1.1设计背景
由于水银体温计精度很高、使用方便、并且易于携带,因而很多
人喜欢采用水银体温计。再加上体温计测温方法及其结构都已完全成
熟,并没太多的改良余地,人们对水银体温计的研究热情逐渐渐低,
到现在水银体温计几乎已经没有什么开展的余地。再加上由于测量体
温用水银体温计很不方便,如果打破摔坏体温计,水银的污染也很严
重等,为了准确测量人体的局部温度,促使人们不得不开发了多种多
样的测温方式和测温器件设备。
现在其它不同种类的电子仪器测量体温也日益普及,已有许多医
院采用了电子体温计来测量体温。这一事实至少说明了,电子测温仪
器的性能与水银温度计的性能已经很接近了。因此,鉴于传统的水银
体温计多种因素,诸如汞的污染及其携带不方便易破碎,尤其是测量
时间过长等缺点,本课题为解决此问题设计出一种数字式电子体温
计。它在稳定性及响应时间上比传统的水银体温计有着显著的优势,
精度要求也能和传统的水银体温计相媲美。
单片机智能化仪表在测量仪表的方面,有着很大的开展趋势。它
给日常生活带来多方面的进步,其中数字温度计就是一个典型的例
子,家庭、医院等随处可见,为了能更加满足人们的需要,数字体温
计正在不断的进行更新换代。
现在所使用的温度计还有很多是水银、酒精或煤油。温度计的分
辨力都是为1-0.1C。这些普通水银温度计的刻度间隔通常都很密
集,读数比拟困难,分辨的不准确,而且他们有着比拟大的热容量,
需要很长时间到达热平衡,因此温度数值很姓读准,使用非常不方便。
本设计所介绍的电子体温计,主要用于家庭等普通环境。与传统的水
银温度计相比,电子体温计易于读数,广泛的测温范围,测温精度比
拟高等优点,其输出温度采用数字显示。
现在温度计开展非常迅速,从最原始的玻璃管温度计开展到了现
在的热电偶温度计、热电阻温度计、集成的半导体数字温度计等。在
电子式温度计中,最重要组成局部就是传感器。温度计的测量范围、
精度、控制范围和用途取决于传感器的精度、灵敏度等等。现在的温
度传感器被广泛的应用,目前已经研制出各种各样的新型温度传感
器,从而现在温度监控系统的功能口趋强大。
1.2系统总体方案设计概述
该系统用于体温检测,能准确快速地测量人体体温,并且需要实
时的显示当前的温度。与传统的水银玻璃体温计相比,电子体温计具
有方便的读数,高精度的测量,测量时间比拟短,能记忆并有与其它
体温计不同的蜂鸣提示的优点。
第2章方案设计
2.1性能要求
测温范围32℃~43℃,误差在±0.2(以内,当温度超过37.5℃
时,可以报警,采用LED数码管直读显示。并且能够实时的宽范围
的温度检测,能清楚的显示与读出数据。
2.2设计思路
本研究旨在设计一个电子体温计,主要控制器采用单片机
STC89C52,传感器采用美国DALLAS半导体公司生产的DS18B20
智能型传感器。该传感器检查的温度是32。(2~43久之间,检查的分
辨率为±0.2。€:。当温度出现不同寻常的时候,不在设置范围内时,可
以报警,且是通过蜂鸣器。研究工作总体包括以下多个方面:了解电
子体温计的工作原理,典型结构,开展历史及国内外的研究和开展的
现状;研究电子体温计的两个最主要的核心模块:DS18B20传感器控
制和STC89C52单片机主控制器。
第3章电子体温计的控制电路的设计〔硬
件系统的设计〕
3.1总体设计思想
LED
显
串口通信接口主示
控
5V稳压电路制
温
器度
传
八一二
时钟振荡感
器
图3-1系统框图
3.2传感器电路
美国DALLAS半导体公司设计生产一种DS18B20温度传感器,
并且DS18B20是一种智能化的温度传感器。新出来的,比拟流行的
温度传感器,是与平常传统的热敏电阻等测量温度的元件相比拟,它
提供9位(二进制)温度读数,并且可以指示器件的温度,而且能够直
接读出被测的温度数值,因此选用此传感器。
DS18B20的性能和特点如以下几点,都是很好的优点:其一是多
个DS18B20可以并联在唯一一个单独的三线上,并且能够实现多点
组网功能;其二是独特单独的单线接口仅仅需要一个端口引脚就可以
进行通信;其三是用户可以自己定义的非易失性温度报警的设置;不
需要外部的外围器仁;其余的是可以通过数据线供电,电压范围为是
在3.0〜5.5V;当待机的时候,功耗为零;温度以9〜12位的数字两读
出;负电压特性,当电源极性接反的时候,温度计不会因发热而烧毁,
只是不能正常工作。报警搜索命令识别并标志超过程序限定温度(温
度报警条件)的器件。
DS18B20的主要特性:
U)适应更加宽广的电压范围,电压范围:3.()〜5.5V,并且采
用数据线供电,与此同时也可以采用寄生电源方式;
(2)DS18B20还具有的很多强大的功能,其中一项就是支持多
点的组网功能,在唯一单独的三线上,就可以让多个DS18B20功能
并联,实现组网多点测量体温;
(3)具有很独特的单线接口方式,需要一条口线即可让DS18B20
在与微处理器连接,并且能够实现微处理器与DS18B20的双向通讯;
(4)不需要用其他的任何外围的元器件DS18B20就可以使用,
一只三极管的集成电路包含了全部传感元件及转换电路;
15)温范围一55℃〜+125℃,在-10〜+85℃的时侯精度是±0.5℃
左右;
(6)有9〜12位的分辨率是可以用来编写程序的,对应的可分
辨温度依次分别为0.0625C、0.125C、0.25C和0.5℃,测量温度可
实现精度高;
(7)温度转换为数字,且条件是在9位分辨率时,最多花费
93.75ms,而在12位分辨率时,把温度值转换为数字,速度更快,最
多在750ms内;
(8)测量结果可以输出直接明确的数字的温度信号,通过串行,
CPU接受〃一线总线〃,同时可以传送CRC校验码,拥有极强的抗干
扰纠错能力;
(9)负压特性:当接反电源极性的时候,芯片不会发热,因而
更加不会被烧毁,但之后不能正常工作。
图3-2DS18B20电路图3-3DS18B20封装管脚图
3.3单片机电路
STC89c52是一种CMOS8位微小型控制器,其性能高、功耗低,
并且具有可编程Flash存储器,数据容量是8Ko在单芯片上,
STC89C52为众多嵌入式控制系统应用提供有效、灵活的解决方案主
要其原因就是拥有可编程Flash和灵活的8位CPUo具有以下标准功
能:512bitRAM,8kbitFlash,32位I/O口线,看门狗的定时器,内置
4KBEEPROM,MAX810复位电路,单个6向量2级中断结构,三
个16位计数器/定时器,全双工串口。另外静态逻辑操作是STC89X52
降至0Hz,并且支持2种软件,与此同时,还可选择节电模式。当
CPU停止工作,就是属于空闲模式。此时允许RAM、串口、计数器/
定时器、中断时候继续工作。保存RAM内容,可以在掉电保护方式
下,并且可以把振荡器冻结了,单片机停止一切工作,直到下一个硬
件复位或中断为止。最高运作频率35Mhz,6T/12T可选。
STC单片机引脚说明:
(1)GND:接地
(2)VCC:电源电压
(3)RST:重新设置。当振荡器复位器件时,要保证持续RST
脚两个机器周期的高电平时间。
(4)/EA/VPP:在止匕时间段外部程序的存储器(OOOOH-FFFFH),
就必须是在/EA保持持续电平低时,不管是否有内部的程序存储器。
/EA将内部锁定为恢复设置,此时应当注意加密方式1;当/EA端保
持电平高的时候,在FLASH可以编写程序的期间。此间的内部的程
序存储器,施加12V编程电源在这个引脚上,也可以用于(VPP)o
(5)XTAL1:输入内部时钟的工作电路以及输入反向振荡的放
大器。
(6)XTAL2:为反向振荡器的输出。
(7)P0口:总线复用口是P0口,而且是数据/地址合起来的,
也即是一个8位开路漏级双向I/O口。作为输出口用时,每管脚可吸
收8TTL门电流。P()能够用于外部程序数据存储器,它可以被定义为
数据/地址的第八位。当P0口的管脚第一次写1时,被定义为高阻态
输入。当FIASH进行校验时,P0外部必须被拉高,是由于P0输出原
码,在FIASH编程时,P0口作为原码输入口。
(8)P1口:把1写在P1口管脚之后,高电平就会在内部产生,
并且可以用作输入。4TTL的门电流能够被P1口缓冲器可以能够吸收
或输出,主要原因是PI口内部带一个可以提供上拉电阻的X位双向
I/ODo电流在内部被上拉,当下拉为低电平在P1口被外部产生的时
候,电流将会被输出。地址接收是当P1口作为第八位,并且在FLASH
编程和校验的时侯。
(9)P2口:4个TTL的门电流可以在P2口的缓冲器可吸收或
输出,P2口内部带一个8位双向I/O口,并且是可以上拉电阻的。并
因当P2口的管脚被外部拉低,这个是作为输入的时侯来的,将输出
电流。这是由于内部上拉的缘故。P2口在FLASH编程和校验时接收
控制信号和高八位地址信号。P2口当用在16位地址外部数据存储器,
并且进行存取或外部程序存储器的时候,P2口输出地址的高八位。
管脚内部有上拉电阻拉高,主要是当P2口被写“1”时,并且把P2口
当作为输入。它优势有利用内部上拉,并且在给出地址“1”的时侯,
当进行读写外部八位地址数据存储器的时候,P2口输出其特殊功能
存放器的内容。
(10)P3口:P3口内部的管脚是8个带上拉电阻的双向I/O口,
可吸收或输出4个TTL门电流。作为输入,由于外部下拉为低电平,
P3口将输出电流(ILL)这是由于上拉的缘故。当P3口写入力”后,
用作输入,与此同时,并且内部电平上拉为高电平。
AT89C51的某些特殊功能口可以采用P3口来实现,如下表所示:
管脚备选功能
P3.0RXD串行输入口
P3.1TXD串行输出口
P3.2/INTO外部的中断0
P3.3/INT1外部的中断1
P3.4T0外部的输入记时器0
P3.5T1外部的输入记时器1
P3.6/WR写选通的外部数据存储
器
P3.7/RD读选通的外部数据存储
器
P3口同时为闪烁编程和编程校验,且可以接收一局部控制信号。
UI)/PSEN:外部程序存储器之中有选通信号在。在由外部程
序存储器工作时候,取指期间,两次/PSEN有效,且在每个机器周期
中。但两次有效的/PSEN信号将不出现在访问外部数据存储器时。
(12)ALE//PROG:通常情况下,ALE端输出正脉冲信号,并
且以不变的频率周期,此频率为振荡器频率的1/6。因此它可用作对
外部输出的脉冲或用于定时目的。当外部存储器准备被访问的时候,
锁存地址的地位字节可以让地址锁存允许的输出电平。此引脚用于输
入编程脉冲,主要是用在FLASH编程期间。此时,ALE只有在执行
MOVX,只有在ALE情况下,MOVC指令是才起作用的。然而要注
意的是:跳过一个ALE脉冲,就会用作外部数据存储器时。如想禁
止ALE的输出可在SFR8EH地址上置0。另外,该引脚被略微拉高。
如果是无效的置位,很可能主要原因是禁止了微处理器在外部执行状
态ALE。
本次设计中使用的引脚为RXD,TXD,P2.P3口。
PLCC
X
吾
山ap
N§oO
sWW
e0LE
・oOO
sdd
nnn
nnnnnnn
iMOSI)P1.5CJP04(A34)
i:MISO)P1.eE□P0.5(AO5)
(SCK)P1.7C□P0.6(AD6)
RSTC□P07(AD7)
(RXD)P3.0E□EAlWP
NC匚□NC_____
(TXD)P3.1E□ALEFROG
(INTC)P32C□PSEN
mn)P3.3匚□P2.7(A15)
(TO)P3.4匚□P26(A14)
(T1)P3.5C□P25(A13)
umuuUou口uU
9m二Qo-E
Ea5zzZ&
dldd
(值x-O
怪<«<6M
))
图3-4STC89S52管脚图
图3-5单片机电路原理图
3.4LCD1602显示屏电路
1602液晶也叫1602字符型液晶,字母、数字、符号等的点
阵型液晶模块将可以显示在1602上的,可以显示一个字符,是
通过每个点阵字符位来实现的,并且组成局部是假设干个5X7或
者5X11等点阵字符位。每位之间有一个点距的间隔,每行之间
也有间隔,起到了字符间距和行间距的作用。1602LCD是指显示
的内容可以显示每行16个字符液晶模块,并且可以显示两行,
1602代表的就是这个意思。
LCD1602液晶显示内容丰富、小巧的体积、功耗低、超薄且
轻巧,常用在微型仪表和低功耗应用系统中。
1602的16脚接口是采用标准标准的,其中:
⑴第1脚:接地电源是VSS;
⑵第2脚:正电源是VDD接+5V;
(3)第3脚:液晶显示器调整比照度的端口是V0,接正电源的时
候比照度是最弱的,接地电源的时候比照度是最高的,比照度太高时
会出现不一样的“鬼影”,使用时,比照度的调整,可以通过一个10K
的电位器来进行;
(4)第4脚:RS为选择存放器,指令存放器用于低电平的时候、
数据存放器用于高电平的时候;
(5)第5脚:信号线RW是代表读写的,写操作通常都是在低电
平的时候进行,读操作通常都是在高电平的时候进行,显示地址或者
写入指令就要当RS和RW均是为低电平的时候。低电平的时候可以写
入数据,必须要是当RS是高电平RW时候,高电平的时候可以读忙信
号,必须要是当RS是低电平RW时候;
16)第6脚:E端是使能端,其作用就是当E端从高电平跳转成为
低电平的时候,液晶模块会按照流程执行命令;
(7)第7〜14脚:8位双向数据线是从DO到D7;
(8)第15〜16脚:这些都是空脚;
从以上可以知道,LCD1602有16只管脚,每只都有不同的作用。
设计好电路,再通过软件编程。当通电时候,就会启动显示屏,显示
屏就会工作,就会显示外面所需要的。
图3-6LCD1602电路原理图
3.5电源模块
如下图,该电路图是电源模块,主要负责整个电路系统的电源供
给。整个电子体温计采用的是稳压5V恒流电源。
由于这个电子体温计的电路系统的外部电源,不一定全都是系统
所要求的而5V稳压电源,故需要对输入的电压进行稳压处理才行,
通过处理电压,才会产生5V的电压。并且稳压是时候,所采用的稳
压的芯片是最常用的78xx系列的7805稳压芯片。为了系统运行的稳
定性,而且由于稳压芯片有波动的波形。所以应该要对稳压之前和之
后的电压进行滤波史理,处理之后的波形,才会增加电形的平滑,这
时候,电子体温计整个电路系统才运行的更加稳定,可靠,不会出问
题。
图3-7电源模块电路原理图
以下是整个电子体温计的系统电路原理图
图3-8电子体温计原理图
如图3・8所示,整个电路原理图,分有几个模块,其中主要就是
有单片机模块,DS18B20温度传感器模块,显示模块和电源模块。而
其中也有些小模块,如晶振模块,报警器模块等等。这四个大模块,
不同功能,有机的垢合起来,成为一个完整的整体。
第4章软件控制程序的设计
4.1DS18b20的读操作
DS18B20的主要数据元件有:64位激光LaseredROM,温度灵敏
元件和非易失性温度告警触发器TH和TLoDS18B20可以从单总线
获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单
信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上
寄生(电容)电源为止。止匕外,还可外接5V电源,给DS1D8B20供电。
DS18B20的供电方式灵活,利用外接电源还可增加系统的稳定性和可
靠性。DS18B20读写时序如图4-1〜4-3:
图4-1DS18B20的复位时序图
图4-2DS18B20的写数据时序图
图4-3DS18B20的读数据时序图
由时序图可知,DS18B20在复位时需要480us的低电平,等待
15us后MCU将总线拉高,等待DS18R20的响应信号;DS18R20在
写数据时分为写“O''和写"1”操作,写"0”操作时,DS18B20需要至少
60us的总线被拉低,然后在60us内将“0”写入DS18B20中,持续时
间至少1US,写力”操作是只需将写入的“0"改为'T唧可;DS18B20读
操作也分为读“0”和读“1”操作,读“0”操作时,总线需要15us被拉低,
再拉高45us,然后再15us内将数据读走,读“1”操作同读“0”操作。
程序流程图如图4-4:
开始
图4-4DS18B20读取温度的流程图
4.2DS18b20的温度数据处理
读出温度数据后,LOW的低四位为温度的小数局部,可以精确
到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数局部,
HIGH的高四位全部为1表示负数,全为。表示正数。所以先将数据
提取出来,分为三个局部:小数局部、整数局部和符号局部。小数局
部进行四舍五入处理:大于().5℃的话,向个位进1;小于0.5℃的时
候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,
将其整数局部取反加一。还因为DS18B20最低温度只能为-55C,所
以可以将整数局部的最高位换成一个“丁,表示为负数。图4-2为温度
数据处理程序的流程图。
图4-5温度数据处理流程图
4.31602显示局部
1602的读写时序图如下:
图4-61602液晶的读时序图
图4-71602液晶的写时序图
第5章系统调试与测量
5.1系统调试
电子体温计系统的硬件调试一般分下面几个步骤。
第一步:检查外部的各种元器件,看元器件是否完好无损,并且
观察电路板上的电路是否有断点。是否有漏焊,虚焊等等。
第二步:用仪器仪表进行检测,这里主要采用万用表进行检测,
先用万用表复核目测中有疑问的连接点,拐点等等,再次检测各种地
线与电源线之间是否有短路、断路等不良现象。
第三步:通电检测。给电路PCB板通上电,检测所有器件的电
源是否符合要求的值。并且检测整个电路的功能是否能够正常运行。
第四部:在通电工作中,观察电子体温计能否正常的测量体温,
并且检查显示屏能否正常显示数据。
5.2测量数据
表5・1
测量人物普通水银体电子体温计
温计
同学甲36.436.2
同学乙36.536.4
同学丙36.636.6
同学丁36.836.6
图5-1水银温度计
图5-2电子体温计实物图
如图5・1所示,此处采用的是原始的水银温度计来进行体温的测
量,所测得的数据是36.3C,如图5-2所示,采用本次设计的电子体
温计测量同一个同学的体温,所得数据是36.8C。通过以上水银体温
计和电子体温计比拟,得出电子体温计根本符合本次设计的要求,但
是还是有细小的误差。
以上数据是通过多个同学的测量,水银体温计和电子体温计均测
量了几次,再将所测得的数据填入上表中,通过数据分析,电子体温
计,根本符合要求,没有出现重大误差。
5.3误差分析
通过用普通水银体温计与电子体温计分别测量人体体温,得出以
上几组数据。但是仍然有细微的误差,通过分析,可以得出以下几点
原因。
U)硬件电路设计的细小误差。由于是在制作电路板时候的微
小误差,与做工精细有关。
(2)软件程序的误差。在编程时候,一些数据,延时,有些组
微的差异。
课程设计心得
本次设计电子体温计终于完成了,在本次设计中,我不仅把知识
融会贯穿,而且丰富了大脑,同时在外观到论文的编写都是先查阅了
大量资料过程中也了解了许多课外知识后确定,再经老师指导,开拓了
视野。在这次设计中,我切身感受到了使自己在专业知识方面和动手
能力方面有了质的飞跃。
在此次设计过程中,我也曾遇到过困难,如软件不知如何编程、
不知从何下手等种种困难。刚开始面对课题感到迷茫,不知该从何下
手,但经过老师的辅导、与自己在图书馆和网上查阅的相关资料,不
断学习。但是再编程调试过程中又遇到问题,总是出现问题,在自己
耐心的调试下终于把软件这个问题解决了,最终完成了。从中我体会
到了人是越挫越勇的,只有战胜自己,才会取得成功。
通过本次课程设计,我了解到电子体温计的主要设计思路,稳固
了自己所学电子科技方面的大量学科知识,也学会了诸如PROTEL99
等软件的使用。同时,也了解到电子体温计具体步骤措施、主要是对
DS18B20的了解更加深入。与此同时,更加熟悉了单片机的内部结构,
对我将来的工作也有很大的作用。
附录1
附录2
程序代码:
-----------------------------------------------—*/
#include<reg52.h>〃包含头文件,一般情况不需要改动,头文件
包含特殊功能存放器的定义
#include<lcdl602.h>
unsignedcharflag_get=O;
sbitDQ=P3A3;//dsl8b20端口
unsignedcharTempcratureFlag=O;
[/•;•»T»•丫.»T»»T».[•»TwrTw»Tw^Twri»»T».卜.;・»T»•1・*T».[・»Tw»T»*X*»Tw»Tw•[•*?*3•^»T*2»^・1«1.•.J・.;・»T«»*?1w^»*T1»«”[•»Tw»Y»»Tw”1•»*T1w*・[•*T»»Tw”1•
/
函数声明
f^4»f»kf»*X**2^kf«
/»T»»T»•]・•7•»T»»T»»i»»T»»T»»T»•1•»7»»T»^T»»T»•1••]・»T»•!••7•»T»•[、・[•»T»•?•»T»»T»•]・•1••[••?•»T»»Tw»T»»T»»T»<T»»T»»T»
•A**1*»!•»t**1*•!*/
«i**i»*Z**i、****1*/
unsignedintReadTemperature(void);
voidInit_DS18B20(void);
unsignedcharReadOneChar(void);
voidWriteOneChar(unsignedchardat);
voiddelay(unsignedinti);
voidReadToData();
voidputchar(unsignedcharbuff);
voidDisplayO;
/*---------------------------------------------------
延时子程序
..................................-.........................*/
voiddelay(unsignedintent)
(
EA=0;〃总中断翻开
cnt=cnt*2;
while(—ent);
EA=1;
/jjc51c51crjcjjcjjc51crjCrjcrjc51c5jC5jCr|?*|C5jCr|*»|C55Cr|C»|CrjC»|Cr|C51c5jCr|CrjCr|CrjC•5»?!C51c5^5fCr|C
^X**X**1«f
^Jw»T»•卜•卜»T»•[••;•/
串口初始化函数
*/
/»jCr|Cr!?rjwr|Crji»|Cr}«jjw»|C51crji*5Cr|CSjiijCr|ir|w*Jw»{Cr|Cr|«rjCr^C»|Cr}«rjwrfCr|*rjCr|»r|CijC51cr^Crjw»{CrfCe|Cr}Cr{C»|CrJCr|Cr|*rjwSjCr|»r|wrjjr|Cr|wrjw
»Y»*»XT«**»1T»**»XY«**»1T»*•;・/J
voidUARTinit(void)
(
SCON=0x50;/*SCON:模式1,8-bitUART,
使能接收*/
TMOD|=0x20;/*TMOD:timer1,mode2,8-bit
reload木/
TH1=OxFD;/*TH1:reloadvaluefor9600
baud@11.0592MHz*/
TRI=1;/*TRI:timer1run
*/
TI=1;
.主函数
*/
main()
P3=0XFF;
UARTinitO;
InitLcd();〃初始化LCD
DelayMs(15);〃延时保证信号稳定
while(l)
ReadToData();
DisplayO;
)
/*2^*X**X**x**1»«1«*x*«x**2^*X**1**X**X*«t»«1«*1^«1«
I»Y»»T»吓.»^w»T»rTw»Tw»Tw.[・»Tw»Y»»Tw»Tw»T»»T«»Yw»T«»T«»T»rTw»T»rTw•;•»T»»Yw»T»»T»»Tw^J・»Tw»T«.[・•;•»T»»Tw»T»»T«»Tw»Yw»Tw»T»*T»»Tw»iw»Tw»Yw
*1*/
初始化
*/
f^4*1«*2^**•«T«^2^^1*■>«1««!«*3^*1^•(««(4*i"*X*•1««X«•!**2^»f^•(«•1«
f»7^»T»»Tw•1•・[••[•»Tw・[•〃・»T»»Tw•7•4••1•/••[••/»・[••1•»Tw・[•q・•1•»T»•7•"••[•»T»•]••?••[••[••?•»T»»iw•[••卜•[・»T»"••[・•[•»Tw
,・
••A*•»•l*•••].•»1,••£•“•.••].,••>•1•/J
voidInit_DS18B20(void)
unsignedcharx=();
DQ=1;//DQ复位
delay(8);〃稍做延时
DQ=0;〃单片机将DQ拉低
delay(80);//精确延时大于480as
DQ=1;〃拉高总线
delay(lO);
x=DQ;〃稍做延时后如果x=0那么初始化成功x=l那么初始
化失败
delay(5);
f7,*£«y.7,、>*2*K1*、S**£*、1*7,*2**1*、!*、>*2*7.、1*、1**2*、1*、>*£*7,、>*2*7,、>*2*、>*S**1**3**]>
[*j»r5、,卜«、*5、,[、(、■[、*j*rj、,〉(、■,、,卜》7»*,»•[、*5、,i、q、•[、*j**,»,]、,卜q、,:、,卜q、•[、,]、*5、■;、q、,[、,卜*5«*,»■卜*j、•:、,卜"、,[、,卜
********/
读一个字节
*/
/jjc51c51crjcjjc*|cjjc5^C51crj«5§Crjc5|Crjc»jC51c5jC55C*{C*|*5j«5jCr|?*|CJjCjJ??!C5jCr|*»|C55Cr|C»|CrjC*|C»|C5jCr|C51c5jCJ^Cr|CrjC55Cj{Cr|C5^C55Cr|C*|Crjc»{C»|C
^X**X**1«f
»T»•卜•卜»T»•[••;•/
unsignedcharReadOneChar(void)
(
unsignedchari=0;
unsignedchardat=0;
for(i=8;i>0;i-)
(
DQ=0;〃给脉冲信号
dat»=1;
DQ=1;//给脉冲信号
if(DQ)
dat|=0x80;
delay(5);
)
return(dat);
}
、曲,曲
//«»Tf»»»»T»•]・»*1T^»*»xT»**3^»T»»T»■»T»»T»4•»T«»t«*3^»T»»T*1»*•[••,»T»»T»•7*3*^*T*»T»•[、»kTf»«»«T»i«*2^•»1T»**1•[、・[••[•*2•^r»*1»*T»»Tw^T»»T»^T»»T»»T»»T»*3^X»cT»*X*T*»■»T»
*i»»!*»!•q**1*•!*/
*7*»i**7**Z**«**»**T**7»/
写一个字节
*/
、>**、、
Jf*Jw•;■,卜,卜*(2、**•1[•*K,J卜**•3}»*,;、•;♦*•1卜**2**•1[•**,1]、*.*J>w(、*•2;•*•卜*r3jw*•;•K,1卜•卜>(、*•1[^•,卜v•>l**25*•卜,卜**S7**•2;•**,1卜**4*(£、v•卜i>•J卜***£5***■1卜**•11*•*eSjw**•2卜**,1卜*•S卜**(2、**•1;•*v,卜l«*,£;、*,卜*•1卜***S5%**•£1*•,卜•卜*(2、**•1;•**•11*•
个、»Tw»T»^»Y1«**»XT«**»1T*J/
voidWriteOneChar(unsignedchardat)
unsignedchari=0;
for(i=8;i>0;i-)
DQ=0;
DQ=dat&()x()l;
delay(5);
DQ=1;
dat»=l;
delay⑸;
)
j|Cr|CrjCr|C»}CrjCrjwrjC?|C5|CrJCrjCr|%rjijjCr|Cr|CrjijjCr}ir{C»{CrjC5§Cr|%r|CrjCS^Cr|Cr|ijjCr|Cr|CrjC»5**|C51crjC5{C5!CejCr|%r|C*^Cr|»rjwr}Cr{Cr|w*1C
•1«/
•卜•卜•[••[••;・/
读取温度
木/
/«*««!*K1»«*^«*«*L«***«Y>KL«****2*KL»*3**X^*1**1*«***1*«f#«t»»*»7,«f««t»KL»*X^*1**1*
/rp*7^*|wrj*»j**jwej»rj«rjwej«rjwrjwrjwrjw*,«*j»*j«rj**Jw%*rj*rprprj»rj**4*%*ry**prj»
f
»T*»T»•1••[••!••?•/
unsignedintReadTemperature(void)
unsignedchara=0;
unsignedinfb=();
unsignedintt=0;
Init_DS18B20();
WriteOneChar(OxCC);//跳过读序号列号的操作
WriteOneChar(Ox44);//启动温度转换
delay(200);〃用显示代替显示
Init_DS18B20();
WriteOneChar(OxCC);〃跳过读序号列号的操作
WriteOneChar(OxBE);〃读取温度存放器等(共可读9个存放器)前
两个就是温度
a=ReadOneChar();〃低位
b=ReadOneChar();〃高位
b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防范电信网络责任制度
- 非煤矿山过磅员责任制度
- 项目实施责任制度
- 风险管控责任制度
- 食堂管理人责任制度
- 餐厅食堂岗位责任制度
- 饮用水卫生责任制度
- 驾校场地安全责任制度
- 高速服务区监管责任制度
- 2026云南昭通鲁甸县卯家湾第二幼儿园招聘6人备考题库附参考答案详解(b卷)
- 3.1公民基本权利 课件(34张幻灯片)+内嵌视频 道德与法治统编版八年级下册
- 零碳园区白皮书系列-苏州工业园区-
- 2025-2026学年赣美版(新教材)初中美术八年级下册(全册)教学设计(附目录P134)
- 2025年江苏食品药品职业技术学院单招综合素质考试试题及答案解析
- 2025年度济南水务集团有限公司员工招聘160人笔试参考题库附带答案详解
- 2026年六安职业技术学院单招职业适应性考试题库带答案详解(达标题)
- 2026年春人教PEP版(新教材)四年级下册英语教学计划(含进度表)
- 2026届新高考政治三轮热点复习+订约履约 诚信为本
- 2026年上海建桥学院单招职业适应性考试题库附参考答案详解(满分必刷)
- 交警网格化管理考核制度
- 2026年伊春职业学院单招职业适应性测试题库含答案详解(新)
评论
0/150
提交评论