上下限可调温度传感器课件

上传人:阳*** 文档编号:151507503 上传时间:2022-09-13 格式:PPT 页数:20 大小:4.05MB
收藏 版权申诉 举报 下载
上下限可调温度传感器课件_第1页
第1页 / 共20页
上下限可调温度传感器课件_第2页
第2页 / 共20页
上下限可调温度传感器课件_第3页
第3页 / 共20页
资源描述:

《上下限可调温度传感器课件》由会员分享,可在线阅读,更多相关《上下限可调温度传感器课件(20页珍藏版)》请在装配图网上搜索。

1、单片机报警温度可调温度传感器设计电子1201 符宇龙总总电路原理图电路原理图什么是DS18B20温度传感器?引脚说明GND 地DQ 数据I/OVDD 可选电源电压NC 无连接DS1820是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转换成串行数字信号供处理器处理。测温范围为-55125(67257)。系统组成系统组成本系统主要由主控制器本系统主要由主控制器STC89C52STC89C52模块、温度传感器模块、温度传感器DS18B20DS18B20模块、模块、1602液晶液晶显示模块、按键模块

2、、显示模块、按键模块、串口通串口通信模块、信模块、LED灯指示模块、灯指示模块、电源模块组成电源模块组成。主控制器STC89C52LCD1602 显示按键模块DS18B20温度传感器报警模块串口通信模块LED灯指示系统总体框图温度传感模块电路原理图温度传感器温度传感器DS18B20DS18B20模块模块 显示模块电路原理图16021602液晶液晶显示模块显示模块按键模块按键模块按键模块电路原理图按键模块按键模块的功能介绍的功能介绍 1、功能按键:该按键可以对两个温度上下限进行调制。1)、当按键按下一次时,可对低温范围的上限进行调制。2)、当按键按下两次时,可对低温范围的下限进行调制。3)、当按

3、键按下三次时,可对高温的范围下限进行调制。4)、当按键按下四次时,可对高温的范围上限进行调制。2、增加按键:该按键可以对温度上下限值进行增加。3、减小按键:该按键可以对温度上下限值进行减小。主程序流程图主程序流程图主函数主函数/*主函数主函数*/void main()void main()uchar buff4,i;uchar buff4,i;init_com();init_com();/串口初始化串口初始化init();init();/LCD/LCD初始化初始化chuplay();chuplay();/初始显示初始显示 while(1)while(1)keyscan();keyscan();

4、/扫描键盘扫描键盘 for(i=10;i0;i-)for(i=10;i0;i-)/获取温度、扫描键盘,并显示获取温度、扫描键盘,并显示 zh18b20();zh18b20();xs18b20();xs18b20();keyscan();keyscan();deal(tvalue);deal(tvalue);/进行温度处理,进行温度处理,ledled灯亮灯亮 蜂鸣器响蜂鸣器响 sprintf(buff,%f,f_temp);sprintf(buff,%f,f_temp);/将浮点型温度格式转化为字符型将浮点型温度格式转化为字符型 for(i=10;i0;i-)for(i=10;i0;i-)/获取

5、温度、扫描键盘,并显示获取温度、扫描键盘,并显示 zh18b20();zh18b20();xs18b20();xs18b20();keyscan();keyscan();comm(buff);comm(buff);/串口发送数据串口发送数据 for(i=10;i0;i-)for(i=10;i0;i-)/获取温度、扫描键盘,并显示获取温度、扫描键盘,并显示 zh18b20();zh18b20();xs18b20();xs18b20();keyscan();keyscan();读取温度值并转换读取温度值并转换程序程序/*读取温度值并转换读取温度值并转换*/zh18b20()uint a,b;chu

6、18b20();/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;tfla

7、g=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

8、=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_dat

9、a(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(k

10、ey3num=1)/调制调制warn_l1write_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);/显示显示Cif(key3=0)delay(10);if(key3=0)key3num+;warn_l1=num*10+270;num=0;while(!key3);di();/

11、判断按键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是否按下/

