单片机应用技术-基于STC15系列单片机 课件 6.1电子温度计_第1页
单片机应用技术-基于STC15系列单片机 课件 6.1电子温度计_第2页
单片机应用技术-基于STC15系列单片机 课件 6.1电子温度计_第3页
单片机应用技术-基于STC15系列单片机 课件 6.1电子温度计_第4页
单片机应用技术-基于STC15系列单片机 课件 6.1电子温度计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

项目智能测温系统的实现智能测温系统主要内容2液晶显示系统的实现3多路测温系统的实现4蓝牙电子温度计的实现1电子温度计的实现电子温度计任务演示任务分析电子温度计程序包括温度的采集、温度数据的处理以及温度值在数码管的显示等DS18B20的引脚功能测温范围为-55℃~125℃,输出12位数字温度值1-GND,地3-Vdd,外供电时为电源接入端,总线供电时接地2-DQ,数据输入/输出。数据传输端,“单总线”DS18B20的内部结构存储器64位ROM64bit的ROM编码是器件的身份标识非易失性存储器E2PROM非易失性存储器E2PROM共3字节,包括高温触发器TH、低温触发器TL和配置寄存器高温触发器TH低温触发器TL配置寄存器配置寄存器R1R0分辨率转换时间00993ms0110187ms1011375ms1112750msTM是测试位,用户不改动R1R0设置分辨率高速RAM序号高速存储器RAM0温度值低位1温度值高位2高温报警寄存器3低温报警寄存器4配置寄存器5保留6保留7保留8CRC校验字节输出温度值时先低8位,再高8位温度值存放格式S为符号位,正温度S=0,负温度S=1温度值以补码形式存放,当测得的温度是负数时,应作补码到原码的转换20~26为7位整数部分2-1~2-4为4位小数部分复位时序和流程复位操作首先在t0时刻发出最短为480µs的低电平,在t1时刻释放总线进入接收状态,DS18B20检测到总线变高后,等15~60µs,在t2时刻发出低电平信号表示响应DQ=1DQ=0读DQ状态:0表示成功;1表示失败延时480~960usDQ=1延时15~60us延时240~480us复位函数bitreset(void) //复位DS18B20{biterr;DQ=0; //在数据线上产生600us的低电平delay1us(600); DQ=1; //数据线拉高delay1us(60); //延时60userr=DQ; //读取数据线状态,err=0:复位成功delay1us(540); //err=1:复位失败return(err);}DQ=1DQ=0读DQ状态:0表示成功;1表示失败延时480~960usDQ=1延时15~60usDQ=1保持240~480us写时序和流程总线拉至低电平的t0时刻开始的15µs之内将要写的数据位送到总线上,在t0后的15~60µs内若为低电平写入的是0;若为高电平写入的为1。连续写2位之间的间隙应大于1µsDQ=1DQ=0DQ=1保持1us表示写1位结束延时15usDQ=1或DQ=0延时15~60us写函数DQ=0; //产生15us的低电平delay1us(15);DQ=dat0; //将需要写的数据0或1送DQ线delay1us(15);//延时15usDQ=1;//数据线拉高,为写入下一位做准备DQ=1DQ=0DQ=1保持1us表示写1位结束延时15usDQ=1或DQ=0延时15~60us写一个字节函数voidwrbyte(uchard) {uchari;dat=d;for(i=8;i>0;i--)//循环写8位(先低位,后高位){DQ=0; delay1us(15);

