单片机项目实践教程刘燎原-项目六数字温度计

上传人:嘀****l 文档编号:248567797 上传时间:2024-10-24 格式:PPT 页数:41 大小:21.61MB
返回 下载 相关 举报
单片机项目实践教程刘燎原-项目六数字温度计_第1页
第1页 / 共41页
单片机项目实践教程刘燎原-项目六数字温度计_第2页
第2页 / 共41页
单片机项目实践教程刘燎原-项目六数字温度计_第3页
第3页 / 共41页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,微控制器系统设计与应用,刘燎原,江苏建筑职业技术学院,复习:,ADC0809,是典型的,8,位,8,通道,逐次逼近式,A/D,转换器,可模拟电压量实现分时转换为,8,位数字量。,V,ref,/V,in,=2,n,/D,即,V,in,/D=5/255,转换步骤:,1.,有,clock,时钟信号(典型值,500KHZ,,周期,2us,),用定时器,0,产生周期,2us,方波信号作为,CLOCK,2.Start,、,ALE,有效,开始转换,Vin,Start,、,ALE,需要正脉冲,通过置,1,或,0,得到,3.,转换过程中,,EOC=0;,当转换结束时,,EOC=1.,(转换时间大概,100us,左右),利用查询等待方式,,while(eoc=0);,4.,转换结束后,设置,OE=1,后,才可以读取转换后的数字量,OE=1;m=P0;OE=0;,5.,数字量送数码管显示,1.,十六进制显示转化为十进制显示,unsigned char i,j;,i=m/51;,j=m%51;,j=j/5;,2.,带小数点显示的段值,举例说明,带小数点共阴数码管:,+80H,P1=sz1i+80H,带小数点共阳数码管:,-80H,P1=sz1i-80H,温度计制作,(4,学时,),温度计,温度计电路板,(2,学时,),学时安排:,项目六 数字温度计,-,学习,DS18B20,模块,DS-18B20,数字温度传感器,DS18B20,是美国,DALLAS,公司生产的,1-wire,式单总线的数字温度传感器。具有耐磨耐碰,体积小,线路简单,使用方便,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。例如:冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温,汽车空调、冰箱、冷柜、以及中低温干燥箱等。,一、主要特点,1.,1-wire,式,只要一个端口即可实现和单片机的双向通信(图上,DQ,端),电路连接简单,单总线通常要求外接一个约为,4.7K10K,的上拉电阻,这样,当总线闲置时其状态为高电平。,2.,分辨率可以在,9-12,位,选择(温度转换后的数字信号是,9-12,位),3.,测温范围,55,125,在,-10+85C,范围内,精度为,0.5C,。,唯一的序列号,4.,每个器件都有,5.,内部有,温度上限、下限的报警,设置,有报警功能,6.,支持,多点组网,功能,多个,DS18B20,可以并联在唯一的三线上,实现多点测温,7.,供电方式灵活,可以外接电源,也可以通过内部寄生电路从数据线上获取电源,二、,DS18B20,管脚排列,DS18B20,的管脚排列,1.GND,为电源 地;,2.DQ,为数字信号输入输出端;,3.VDD,为外接供电电源输入端,(在寄生电源接线方式时接地),外接电源工作方式,两种供电方式:,三、,DS18B20,内部结构,如图所示,主要由,4,部分组成:,64,位光刻,ROM,、温度传感器、温度报警触发器,TH,和,TL,、配置寄存器。,1.64,位光刻,ROM,64,位,ROM,中存储的信息是,出厂前被光刻好,的,存储的主要是,序列号。,64,位光刻,ROM,的排列是:,开始,8,位(地址:,28H,)是产品类型标号,,接着的,48,位是该,DS18B20,自身的序列号,它可以看作是该,DS18B20,的地址序列码,每个,DS18B20,的,64,位序列号均不相同,最后,8,位则是前面,56,位的循环冗余校验码 (,CRC=X8+X5+X4+1,)。,由于每一个,DS18B20,的,ROM,数据都各不相同,因此微控制器就可以通过单总线对多个,DS18B20,进行寻址,从而实现一根总线上挂接多个,DS18B20,的目的。,2.,温度传感器,DS18B20,中的温度传感器完成对温度的测量,把温度转换为对应的数字量(,9,位或,12,位,出厂时默认,12,位,最高位是符号位)。,为了存放,12,位的数字量,用,16,位符号扩展的二进制,补码,形式表示来存放。,举例。,该数字量和温度之间的对应转换格式,见下图,其中,S,为符号位,即数据格式以,0.0625/LSB,形式表达,。,补码三个部分:符号,:,高字节的高,4,位,整数:高字节的低,4,位、低字节的高,4,位,小数:低字节的低,4,位,对应的温度计算:当符号位,S=0,时,直接将二进制位转换为十进制;当,S=1,时,先将补码变为原码,再计算十进制值。,例如:,1.,转换后的数字量,12,位,扩展为,16,位后为,(,十六进制,),:,00C1H,则对应的温度值应为:,+12.0625,若为负温度,如何计算?,2.,转换后的数字量,12,位,扩展为,16,位后为,(,十六进制,),:,FF5EH,则对应的温度值应为:,-10.125,;,12,位,3.,配置寄存器,其中配置寄存器的格式如下:,最高位用于设置,DS18B20,在工作模式还是在测试模式。在,DS18B20,出厂时该位被设置为,0,,工作模式,,用户不要去改动。,R1,和,R0,用来设置,分辨率,,如下图所示:(,DS18B20,出厂时被设置为,12,位),低五位一直都是“,1,”,配置寄存器与分辨率关系表,4.,高速暂存存储器,RAM,高速暂存存储器由,9,个字节,组成,见下图,.,转换所得的温度值以两个字节补码形式存放在高速暂存存储器的第,0,和第,1,个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。,四、,DS18B20,的工作时序,(单线接口访问,DS18B20,的协议),单片机对,DS18B20,操作:温度转换、读取温度、存取报警上下限等。,根据,DS18B20,的通讯协议,单片机每次访问,DS18B20,都必须遵循以下顺序:,初始化,18B20,;,发对,ROM,操作命令;,发对,RAM,操作命令:,相应操作。,1.,ROM,操作命令,2.,RAM,操作命令,DS18B20,的,RAM,指令集,3.,温度的转换流程,DS18B20,进行一次温度的转换,那具体的操作就是:,(1),、初始化,18B20(,主机作,复位,操作,),(2),、发对,ROM,操作命令,(,主机写,跳过,ROM,的操作(,CCH,),命令,),(3),、发对,RAM,操作命令,(,主机写,转换温度的操作(,44H,)命令,),后面释放总线至少一秒,让,DS18B20,完成转换的操作。,整个操作的总线状态如下图。,4.,读取,RAM,内的温度数据流程,具体的操作就是:,(1),、初始化,18B20(,主机作,复位,操作,),(2),、发对,ROM,操作命令,(,主机写,跳过,ROM,的操作(,CCH,),命令,),(3),、发对,RAM,操作命令,(,主机写,读取,RAM,的操作(,BEH,)命令,),(4),、随后主机依次读取,DS18B20,发出的从第,0,一第,8,,共九个字节的数据。,如果,只想读取温度,数据,那在读完第,0,和第,1,个数据,后就不再理会后面,DS18B20,发出的数据即可。同样读取数据也是低位在前的。,整个操作的总线状态如下图:,初始化,DS18B20,跳过,ROM,匹配,开始温度转换,转换结束了否?,初始化,DS18B20,跳过,ROM,匹配,读温度值,结束,开始,Y,N,DS18B20,温度测量操作流程,1.,初始化,DS18B20,2.,发出跳过,ROM,的操作(,CCH,)命令,3.,发出温度转换(,44H,)命令,4.,延时等待转换完,5.,初始化,DS18B20,6.,发出跳过,ROM,的操作(,CCH,)命令,7.,发出读温度(,BEH,)命令,8.,把温度(两个字节)从,RAM,中读出,保存起来,9.,读出的温度的数字量进行数据转换,送数码管显示,在以上流程中,反复用到初始化、写、读时序,我们先编程对应程序,五、,DS18B20,的基本操作,在以上的工作流程中,首先要初始化,18B20,,然后发各种命令以及数据传输都涉及到对,DS18B20,的读写操作,所以共涉及到以下,3,个工作时序:,1.,初始化操作,2.,写操作 (发命令),3.,读操作 (读温度),1.,初始化时序,DS18B20,的初始化,(,1,)先将数据线置高电平“,1”,。,(,2,)延时(该时间要求的不是很严格,但是尽可能的短一点),(,3,)数据线拉到低电平“,0”,。,(,4,)延时,750,微秒(该时间的时间范围可以从,480,到,960,微秒)。,(,5,)数据线拉到高电平“,1”,。,(,6,)延时等待(如果,初始化成功,则在,15,到,60,毫秒时间之内产生一个由,DS18B20,所返回的低电平“,0”,。据该状态可以来,确定它的存在,,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。,(,7,)若单片机读到了数据线上的低电平“,0”,后,还要做延时,其延时的时间从发出的高电平算起(第(,5,)步的时间算起)最少要,480,微秒。,(,8,)将数据线再次拉高到高电平“,1”,后结束。,unsigned char presence;,init_ds18b02(void)/DS18B20,初始化,DQ=1;delay_8us(3);/,延时约,25,微秒,DQ=0;delay_8us(80);/,延时约,650,微秒,DQ=1;delay_8us(2);,presence=DQ;,delay_8us(20);/,延时约,170,微秒,DQ=1;,return(presence);,DS18B20,的写操作,(,1,)数据线先置低电平“,0”,。,(,2,)延时确定的时间为,15,微秒,表示写周期开始。,(,3,)按从低位到高位的顺序发送字节(一次只发送一位)。,(,4,)延时时间为,45,微秒。,(,5,)将数据线拉到高电平。,(,6,)重复上(,1,)到(,6,)的操作直到所有的字节全部发送完为止。,(,7,)最后将数据线拉高。,若主机想写,0,,则拉低电平最少,60,微秒直至写周期结束,然后释放总线为高电平。,若主机想写,1,,在一开始拉低总线电平,1,微秒后就释放总线为高电平,一直到写周期结束。,2.,写时序,void write_byte(unsigned char dat)/,单片机向,DS18B20,写 入一个字节数据,先低后高,unsigned char i;,for(i=0;i=1;,3.,读时序,完成一个读时序过程,至少需要,60us,才能完成,DS18B20,的读操作,(,1,)将数据线拉高“,1”,。,(,2,)延时,2,微秒。,(,3,)将数据线拉低“,0”,。,(,4,)延时,15,微秒。,(,5,)将数据线拉高“,1”,。,(,6,)延时,15,微秒,对总线进行采样检测。,(,7,)读数据线的状态得到,1,个状态位,并进行数据处理。,(,8,)延时,30,微秒。,unsigned char read_byte(void)/,单片机从,DS18B20,读出一个字节数据,unsigned char i,dat;,for(i=0;i=1;/,一举两得,DQ=1;,if(DQ)/,存储采样到的值,dat|=0 x80;,delay_8
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!