上下限可调温度传感器

上传人:san****019 文档编号:21763553 上传时间:2021-05-09 格式:PPT 页数:19 大小:4.05MB
返回 下载 相关 举报
上下限可调温度传感器_第1页
第1页 / 共19页
上下限可调温度传感器_第2页
第2页 / 共19页
上下限可调温度传感器_第3页
第3页 / 共19页
点击查看更多>>
资源描述
单 片 机 报 警 温 度 可 调温 度 传 感 器 设 计 电 子 1201 符 宇 龙 总 电 路 原 理 图 什 么 是 DS18B20温 度 传 感 器 ?引 脚 说 明GND 地DQ 数 据 I/OVDD 可 选 电 源 电压NC 无 连 接DS1820是 美 国 DALLAS半 导 体 公 司 推 出 的 第 一 片支 持 “ 一 线 总 线 ” 接 口 的 温度 传 感 器 , 它 具 有 微 型 化 、低 功 耗 、 高 性 能 、 抗 干 扰能 力 强 、 易 配 微 处 理 器 等优 点 , 可 直 接 将 温 度 转 换成 串 行 数 字 信 号 供 处 理 器处 理 。测 温 范 围 为 -55 125 ( 67 257 ) 。 系 统 组 成本系统主要由主控制器STC89C52模块、温度传感器DS18B20模块、1602液晶显示模块、按键模块、串口通信模块、LED灯指示模块、电源模块组成。主 控 制 器STC89C52 LCD1602 显 示按 键 模 块DS18B20温 度 传 感 器报 警 模 块串 口 通 信模 块LED灯 指 示系 统 总 体 框图 温度传感模块电路原理图温 度 传 感 器 DS18B20模 块 显示模块电路原理图1602液 晶 显 示 模 块 按 键 模 块按键模块电路原理图 按 键 模 块 的 功 能 介 绍 1、功能按键:该按键可以对两个温度上下限进行调制。 1)、当按键按下一次时,可对低温范围的上限进行调制。 2)、当按键按下两次时,可对低温范围的下限进行调制。 3)、当按键按下三次时,可对高温的范围下限进行调制。 4)、当按键按下四次时,可对高温的范围上限进行调制。2、增加按键:该按键可以对温度上下限值进行增加。3、减小按键:该按键可以对温度上下限值进行减小。 主 程 序 流 程 图 主 函 数 /*主函数*/ void main() uchar buff4,i; init_com(); /串口初始化 init(); /LCD初始化 chuplay(); /初始显示 while(1) keyscan(); /扫描键盘 for(i=10;i0;i-)/获取温度、扫描键盘,并显示 zh18b20(); xs18b20(); keyscan(); deal(tvalue); /进行温度处理,led灯亮 蜂鸣器响 sprintf(buff,%f,f_temp); /将浮点型温度格式转化为字符型 for(i=10;i0;i-) /获取温度、扫描键盘,并显示 zh18b20(); xs18b20(); keyscan(); comm(buff); /串口发送数据 for(i=10;i0;i-) /获取温度、扫描键盘,并显示 zh18b20(); xs18b20(); keyscan(); 读 取 温 度 值 并 转 换 程 序 /*读取温度值并转换*/ zh18b20() uint a,b; chu18b20(); /DS18B20初始化 delay(1); xie18b20(0 xcc);/跳过读序列号 xie18b20(0 x44);/启动温度转换 chu18b20(); delay(1); xie18b20(0 xcc);/跳过读序列号 xie18b20(0 xbe);/读取温度 a=du18b20(); b=du18b20(); tvalue=b; tvalue=8; /组合两个字节 tvalue=tvalue|a; if(tvalue0 x08ff) /判断温度符号 tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.0625)*10;/温度值扩大10倍,精确到1位小数 f_temp=tvalue/10+0.05; return(tvalue); 温 度 值 显 示 程 序/*温度值显示*/void xs18b20() uchar space; table0=tvalue/1000+0 x30;/百位数table1=tvalue%1000/100+0 x30;/十位数 table2=tvalue%100/10+0 x30;/个位数table3=tvalue%10+0 x30;/小数位if(tflag=0) space=0 x20;/正温度不显示符号else space=0 x2d;/负温度显示负号:- if(table0=0 x30) table0=0 x20; /如果百位为0,不显示if(table1=0 x30) table1=0 x20; /十位为0也不显示 write_com(0 xc0+4); /0 x80+0 x40=0 xc0,+4e为前面空四列write_data(space);/显示符号位write_data(table0);/显示百位write_data(table1);/显示十位write_data(table2);/显示个位write_data(0 x2e);/显示小数点write_data(table3);/显示小数位write_data(0 xdf); /显示。write_data(0 x43);/显示C 功 能 按 键 低 温 上 限 调 制 程 序 /*温度上下限调制*/ void keyscan() uchar i; if(key3=0) delay(10); if(key3=0) key3num+; write_com(0 x80); for(i=0;i16;i+) write_data( ); while(!key3); di(); while(key3num=1) /调制warn_l1 write_com(0 x80); display(table4); jiajian(); warn_l1=num+27; write_com(0 x88); write_data(warn_l1/10+0 x30);/十位数 write_data(warn_l1%10+0 x30);/个位数 write_data(0 xdf); /显示。 write_data(0 x43);/显示C if(key3=0) delay(10); if(key3=0) key3num+; warn_l1=num*10+270; num=0; while(!key3); di(); /判 断 按 键 3是 否 按 下 /对 按 键 3按 下 的 次 数 进 行 计 数/对 1602液 晶 显 示 第 一 行 清 零 /温 度 上 下 限 调 制 温 度 处 理/扫 描 加 减 按 键/显 示 warn_l1: /恢 复 warn_l1便 于 下 面 温 度 处 理/key3num=2, 进 入 下 一 个 whlie 按 键 温 度 上 下 限 加 减 调 制 程 序 /*加减调制*/ void jiajian() if(key3num!=0) if(key1=0) delay(10); if(key1=0) while(!key1); di(); num+; if(key2=0) delay(10); if(key2=0) while(!key2); di(); num-; /判 断 按 键 1是 否 按 下/判 断 按 键 2是 否 按 下/上 下 限 温 度 值 加 1 /上 下 限 温 度 值 减 1/蜂 鸣 器 响/蜂 鸣 器 响/等 待 按 键 释 放/等 待 按 键 释 放 串 口 数 据 发 送 程 序 /*串口数据发送函数*/ void comm(char*parr) uchar i; for(i=0;i16;i+) SBUF=table1i; /发送Temperature is while(!TI); TI=0; do /发送温度值 SBUF=*parr+; while(!TI); TI=0; while(*parr); for(i=0;i3;i+) /发送温度符号 SBUF=fuhaoi; while(!TI); TI=0; 编 写 程 序 出 现 问 题 及 解 决问题1:上下限调试时 按键减,出现乱码? uchar num;改为uint num; 因为warn_l2=num+25;中的num是有正负号的数字,所以类型应该为整型不能为字符型。问题2:按键功能,多次按下才能有效?在主函数的while(1)里多加几个keyscan();因为主函数语句过多,如果不多加keyscan();,按键要刚好到执行keyscan();语句时才有效,因而产生多次按下才有效.问题3:在向电脑发送数据时,温度符号出现乱码?将SBUF=“”; while(!TI); TI=0; SBUF=C; while(!TI); TI=0;改为 for(i=0;i3;i+) /发送温度符号 SBUF=fuhaoi; while(!TI); TI=0; 因为串口发送数据一次只能发送一位,而为两位。 注意:子函数的调用,必须是被调用函数在调用函数之前。 硬 件 问 题 检 修 1、板焊接完成和程序下载完后,发现电路板全部模块都没响应?分析:因为电路板全部模块没有响应,可以猜测是电路板上的单片机最小系统模块出的问题。检修:1)、芯片供电检修:用万用表测量单片机的20和40引脚的电压值是否为 5V左右,如果不是,则对20和40引脚相应的线路进行修改(常见问题: 虚焊和错焊)。 2)、复位电路检修:用万用表测量单片机的第9引脚的电压值是否为0V, 如果不是,则复位焊接出错,对复位电路进行修改(常见问题:对轻触 开关结构不了解,焊接时选用了轻触开关导通两个引脚) 3)、晶振电路检测:用万用表量两个引脚电压是否是单片机芯片工作电 压的一半左右,另外如果用金属碰晶体另外一个脚,这个电压有明显变 化,证明是起振了的。 轻 触 按 键 结 构 图 硬 件 问 题 检 修 2、 板 焊 接 完 成 和 程 序 下 载 完 后 , 发 现 其 他 模 块 正 常 液 晶 显 示 温 度 始 终是 85 C? 分 析 : 由 于 其 他 模 块 正 常 液 晶 显 示 温 度 始 终 是 85 C, 可 以 猜 测 是DS18B20温 度 传 感 器 出 的 问 题 。 检 修 : 对 着 DS18B20连 接 电 路 图 , 检 查 DS18B20是 否 焊 接 正 确 , 必 要 时用 万 用 表 测 量 。 主 意 : DS18B20接 反 时 会 发 热 。 DS18B20连 接 电 路 图 实 现 及 电 路 板 视 频 讲 解C:UsersAdministratorDesktopfyl.mp4
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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