DQ=dat0; dat=dat>>1;//将下一位要写入的数据移到最低位 delay1us(15); //延时15us DQ=1;//数据线拉高,为写入下一位做准备}}DQ=1DQ=0延时15usDQ=1或DQ=0延时15~60usDQ=1保持1us数据》1位写字节数据存dat,以下操作重复8次读时序和流程单片机在t0时刻将总线从高拉至低电平,几个µs后的t1时刻释放总线。DS18B20通过保持总线为高表示发送“1”,将总线拉低表示发送“0”,并在t2时刻释放总线。单片机必须在t2之前读取总线状态。读时序至少需要60µs,且两次读时序之间至少需要1µs的恢复时间DQ=0延时几usDQ=1延时几us读取DQ延时60usDQ=1表示读结束读函数DQ=0延时几usDQ=1延时几us读取DQ延时60usDQ=1表示读结束DQ=0;//产生负脉冲delay1us(3);DQ=1; //数据总线拉高delay1us(3);//延时3usdat7=DQ; //读取数据delay1us(60);//延时,为读下一位做准备读一个字节函数DQ=0延时几usDQ=1延时几us读取DQ延时60usDQ=1表示读结束读取字节数据dat=0,以下操作重复8次DQ=0延时几usDQ=1延时几us读取DQ延时60usDQ=1表示读结束ucharrdbyte(void) //从DS18B20读取一个字节{uchari;dat=0; //读出数据初值为0for(i=8;i>0;i--) //循环读8位(先低位,后高位){dat=dat>>1; //读出数据先右移一位DQ=0;delay1us(3);DQ=1; delay1us(3);//延时3usdat7=DQ; //读取数据delay1us(60);} return(dat);}DS18B20的基本操作指令名称代码功能跳过ROM0XCC单片机可用这一命令同时访问总线上的所有设备而不需送出ROM序列号信息读ROM0X33单片机发该命令,要求从ROM读出8个字节序列号匹配ROM0X55执行该命令后,单片机必须接着向DS18B20发送8个字节的产品序列号,以选中单总线上指定的DS18B20,只有完全匹配的DS18B20才能对随后由单片机发出的读暂存器操作命令进行响应温度转换0X44该命令开始一次温度转换读暂存器0XBE用该命令可读DS18B20中9个暂存器中由低到高的内容温度的采集处理发送ROM命令0XCC,表示跳过ROM发送RAM命令0X44,要求传感器转换温度发送ROM命令0XCC,表示跳过ROM发送RAM命令0XBE,要求从传感器读取温度从传感器读取温度值的低字节和高字节将高字节温度值左移8位+低字节温度值合并成一个16位二进制补码形式的温度值,以备后续显示处理发送0X44命令延时发送0XCC命令发送0XBE命令读温度低字节读温度高字节发送0XCC命令高字节左移8位+低字节形成完整温度值温度的采集处理发送0X44命令延时发送0XCC命令发送0XBE命令读温度低字节读温度高字节发送0XCC命令高字节左移8位+低字节形成完整温度值voidconvert(void)//启动DS18B20开始温度转换{biterr;err=reset(); //复位传感器wrbyte(0xcc);//跳过多传感器识别wrbyte(0x44);//启动温度转换}intreadt(void) //读取DS18B20暂存器中的温度值{ucharh,l;biterr;err=reset(); //复位传感器wrbyte(0xcc); //跳过多传感器识别wrbyte(0xbe); //读暂存器指令l=rdbyte(); //读温度低位h=rdbyte(); //读温度高位return(h*256+l);}温度值的显示处理16位温度值的补码进行正负处理处理后数据右移4位就是实际温度值的整数部分处理后数据中的低4位就是实际温度值的小数部分t取反+1求补码t右移4位得到整数部分,分离出百位、十位、个位并转换成数码管字形码并处理显示格式温度值t>0?温度正负标记zf=1是否温度正负标记zf=0t&0X0F得到小数部分,转换成数码管字形码并处理显示格式温度值的显示处理温度值的显示处理t取反+1求补码t右移4位得到整数部分,分离出百位、十位、个位并转换成数码管字形码并处理显示格式温度值t>0?温度正负标记zf=1是否温度正负标记zf=0t&0X0F得到小数部分,转换成数码管字形码并处理显示格式voidformat(intt){bitzf; //正负标记,0:正数1:负数

zf=0; if(t<0) {zf=1; t=-t+1; }dbuf[0]=dp[t&0x0f]; //求出温度的小数t=t>>4; dbuf[3]=t/100; //求出百位t=t%100;dbuf[2]=t/10; //求出十位dbuf[1]=t%10; //求出个位if(zf==1) //如果是负数{if(dbuf[2]==0) //如果十位为0{dbuf[3]=0x13;dbuf[2]=0x12; }//显示格式为'-x.x'els

温馨提示

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

评论

0/150

提交评论