18B20在51单片机上用1602显示温度

上传人:飞*** 文档编号:40281619 上传时间:2018-05-25 格式:DOCX 页数:4 大小:13.62KB
返回 下载 相关 举报
18B20在51单片机上用1602显示温度_第1页
第1页 / 共4页
18B20在51单片机上用1602显示温度_第2页
第2页 / 共4页
18B20在51单片机上用1602显示温度_第3页
第3页 / 共4页
18B20在51单片机上用1602显示温度_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《18B20在51单片机上用1602显示温度》由会员分享,可在线阅读,更多相关《18B20在51单片机上用1602显示温度(4页珍藏版)》请在金锄头文库上搜索。

1、#include #define uint unsigned int #define uchar unsigned char sbit wela=P27; sbit dula=P26;sbit lcden=P34; sbit lcdrs=P35;sbit TMDAT=P22; /DS18B20 的数据输入/输出脚 DQ,根据情况设定 uint sdata;/测量到的温度的整数部分 uchar xiaoshu;/小数uchar code table10=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;void delay(uint count)

2、 /延时部分 uchar i; while(count-) for(i=0;i1); return(dat); void tmwbyte (uchar dat) /写一个字节 uchar j,i; bit testb; for(j=1;j1; if(testb) TMDAT=0; /写 0 i+;i+; TMDAT=1; for(i=0;i8;i+); else TMDAT=0; /写 0 for(i=0;i8;i+); TMDAT=1; i+;i+; void tmstart (void) /发送 ds1820 开始转换 tmreset(); /复位 delay(1); /延时 tmwbyt

3、e(0xcc); /跳过序列号命令 tmwbyte(0x44); /发转换命令 44H, void tmrtemp (void) /读取温度 uchar a,b; tmreset(); /复位 delay(1); /延时 tmwbyte(0xcc); /跳过序列号命令 tmwbyte(0xbe); /发送读取命令 a=tmrbyte(); /读取低位温度 b=tmrbyte(); /读取高位温度 sdata=a/16+b*16; /整数部分 xiaoshu=(a /小数 void DS18B20PRO(void) tmstart(); /dmsec(5); /如果是不断地读取的话可以不延时 /

4、 tmrtemp(); /读取温度,执行完毕温度将存于 TMP 中 / void write_com(uchar com) lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; void write_data(uchar date) lcdrs=1; P3=date; P0=date; delay(5); lcden=1; delay(5); lcden=0; void init() dula=0; wela=0; lcden=0;write_com(0x38); write_com(0x0e); write_com(0x06);write_com(0x01); write_com(0x80); void dis() init(); write_data(tablesdata/10);write_data(tablesdata%10);write_data(0xa5);write_data(tablexiaoshu); void main() while(1)DS18B20PRO();dis(); delay(1000);

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

当前位置:首页 > 行业资料 > 其它行业文档

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