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

下载本文档

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

文档简介

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

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

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

4、h18b20(); 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();keysca

5、n(); 读取温度值并转换程序读取温度值并转换程序/*读取温度值并转换读取温度值并转换*/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

6、=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;/十位数十位数

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

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

9、ey3=0)key3num+;write_com(0 x80); for(i=0;i16;i+)write_data( );while(!key3);di();while(key3num=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);/

10、显示显示Cif(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(!ke

11、y1);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 iswhile(!TI);TI=0;do/发送温度值发送温度值 SBUF=*parr+; while(!TI); TI=0;

12、 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)里多加几个里多加几个keysc

13、an();因为主函数语句过多,如果不多加因为主函数语句过多,如果不多加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;因为串口发送数据一次只能发送一位,而为两位。因为串口发送数

14、据一次只能发送一位,而为两位。留意:子函数的调用,必须是被调用函数在调用函数之前。留意:子函数的调用,必须是被调用函数在调用函数之前。硬件问题检修硬件问题检修1、板焊接完成和程序下载完后,发现电路板全部模块都没响应?分析:因为电路板全部模块没有响应,可以猜测是电路板上的单片机最小系统模块出的问题。检修:1)、芯片供电检修:用万用表测量单片机的20和40引脚的电压值是否为 5V左右,如果不是,则对20和40引脚相应的线路进行修改常见问题: 虚焊和错焊)。 2)、复位电路检修:用万用表测量单片机的第9引脚的电压值是否为0V, 如果不是,则复位焊接出错,对复位电路进行修改常见问题:对轻触 开关结构不了解,焊接时选用了轻触开关导通两个引脚) 3)、晶振电路检测:用万用表量两个引脚电压是否是单片机芯片工作电 压的一半左右,另外如果用金属碰晶体另外一个脚,这个电压有明显变 化,证明是起振了的。轻触按键结构图硬件问题检修硬

温馨提示

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

评论

0/150

提交评论