12、上下限温度值加1/上下限温度值减1/蜂鸣器响/蜂鸣器响/等待按键释放/等待按键释放串口数据发送串口数据发送程序程序/*串口数据发送函数串口数据发送函数*/void comm(charvoid comm(char*parr)parr)uchar i;uchar i;for(i=0;i16;i+)for(i=0;i16;i+)SBUF=table1i;SBUF=table1i;/发送发送Temperature iswhile(!TI);while(!TI);TI=0;TI=0;dodo/发送温度值发送温度值 SBUF=SBUF=*parr+;parr+;while(!TI);while(!TI);

13、TI=0;TI=0;while(while(*parr);parr);for(i=0;i3;i+)for(i=0;i3;i+)/发送温度符号发送温度符号 SBUF=fuhaoi;SBUF=fuhaoi;while(!TI);while(!TI);TI=0;TI=0;编写程序出现问题及解决编写程序出现问题及解决问题问题1:上下限调试时:上下限调试时 按键减,出现乱码?按键减,出现乱码?uchar num;改为改为uint num;因为因为warn_l2=num+25;中的中的num是有正负号的数字,所以类型应该为整型不能为字符型。是有正负号的数字,所以类型应该为整型不能为字符型。问题问题2:按键

14、功能,多次按下才能有效?:按键功能,多次按下才能有效?在主函数的在主函数的while(1)里多加几个里多加几个keyscan();因为主函数语句过多,如果不多加因为主函数语句过多,如果不多加keyscan();,按键要刚好到执行,按键要刚好到执行keyscan();语句时才有效,因而产生多次按下才有效;语句时才有效,因而产生多次按下才有效.问题问题3:在向电脑发送数据时,温度符号出现乱码?:在向电脑发送数据时,温度符号出现乱码?将将SBUF=“”;while(!TI);TI=0;SBUF=C;while(!TI);TI=0;改为改为for(i=0;i3;i+)/发送温度符号发送温度符号 SBU

15、F=fuhaoi;while(!TI);TI=0;因为串口发送数据一次只能发送一位,而为两位。因为串口发送数据一次只能发送一位,而为两位。注意:子函数的调用,必须是被调用函数在调用函数之前。注意:子函数的调用,必须是被调用函数在调用函数之前。硬件问题检修硬件问题检修1、板焊接完成和程序下载完后,发现电路板全部模块都没响应板焊接完成和程序下载完后,发现电路板全部模块都没响应?分析:因为电路板全部模块没有响应,可以猜测是电路板上的单片机因为电路板全部模块没有响应,可以猜测是电路板上的单片机最小系统模块出的问题。最小系统模块出的问题。检修:1)、芯片供电检修:用万用表测量单片机的20和40引脚的电压

16、值是否为 5V左右,如果不是,则对20和40引脚相应的线路进行修改(常见问题:虚焊和错焊)。2)、复位电路检修:用万用表测量单片机的第9引脚的电压值是否为0V,如果不是,则复位焊接出错,对复位电路进行修改(常见问题:对轻触 开关结构不了解,焊接时选用了轻触开关导通两个引脚)3)、晶振电路检测:用万用表量两个引脚电压是否是单片机芯片工作电 压的一半左右,另外如果用金属碰晶体另外一个脚,这个电压有明显变 化,证明是起振了的。轻触按键结构图硬件问题检修硬件问题检修2、板焊接完成和程序下载完后,发现其他模块正常液晶显示温度始终板焊接完成和程序下载完后,发现其他模块正常液晶显示温度始终是是8585C C?分析:由于其他模块正常液晶显示温度始终是由于其他模块正常液晶显示温度始终是8585C C,可以猜测是,可以猜测是DS18B20DS18B20温度传感器出的问题。温度传感器出的问题。检修:对着DS18B20连接电路图,检查DS18B20是否焊接正确,必要时用万用表测量。主意:DS18B20接反时会发热。DS18B20DS18B20连接电路图连接电路图实现及电路板视频讲解实现及电路板视频讲解C:UsersAdministratorDesktopfyl.mp4

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

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

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


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