首页 >> 宝藏问答 >

ds18b20例程(DS18B20的程序)

2024-05-08 14:02:21

问题描述:

ds18b20例程(DS18B20的程序),有没有大佬愿意带带我?求帮忙!

最佳答案

推荐答案

2024-05-08 14:02:21

大家好,小东方来为大家解答以上的问题。ds18b20例程,DS18B20的程序这个很多人还不知道,现在让我们一起来看看吧!

1、接上18B20温度传感器后数码管显示出当前温度#include #define uchar unsigned char#define uint unsigned intsbit DS=P2^2; //define interfaceuint temp; // variable of temperatureuchar flag1; // sign of the result positive or negativesbit dula=P2^6;sbit wela=P2^7;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};void delay(uint count) //delay{ uint i; while(count) { i=200; while(i>0) i--; count--; }}///////功能:串口初始化,波特率9600。

2、方式1///////void Init_Com(void){ TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1;}void dsreset(void) //send reset and initialization command{ uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--;}bit tmpreadbit(void) //read a bit{ uint i; bit dat; DS=0;i++; //i++ for delay DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat);}uchar tmpread(void) //read a byte date{ uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面。

3、这样刚好一个字节在DAT里 } return(dat);}void tmpwritebyte(uchar dat) //write a byte to ds18b20{ uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //write 1 { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; //write 0 i=8;while(i>0)i--; DS=1; i++;i++; } }}void tmpchange(void) //DS18B20 begin change{ dsreset(); delay(1); tmpwritebyte(0xcc); // address all drivers on bus tmpwritebyte(0x44); // initiates a single temperature conversion}uint tmp() //get the temperature{ float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; //two byte compose a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;}void readrom() //read the serial{ uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread();}void delay10ms() //delay { uchar a,b; for(a=10;a>0;a--) for(b=60;b>0;b--); }void display(uint temp) //显示程序{ uchar A1,A2,A2t,A3,ser; ser=temp/10; SBUF=ser; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=table[A1]; //显示百位 dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table1[A2]; //显示十位 dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); P0=table[A3]; //显示个位 dula=1; dula=0; P0=0x7b; wela=1; wela=0; delay(1);}void main(){ uchar a; Init_Com(); do { tmpchange(); // delay(200);for(a=10;a>0;a--) { display(tmp()); } } while(1);}。

本文到此分享完毕,希望对大家有所帮助。

  免责声明:本答案或内容为用户上传,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。 如遇侵权请及时联系本站删除。

 
分享:
最新文章
  • 【卢姓的来源】卢姓是中国常见的姓氏之一,历史悠久,源远流长。根据历史文献和族谱记载,卢姓的来源主要有以...浏览全文>>
  • 【龙眼的原产地是在中国吗】龙眼,又称桂圆,是一种常见的水果,广泛种植于亚洲热带和亚热带地区。关于龙眼的...浏览全文>>
  • 【龙眼的成熟时间是几月龙眼是几月份成熟】龙眼是一种常见的热带水果,因其甜美的口感和丰富的营养价值而受到...浏览全文>>
  • 【龙脷叶功效有哪些】龙脷叶,又称“龙利叶”或“龙舌叶”,是一种常见的中药材,主要来源于萝藦科植物龙脷叶...浏览全文>>
  • 【龙利鱼做法】龙利鱼是一种肉质鲜嫩、营养丰富的海鱼,近年来在家庭餐桌和餐厅中越来越受欢迎。由于其刺少、...浏览全文>>
  • 【六一节祝福语简短】六一儿童节是孩子们最期待的节日之一,它象征着快乐、纯真与希望。在这一天,无论是家长...浏览全文>>
  • 【榴莲保存方法】榴莲是一种味道独特、营养丰富的热带水果,但因其果肉柔软、易变质,保存起来需要一定的技巧...浏览全文>>
  • 【流行的网名】在当今网络时代,网名已成为人们在网络社交中表达个性、展示态度的重要方式。无论是游戏、社交...浏览全文>>
  • 【靈活词语意思是什么】“靈活”是一个常见的中文词语,常用于描述事物或人的适应能力、变通性。它在不同语境...浏览全文>>
  • 【酃绿的读音】“酃绿”是一个较为少见的词语,常见于茶叶、地名或文化背景中。为了帮助读者准确掌握其读音和...浏览全文>>