版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目二
电子温度计的制作项目二
电子温度计的制作温度的测量和显示,在我们的日常生活中随处可见,如空调、冰箱、万年历等。本项目中,通过DS18B20采集当前温度,并以数字量的形式送给单片机,单片机对该数字量处理后在电路板上由三位数码管进行显示。任务一温度检测电路的搭建一、任务描述根据数字温度传感器DS18B20的特性,设计其与单片机的接口电路。二、相关知识DALIAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。用户可轻松地组建传感器网络,提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。支持3~5.5V的电压范围,使系统设计更灵活、方便。DS18B20的引脚及功能如表2-1所示。图2-1
DS18B20引脚及底视图项目二
电子温度计的制作任务一温度检测电路搭建1DS18B20的性能特点如下:1)只要求l根口线即可实现通信。2)在DS18B20中的每个器件上都有独一无二的序列号。3)实际应用中不需要外部任何元器件即可实现测温。4)测量温度范围在-55~+125℃之间。5)数字温度计的分辨率,用户可以从9—l2位选择。项目二
电子温度计的制作任务一温度检测电路搭建1
1.64位光刻ROM
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看做是该DS18B20的地址序列码。6位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的唯一序列号,最后8位是前面56位的循环冗余校验码(CRC)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20内部结构如图2-2所示,主要由五部分组成:64位光刻ROM、高速缓存、温度存储器、非易失性的温度报警触发器TH和TL、配置寄存器。项目二
电子温度计的制作任务一温度检测电路搭建12.高速暂存存储器高速暂存存储器包含了9个连续字节,其字节定义如表2-2所示。前两个字节存放测得的温度值,第1个字节的内容是温度的低8位,第2个字节是温度的高8位。第3个和第4个字节是TH、TL的易失性复制,第5个字节是结构寄存器的易失性复制,这三个字节的内容在每一次上电复位时被刷新,第6,7,8个字节用于内部计算。第9个字节是冗余检验字节,是前面所有8个字节的CRC码,可用来保证通信正确。项目二
电子温度计的制作任务一温度检测电路搭建1
而配置寄存器为高速暂存器中的第5个字节,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定位如下:TMR1R011111
低5位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式在DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即设置分辨率,温度转换精度位数及时间表如表2-3所示(DS18B20出厂时被设置为12位)。表2-3
温度转换精度位数及时间表R1R0分辨率温度最大转换时间/ms009位93.750110位187.51011位2751112位750
由表可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。项目二
电子温度计的制作任务一温度检测电路搭建13.温度存储器
DS18B20中的温度存储器存放着温度的测量的结果,以12位转化为例:用16位符号扩展的二进制补码形式提供,以0.0625。C/LSB形式表达,其中S为符号位,如表2-4所示。
这是12位转化后得到的12位数据,存储在高速RAM的前两个字节中,二进制位中的前面5位是符号位,如果测得的温度大于O,这5位为O,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为l,测到的数值需要取反加l再乘以0.0625即可得到实际温度。
项目二
电子温度计的制作任务一温度检测电路搭建1
4.CRC的产生
在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。由于DS18B20内部集成有温度传感器及模/数转换电路,因此DS18B20制作电子温度计电路特别简单,但其采用单总线传输协议,编程难度较大。
项目二
电子温度计的制作任务一温度检测电路搭建1三、任务实施DS18B20与单片机的典型接口电路如图2-3
温度传感器与单片机的接口电路所示,DS18B20的正电源3脚接+5v,l脚接地,2脚接I/O口,3脚和2脚之间接一个4.7k的上拉电阻。图2-3
温度传感器与单片机的典型接口电路项目二
电子温度计的制作任务二
数字显示电路的设计
数码管是由若干个发光二极管构成,按外形分常用的有8段管,米字管等,按发光颜色分有红色、黄色等。生活中空调、冰箱的温度显示,十字路口交通信号灯时间显示等,都是数码管的典型应用。
数码管的应用实例如图2-4所示。图2-4数码管的应用实例项目二
电子温度计的制作任务二数字式显示电路设计2一、任务描述本任务中主要讲解数码管的静态显示、动态显示等电路构成及编程方法,以单片机P2口作输出口,接1个四位一体的LED数码管,实现以下效果:1.数码管显示一位数字。2.数码管循环显示数字“0—
9”3.数码管同时显示数字“1—
4”二、相关知识
1.LED数码管
(1)八段LED数码管结构
在单片机系统中,通常用LED数码管显示器来显示各种数字或符号。常用的LED数码显示器有七段LED显示器(数码管)和十六段LED显示器(米字管)等,如图2-5所示。数码管主要用于显示数码;米字管不但可以显示数码,也可显示丰富的字符和符号。项目二
电子温度计的制作任务二数字显示电路的设计2七段LED显示器由8个发光二极管组成,其中7个长条形的发光管排列成“8”字形(对应a、b、c、d、e、f、g七个笔段),另一个圆点形的发光二极管在显示器的右下角作为显示小敷点(对应dp).通过点亮相应段可用来显示数字0-9,字符。a-f、h、l、p、r、u、y,符号“一”及小数点“.”等。
七段LED数码管的结构原理图如图2-6所示。根据内部发光二极管的连接方式,七段LED数码管可分为共阴极型和共阳极型两种。8个发光二极管的阴极连在一起构成公共端COM。称为共阴极型;8个发光二极管的阳极连在一起构成公共端COM,称为共阳极型。图2-6七段LED数码管结构原理图项目二
电子温度计的制作任务二数字显示电路的设计2(2)LED数码管引脚排列检测
在电路连接前,先要检测出LED数码管的引脚排列,以便于接线,同时,也是硬件使用前用的必要检测环节。
数码管的引脚排列一般使用万用表完成。对于数字万用表来说,红色表笔接表内部电池正极,黑色表笔连接表内部电池负极。当把数字万用表置于二极管档时,其两表笔间开路电压约为1.5V,把两表笔正确加在发光二极管两端时,可以点亮发光二极管。具体测量方法如下:
将数字万用表置于二极管档,红表笔接在1脚,然后用黑表笔去接触其他知引脚,假设只有当接触到9脚时,数码管的
a段发光,而接触其余引脚时则不发光。由此可知,被检测数码管为共阴极结构类型,9脚是公共阴极,1脚则是数码管的a段。接下来再检测各引段引脚,即使用数字万用表二极管档,将黑表笔固定接在9脚,用红表笔依次接触2—10引脚时,数码管的其他段先后分别发光,据此便可绘出该数码管的内部结构和引脚排列图。
检测中,若被测数码管为共阳极类型,则需将红、黑表笔对调才能测出上述结果。项目二
电子温度计的制作任务二数字显示电路的设计22.数码管字形段码
共阴型和共阳型的LED数码管各笔画段名和安排位置是相同的,分别用a、b、c、d、e、f、g和dp表示,如图2-6
(a)所示。
将单片机的一个8位并行I/O接口与七段LED数码管的引脚a—g端及dp端对应相连,并输出不同的8位二进制数,即可显示LED的数字或字符。控制8个发光二极管的8位二进制数称为段码。
例如,对于共阳极型LED数码管,当公共阳极接高电平,单片机并行口输出二进制数11000000(对应十六进制数C0)时,显示数字"0",则数字“0”的段码是0xC0。依此类推可求得数码管段码表如表2-5所示。表2-5七段LED数码管段码表项目二
电子温度计的制作任务二数字显示电路的设计23.C51基本数据类型在程序设计中,离不开对数据的处理,KeilC51编译器所支持的基本数据类型如表2-6所示。表2-6
C51中的基本数据类型项目二
电子温度计的制作任务二数字显示电路的设计2
(1)位类型bit
bit型是C51编译器的一种扩充数据类型,利用它可定义一个位变量,但不能定义位指针,也不能定义位数组。它的值是一个1位二进制数,取值0或1。
(2)字符型数据char
char类型的长度是一个字节(8位),通常用于定义处理字符数据的变量或常量。分无符号字符类型unsignedchar和有符号字符类型signedchar,默认值为signedchar类型。unsignedchar类型用字节中所有的位来表示数值,所以可表达的数值范围是0~255。signedchar类型用字节中最高位表示数据符号,“0”表示正数,“1”表示负数,负数用补码表示,所能表示的数值范围是-128--+127。unsignedchar常用于处理ASCII字符或用于处理小于或等于255的整数。
如果定义了一个char型变量,而赋给该变量一个大于255的数值,如467,对应的的二进制数是111010011,编译器并不会提示出错,而是自动截去高于8位的部分,只保留低8位,即211(二进制为11010011),程序可能会出现一些无法预知的错误,使用时要注意。项目二
电子温度计的制作任务二数字显示电路的设计2(3)整型数据int
int型长度为两个字节(16位),用于存放一个双字节数据。分有符号整型数signedint和无符号整型数unsignedint,默认值为signedint类型。signedint表示的数值范围是-32768-+32767.字节中最高位表示数据的符号,“0”表示正数,“l”表示负数。unsignedint表示的数值范围是0—65535。(4)长整型数据long
long型长度为四个字节(32位),用于存放一个四字节数据。分有符号长整型signedlong和无符号长整型unsignedlong,默认值为signedlong类型。signedint表示的数值范围是-2147483648-+2147483647,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数unsignedlong表示的数值范围是0--4294967295。项目二
电子温度计的制作任务二数字显示电路的设计2(5)浮点型数据float
float型在十迸制中具有7位有效数字,是符合IEEE-754标准的单精度浮点型数据,占用四个字节:因浮点数的结构较复杂不再做详细的讨论。(6)指针型*
指针型本身就是一个变量,在这个变量中存放指向另一个数据的地址。这个指针变量要占据一定的内存单元,对不同的处理器长度也不尽相同,在C51中它的长度一般为1-3个字节。
指针变量也具有类型,具体内容在后续内容中做详细说述。项目二
电子温度计的制作任务二数字显示电路的设计2三、任务实施(一)电路设计
单片机实训板LED数码管电路原理如图2-7所示。图2-7
LED数码管原理图项目二
电子温度计的制作任务二数字显示电路的设计2(二)程序设计LED数码管显示的方式有静态显示方式和动态扫描显示方式两种。方法一:数码管静态显示一位数字(1)编程思路
数码管的静态显示是指数码管显示某一数字或字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个笔段分别与一个8位I/O口相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码,其示意图如图2-8所示。
图2-8数码管静态显示方式示意图项目二
电子温度计的制作任务二数字显示电路的设计2(2)
参考程序
打开Keil软件,建立LED数码管一位静态显示项目并保存。参考下列的源程序输入源文件。#include<reg51.h>unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,,0x92,0x82,0xf8,0x80,0x90};//0—9十个数字段码sbitLED1=P3^7; //位定义int
main(void) //主程序main函数{While(1) //在主程序中设置死循环,保证程序周而复始的运行{LED1=0; //选择第一位数码管P0=tab[5]; //P0口输出5的段码}}注意:1)采用静态显示方式占用CPU时间少、编程简单、便于控制,但是每一个数码管要占用一个并行I/O口,所以只适合于显示位数较少的场合。2)因MCS-51系列单片机P0口内部没有上拉电阻,所以在实际使用中,P0口还要接10KΩ左右的外接上拉电阻,才可有效的输出数据。项目二
电子温度计的制作任务二数字显示电路的设计2方法二:数码管第一位循环显示数字0—9(1)编程思路
数码管的循环显示数字0—9与数码管单独显示一位数字方法类似,只是在显示过程中不断变化显示段码,并在数字显示之间加上适当的延时。(2)参考程序
打开Keil软件,建立LED数码管第一位循环显示数字0—9项目并保存。参考下列的源程序输入源文件。#include<reg51.h>unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,,0x92,0x82,0xf8,0x80,0x90};//0—9十个数字段码sbitLED1=P3^7; //位定义
int
main(void)//主程序main函数{While(1) //在主程序中设置死循环,保证程序周而复始的运行{unsignedchari;unsignedintj;LED1=0; //选择第一位数码管位选,使第一位数码显示for(i=0;i<=9;i++){P0=tab[i]; //P0口依次输出0—9的段码for(j=0;j<30000;j++); //延时}}}项目二
电子温度计的制作任务二数字显示电路的设计2方法三:数码管的动态扫描显示数字
当单片机系统中需要多个数码管显示时,如果采用静态显示方式,并行I/O接口的引脚数将不能满足需要,这时可采用动态扫描显示方式。
动态扫描显示方式是通过分时轮流控制各个数码管的COM端送出相应段码,使各个数码管轮流受控,依次显示且循环往复的方式。
动态扫描显示方式在接线上不同于静态显示方式,它是将所有七段LED数码管的8个显示笔段a、b、c、d、e、f、g、dp中相同的笔段连接在一起,称为段控端,每个数码管的公共端COM不再接固定高电平或低电平,而是由独立的I/O口线控制,称为位控端,两位数码管动态扫描显示方式接线示意图如图2-9所示。图2-9两位数码管动态扫描显示方式接线示意图项目二
电子温度计的制作任务二数字显示电路的设计2
动态扫描显示方式的显示过程如下:当CPU送出某个数字的段码时,所有的数码管都会接收到,但只有需要显示的数码管的位控端COM被选通时,接收到有效电平才被点亮,而没有被选通的数码管不会亮。
在数码管轮流显示的过程中,每个数码管被点亮的时间为1ms左右,虽然各位数码管并非同时点亮,但由于人眼的视觉暂留效应,主观感觉各位数码管同时在显示。(1)编程思路在单片机实训板中,实现4位数码管从左到右依次显示数字“1,2,3,4”四个数字。参考设计流程图如图2-10所示。图2-10动态扫描显示函数设计流程图项目二
电子温度计的制作任务二数字显示电路的设计2(2)参考程序打开Keil软件,建立LED数码管四位动态显示数字1--4项目并保存。参考下列的源程序输入源文件。项目二
电子温度计的制作任务二数字显示电路的设计2
在数码管动态扫描显示中,熄灭所有的数码管,即消隐控制信号是必需的。
因为如果不进行消隐,上一位数码管的位控信号处于锁存输出的同时,下一位数码管的段控信号便输出到段控端,其结果就是下一位数码管上会显示上一位数码管所显示数字的影子,俗称“鬼影”。
数码管动态扫描时,消除“鬼影”一般不需要同时熄灭位和段,基本原则是后送位控信号就消位,后送段控信号就消段。注意:项目二
电子温度计的制作任务三
电子温度计的电路制作与系统程序编写一、任务描述选用DS18B20作为系统的温度传感器,设计电子温度计硬件电路,并编写系统程序。二、相关知识
根据DS18B20的通信协议,对DS18B20进行操作必须经过三个步骤:复位、发送ROM操作命令、发送存储器操作命令。1.复位
单片机发出复位脉冲,紧跟其后接收DS18B20发出的存在脉冲,收到存在脉冲表明
DS18B20已准备好进行发送和接收数据,单片机可以发送所要求的ROM操作命令和存储器操作命令。
项目二
电子温度计的制作任务三电路制作与系统程序编写32.发送ROM操作命令
对于只存在单个DS18B20芯片的情况,执行跳过命令操作;对于多个芯片则必须进行读ROM.搜索ROM、匹配ROM等命令操作。ROM操作命令如表2-7所示。表2-7
DS18B20的ROM操作命令表项目二
电子温度计的制作任务三电路制作与系统程序编写33.发送RAM操作命令RAM操作命令主要有启动温度转换、读出存储器中的温度值、写存储器等命令操作。RAM操作命令如表2-8所示。表2-8
DS18B20的RAM操作命令表项目二
电子温度计的制作任务三电路制作与系统程序编写34.DS18B20的时序
由于DS18B20采用的是“一总线”协议方式,即用一根数据线实现数据的双向传输,我们采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1)初始化时序
初始化时序包括主机发送的复位脉冲和器件向主机返回的存在脉冲。主机总线最小发出480us的低电平复位脉冲,接着释放总线并进入接收状态,器件在接收到总线的电平上升沿后,等待15~60us后发出60~240us的低电平存在脉冲信号,表明DS18B20存在,如图2-11所示。图2-11
DS18B20复位时序图项目二
电子温度计的制作任务三电路制作与系统程序编写3(2)DS18B20的读时序DS18B20的读时序分为读0时序和读1时序两过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15s之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的读时序如图2-12所示。图2-12
DS18B20读时序图(3)DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20,写0时序和写l时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15--45us之间能够正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。DS18B20的写时序如图2-13所示。图2-13
DS18B20写时序图项目二
电子温度计的制作任务三电路制作与系统程序编写3
三、任务实施1.硬件电路设计
基于数字温度传感器DS18B20的电子温度计的硬件电路由三部分构成,一是单片机最小应用系统,包括一个电平转换电路和一个DB9串行口插座,二是18B20测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年交通法规及道路安全试题库附答案
- 2026年节水知识竞赛考试历年机考真题集标准卷附答案
- 2026年煤炭矿山职业技能鉴定考试-密闭工历年参考题库含答案解析
- 2026年名山区0-6岁残疾儿童管理培训试题有答案
- 2026年企业廉洁自律模拟试题及参考答案
- 2026年融媒体技术岗位笔试题目
- 企业管理-祠堂卫生管理制度
- 2026年四川省内江市威远县威远中学中考第一次模拟考试化学试题(含答案)
- 2026年校招:中国2026年校招:北京同仁堂集团笔试题及答案
- 2026年校招:中国电子笔试题及答案
- 2026年山东省考《申论》真题及答案解析(B卷)
- 中国广电山东网络有限公司2026年度市县公司招聘(145个)笔试历年常考点试题专练附带答案详解
- 2026北京急救中心第一批招聘备考考试题库含答案解析
- ICU危重患者呼吸机管理
- 社会语言学讲稿
- 乡统计站工作制度
- 医美销售技巧培训课件
- 托育食品安全课件
- 2025 初中一年级语文下册《台阶》细节描写作用课件
- 第1讲-创新思维概述
- 2025年氯代碳酸乙烯酯行业分析报告及未来发展趋势预测
评论
0/150
提交评论