综合实验一18B20温度采集实验

上传人:飞*** 文档编号:51256583 上传时间:2022-01-24 格式:DOCX 页数:12 大小:66.51KB
收藏 版权申诉 举报 下载
综合实验一18B20温度采集实验_第1页
第1页 / 共12页
综合实验一18B20温度采集实验_第2页
第2页 / 共12页
综合实验一18B20温度采集实验_第3页
第3页 / 共12页
资源描述:

《综合实验一18B20温度采集实验》由会员分享,可在线阅读,更多相关《综合实验一18B20温度采集实验(12页珍藏版)》请在装配图网上搜索。

1、谢谢您的观看实验一 18B20 温度采集实验一、实验目的1. 掌握单片机与 1-wire (一线器)的通信原理与编程方法;2. 掌握 LED 动态显示方法;3了解温度传感器原理;二、实验原理及实验内容3. 实验原理关于 18B20 工作原理请读者参考DALLAS 公司资料。 89S52 控制 DS18B20 完成温度转换必须经过三个步骤: 初始化、 ROM 操作指令、 存储器操作指令。 必须先启动DS18B20开始转换,再读出温度转换值。本实验系统挂接一个18B20 芯片,可使用默认的 12位转换精度,外接供电电源,单片机与18B20 接口是用单片机的 P2.4 。2实验内容a.程序要求,参考

2、给出的流程图,在 Keil编译环境下变成程序,要求采集温度,如果超出报警温度范围则报警, 报警通过实验箱上的蜂鸣器实现, 报警温度可以通过键盘设置,最后,生成*.HEX 文件。b.通过ISP将生成的*.HEX文件下载到单片机中,允许程序。c.观测LCD上的显示温度数据,通过键盘操作控制报警温度。谢谢您的观看图8-1 DS18B20温度采集系统流程图三、参考程序/DS18B20温度传感器程序#include #define Alarm 10sbit Beep=P3A4;sbit DQ=P2A4;/数据传输线接单片机的相应的引脚unsigned char tempL=0,tempH=0; / 设全

3、局变量unsigned char flag=0;unsigned int temperature,negtemper;温度值保存在 temperature 里unsigned char idata addrdat2=0x0,0x0;unsigned char tab尸0xc0,0xf9,0xa4,0xb0, /* 0 1 2 3 4 */0x99,0x92,0x82,0xf8,0x80,0x90; /* 5 6 7 8 9 */unsigned char tabi尸0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;unsigned char d

4、ispbuf3=0,0,0;unsigned char warning=20;bit on=0,off=1;/*/延时子程序/*void delay(unsigned int i) while(i-);void beep( bit i) Beep=i;/*/初始化程序Init_DS18B20(void) unsigned char x=0;DQ=1;delay(8);DQ=0;delay(85);DQ=1;delay(14);x=DQ;/DQ 先置高/稍延时/发送复位脉冲/延时(480us)/拉高数据线/ 等待( 1560us)/ 用 X 的值来判断初始化有没有成功, 18B20 存在的话 X

5、=0 ,否则 X=1delay(20); /*/读一个字节ReadOneChar(void)unsigned char i=0;unsigned char dat=0;for (i=8;i0;i-)DQ=1;delay(1);DQ=0;dat=1;DQ=1;if(DQ)dat|=0x80;delay(4); return(dat); /*/主机数据线先从高拉至低电平1ms 以上,再/使数据线升为高电平,从而产生读信号每个读周期最短的持续时间为60us,各个读周期/之间必须有1ms 以上的高电平恢复期/ 一个字节有8 位/写一个字节/数据线从高电平拉至低电平,产生写起始信号。/15ms 之内将所

6、需写的位送到数据线上,WriteOneChar(unsigned char dat) unsigned char i=0;for(i=8;i0;i-)/ 在 1560ms 之间对数据线进行采样,如果是高电平就写 1,低写 0 发生。DQ=0;/在开始另一个写周期前必须有1ms 以上的高电平恢复期。DQ=dat&0x01;delay(5);DQ=1;dat=1;delay(4);/*ReadTemperature(void)Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);delay(125);Init_DS18B20();WriteOne

7、Char(0xcc);WriteOneChar(0xbe); tempL=ReadOneChar(); tempH=ReadOneChar();/初始化/跳过读序列号的*作/启动温度转换/转换需要一点时间,延时/初始化/跳过读序列号的 *作/读温度寄存器(头两个值分别为温度的低位和高位)/读出温度的低位LSB/读出温度的高位MSBtemperature=(tempH*256)+tempL; / 温度转换,把高低位做相应的运算转化为实际温度 return(temperature); /*void Dispbuf(unsigned int temper)dispbuf2=(temper4)/10;

8、dispbuf1=(temper4)%10;if(temper&0x8)dispbuf0=0x55;else dispbuf0=0;unsigned char getkey()P2=0xff;P2=0xfe;if (P2&0xff)!=0xfe)delay(5000);if(P2&0xff)!=0xfe) return P2;else P2=0xfd;else P2=0xfd;if (P2&0xff)!=0xfd)delay(5000);if (P2&0xff)!=0xfd) return P2;/取十位/取个位/小数位/键盘扫描程序else P2=0xfb;else P2=0xfb;if (

9、P2&0xff)!=0xfb)delay(5000);if (P2&0xff)!=0xfb) return P2;else P2=0xf7;else P2=0xf7;if (P2&0xff)!=0xf7)delay(5000);if (P2&0xff)!=0xf7) return P2;else return P2=0xfe;/外部中断1Inter0_process() interrupt 2unsigned char key;int i;unsigned char dis=0x01;unsigned int j;for(j=5000;j0;j-)/取键值/如 1 键按下温值递增/5 按下递减

10、/16 键退出中断/设置两位报警值在 LED 上显示key = getkey();if (key = 0xee) warning+; delay(8000);if (key=0xed)warning-;delay(8000);if(key=0x77)j=1;for(i=0;i2;i+)P1=dis;dis=1;if(i=0)P0=tabwarning%10;elseP0=tabwarning/10;delay(200);dis=0x01;/*/主程序main()unsigned char i,npos=0x01;P0=0xff;P2=0xff;P1=0xff;EX1=1;IT1=1;ET1=1

11、;EA=1;while(1)if(temperature&0xf000)=0xf000)ReadTemperature();for(i=0;i4;i+)/开中断一/下降沿触发/开总中断/判断是否是负温度/四位显示negtemper=(temperature)+1;Dispbuf(negtemper);P1=npos;npos=1;if(i=1)P0=tab1dispbufi;/取原码/取位值/循环使能/第二位显示有点/查表显示delay(700);else if(i=3)/显示负号P0=0xbf;elseP0=tabdispbufi; delay(700);npos=0x01;else/如不是负温度for(i=0;i4)&0xff)=warning)/为负则显示三位/读温值/温值大于报警温值则报警beep(on);else beep(off);P1=npos;npos=1;if(i=1)P0=tab1dispbufi;elseP0=tabdispbufi; delay(100); npos=0x01;/蜂鸣器响/不响/循环显示四、实验仪器和设备Keil 软件; AT89S52 实验平台; ATMEL ISP 在线编程软件; 18B20 温度传感器实验模 块五、实验结果和数据分析问题:1说明1-wire 器工作原理。2说明18B20 控制原理。

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