DS18B20温度传感器1602液晶显示

上传人:枫** 文档编号:491760153 上传时间:2023-05-11 格式:DOC 页数:5 大小:32.50KB
返回 下载 相关 举报
DS18B20温度传感器1602液晶显示_第1页
第1页 / 共5页
DS18B20温度传感器1602液晶显示_第2页
第2页 / 共5页
DS18B20温度传感器1602液晶显示_第3页
第3页 / 共5页
DS18B20温度传感器1602液晶显示_第4页
第4页 / 共5页
DS18B20温度传感器1602液晶显示_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《DS18B20温度传感器1602液晶显示》由会员分享,可在线阅读,更多相关《DS18B20温度传感器1602液晶显示(5页珍藏版)》请在金锄头文库上搜索。

1、单片机轻松入门之十DS18B20温度传感器+1602液晶显示本文旨在介绍单片机入门的基础知识,为初接触或即将接触单片的新手提供一个 入门指导。本文章会陆续推出,隔几天一个章节。所使用单片机为ATME公司的 AT89C52软件为PROTEU和 KEIL;只提供原理图和KEIL环境下的注释,希望对 广大即将接触单片机的人有所帮助,如果有错误欢迎回帖指出与本人交流或QQ联系(QQ:56。DS18B2C数字温度传感器是由美国 DALLAS公司生产的,体积小,使用方便,测 温范围55r+ 125C,测温分辨率0.5 C,工作电压DC3-5V不需要任何外 围元件,采用SPI单线接口方式,在与微处理器连接时

2、仅需要一条口线即可实现 双向通讯,广泛适用于各种温度控制领域。原理图如下:程序如下:#in clude#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit RS=P3A0;sbit EN=P3A2;sbit RW=P3A1;sbit wela=P3A3;sbit DQ=P3A4;uchar i;uint num;uint shi,ge,xiaoshu;uchar code t0=The temperature ;uchar code t1= is;uchar code wen du=09;void delay( uint

3、x)uint m,n;for(m=x;m0;m-)for(n=10; n 0; n-);void delay1( uint x)uint a,b;for(a=x;a0;a-)for(b=110;b0;b-);void write_com(uchar com) _wela=1;P2=com;wela=0;RS=0;EN=0;RW=0;delay(10);EN=1;delay(10);EN=0;液晶写数据指令 */void write_date(uchar date) _wela=1;P2=date;wela=0;RS=1;EN=0;RW=0;delay(10);EN=1;delay(10);EN

4、=0;液晶初始化指令*/void in it() write_com(0x38); delay(20); write_com(0x0f); delay(20);write_com(0x06); delay(20);write_com(0x80);write_date(tOi); delay(O); write_com(0x80+0x40); for(i=0;i0;i-)DQ = 0; II给脉冲信号dat=1;DQ = 1; II给脉冲信号if(DQ)dat|=0x80; tmpDelay(4);return(dat);void Write On eChar(u nsig ned char d

5、at)/ 写一个字节un sig ned char i=0;for (i=8; i0; i-)DQ = 0;DQ = dat&0x01;tmpDelay(5);DQ = 1;dat=1;unsigned int Readtemp()/ 读取温度 un sig ned char a=0;un sig ned char b=0;un sig ned int t=0;float tt=0;In it_DS18B20();Write On eChar(0xCC); /跳过读序号列号的操作Write On eChar(0x44); / 启动温度转换In it_DS18B20();Write On eCh

6、ar(0xCC); /跳过读序号列号的操作Write On eChar(0xBE); /读取温度寄存器 a=ReadOneChar();/连续读两个字节数据b=Read On eChar();t=b;t=8;t=t|a; /两字节合成一个整型变量tt=t*0.0625;/得到真实十进制温度值,因为 DS18B20可以精确到0.0625度,所以读回数据的最低位代表的是 0.0625度t= tt*10+0.5;/放大十倍,这样做的目的将小数点后第一位也转换为可显示数字,同时进行一个四舍五入操作。return(t);void mai n()ini t();num=Readtemp();shi=num/100;ge=n um/10%10;xiaoshu=nu m%10;write_com(0xc0+5);write_date(we ndushi);write_com(0xc0+6);write_date(we nduge);write_com(0xc0+7);write_date(0x2e);write_com(0xc0+8);write_date(we nduxiaoshu);while(1);实验仿真结果:在实际实验板上可以真实显示当前环境温度值,但用软件仿真时就显示85C.来自:评论(0)| | | |

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号