




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多路测温系统演示任务分析多路测温程序包括循环读取四片温度传感器的温度值函数、每个温度值的格式处理及液晶显示等函数,因为系统中每个DS18B20的序列号不同,首先必须读取DS18B20的序列号,在进行温度采集前每次还要发序列号匹配命令读取DS18B20序列号编写一段readid()函数得到温度传感器序列号在ProteµsS环境用鼠标指向该器件,先右键后左键,分别打开各传感器的属性设置窗口,将“ROMSerialNumber”中的默认值“B8C530”改为其它十六进制数,然后运行读序列号函数,读出8个字节的序列号读取DS18B20序列号编写一段readid()函数得到温度传感器序列号4个传感器的序列号设置为{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}读序列号函数//4个传感器的序列号放在二维数组ucharcodeid[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},{0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xb9},{0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xe0},{0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xd7}};voidreadid(ucharid[])//读取序列号{ ucharn;reset(); //复位DS18B20wrbyte(0x33); //发READROM命令for(n=0;n<=8;n++) //读取8个字节的序列号
复位id[n]=rdbyte();}多路测温方法1、复位所有传感器,跳过ROM,发启动温度转换命令,所有DS18B20开始转换2、转换结束后,单片机依次发匹配ROM命令,将预先存储的各传感器的序列号通过单总线送出,选中指定的DS18B20读入温度值多路测温程序voidgettemp(inttemp[])//检测4个传感器温度值送数组temp{ ucharm,n;ucharh,l;reset(); //复位所有DS18B20wrbyte(0xcc);wrbyte(0x44);//跳过ROM启动所有DS18B20转换late(); //延时750msfor(m=0;m<4;m++) //循环检测各DS18B20{reset(); //复位wrbyte(0x55); //发匹配ROM命令for(n=0;n<8;n++) wrbyte(id[m][n]);//发8字节的序列号wrbyte(0xbe); //发读暂存器命令l=rdbyte(); //读取温度低字节、高字节h=rdbyte();temp[m]=h*256+l;
}}多路测温主程序1、LCD初始化2、巡回检测各测温点的温度值并将其转换成字符串3、在LCD显示屏的对应位置显示温度值多路测温主程序main(){ inttemp[4];//用来存放四个传感器的温度值ucharstr[6]={0,0,0,0,0,0};//用于将温度值转换为字符串bitzf; //正负标记
温度在0度以下为1,否则为0uchari;init_lcd(); //液晶屏初始化str[1]=':'; //在屏幕指定位置显示
for(i=0;i<4;i++) {str[0]=0x41+i; disp_str(i/2,(i%0x02)*9,str);}多路测温主程序while(1){gettemp(temp); //巡回检测出4个传感器的温度值送数组tempfor(i=0;i<4;i++)//依次显示数组temp中的温度值{zf=0;if(temp[i]<0) //如果温度小于0{zf=1; //正负标志置1temp[i]=-temp[i]; //求出温度的绝对值 }str[4]=dp[temp[i]&0x0f]+0x30;//求出一位小数的ASCII码temp[i]=temp[i]>>4; //舍去小数部分str[0]=temp[i]/100+0x30; //求出百位的ASCII码temp[i]=temp[i]%100;str[1]=temp[i]/10+0x30; //求出十位的ASCII码str[2]=temp[i]%10+0x30; //求出个位的ASCII码str[3]='.'; //填上小数点
多路测温主程序if(zf==1) //如果是负数{if(str[1]=='0') //如果十位为0{str[0]=''; //显示格式为'-x.x'str[1]='-'; }else str[0]='-'; //如果十位不为0
显示格式为'-xx.x'}else //如果是正数{if(str[0]=='0') //如果百位、十位都是0{if(str[1]=='0')//显示格式为'x.x'str[1]=''; //如果只有百位为0str[0]='';//显示格式为'xx.x'}}disp_str(i/2,(i%0x02)*9+2,str);}}}多路测温系统调试如果某个传感器的温度值总是为0,应检查它的序列号是否与二维数组id中所定义的值一致注意4个传感器的序列号为ucharcodeid[4][8]={{0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e},
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 变量成本与固定成本分析试题及答案
- 超星尔雅学习通《电子商务那些事(中南财经政法大学)》2025章节测试附答案
- 初级考试计算机技术与软件试题详解及答案
- 茶艺师职业发展中的文化影响及试题及答案
- 有效复习的健康管理师试题及答案
- 二零二五年度港口码头停车场委托管理与船舶停靠协议
- 二零二五年度合作购房权益分配协议
- 2025年度茶楼合伙协议书:茶楼加盟连锁管理与服务合作协议
- 二零二五年度商业谈判保密协议制定与谈判策略
- 2025年度网络安全资质借用合作协议书
- 2025年南京科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 常用高分子絮凝剂规格及性能
- 2023年青海省文化和旅游系统事业单位人员招聘笔试题库及答案解析
- 静压预应力管桩静载荷试验异常沉降的原因及复压处理
- 第5课 安史之乱与唐朝衰亡【课件】
- YY 0504-2016手提式蒸汽灭菌器
- GB/T 21782.8-2008粉末涂料第8部分:热固性粉末贮存稳定性的评定
- GB/T 18742.3-2002冷热水用聚丙烯管道系统第3部分:管件
- 《新媒体广告》课件3伦理与法规
- FMEA潜在失效模式及后果分析(第五版)培训课件
- 回弹法检测混凝土抗压强度技术规程
评论
0/150
提交评论