上下限可调温度传感器.ppt_第1页
上下限可调温度传感器.ppt_第2页
上下限可调温度传感器.ppt_第3页
上下限可调温度传感器.ppt_第4页
上下限可调温度传感器.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

单片机报警温度可调温度传感器设计,电子1201 符宇龙,总电路原理图,什么是DS18B20温度传感器?,引脚说明 GND 地 DQ 数据I/O VDD 可选电源电压 NC 无连接,DS1820是美国DALLAS 半导体公司推出的第一片 支持“一线总线”接口的温 度传感器,它具有微型化、 低功耗、高性能、抗干扰 能力强、易配微处理器等 优点,可直接将温度转换 成串行数字信号供处理器 处理。 测温范围为-55125(67257)。,系统组成,本系统主要由主控制器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(0xcc);/跳过读序列号 xie18b20(0x44);/启动温度转换 chu18b20(); delay(1); xie18b20(0xcc);/跳过读序列号 xie18b20(0xbe);/读取温度 a=du18b20(); b=du18b20(); tvalue=b; tvalue=8; /组合两个字节 tvalue=tvalue|a; if(tvalue0x08ff) /判断温度符号 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+0x30;/百位数 table1=tvalue%1000/100+0x30;/十位数 table2=tvalue%100/10+0x30;/个位数 table3=tvalue%10+0x30;/小数位 if(tflag=0) space=0x20;/正温度不显示符号 else space=0x2d;/负温度显示负号:- if(table0=0x30) table0=0x20; /如果百位为0,不显示 if(table1=0x30) table1=0x20; /十位为0也不显示 write_com(0xc0+4); /0x80+0x40=0xc0,+4e为前面空四列 write_data(space);/显示符号位 write_data(table0);/显示百位 write_data(table1);/显示十位 write_data(table2);/显示个位 write_data(0x2e);/显示小数点 write_data(table3);/显示小数位 write_data(0xdf); /显示。 write_data(0x43);/显示C ,功能按键低温上限调制程序,/*温度上下限调制*/ void keyscan() uchar i; if(key3=0) delay(10); if(key3=0) key3num+; write_com(0x80); for(i=0;i16;i+) write_data( ); while(!key3); di(); while(key3num=1) /调制warn_l1 write_com(0x80); display(table4); jiajian(); warn_l1=num+27; write_com(0x88); write_data(warn_l1/10+0x30);/十位数 write_data(warn_l1%10+0x30);/个位数 write_data(0xdf); /显示。 write_data(0x43);/显示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、板焊接完成

温馨提示

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

评论

0/150

提交评论