标题:
51单片机18B20串口发、收源码
[打印本页]
作者:
最小似然估计
时间:
2018-4-27 08:33
标题:
51单片机18B20串口发、收源码
基于51单片机的程序,作用是通过串口发送18B20采集的数据到另外个51单片机,并在这个单片机接收数据,通过1602显示温度
0.jpg
(31.86 KB, 下载次数: 46)
下载附件
2018-4-27 16:16 上传
单片机源程序如下:
/***************发送***********/
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define uchar unsigned char
uchar wendu1[]={0,0,0x2e,0};
sbit DQ= P2^5;
void delay1820(uint n)
{
do
{
_nop_ (); //01
_nop_ (); //02
_nop_ (); //13
_nop_ (); //01
_nop_ (); //02
_nop_ (); //01
_nop_ (); //02
n--;
}
while(n);
}
void delay(uint z) //ms
{
uint x,y;
for(x=z;x>0;x--);
for(y=110;y>0;y--);
}
uchar rst(void)//通知 1820
{
uchar present;
DQ=1;
delay1820(3);
DQ = 0;
delay1820(32);//480us
DQ = 1;
delay1820(1);
present=DQ;
delay1820(20);
DQ=1;
return(present);
}
unsigned int read(void)
{
int i=0;
unsigned int u=0;
for (i=0;i<16;i++)
{
u>>=1;
DQ=0;
_nop_();//1us
DQ=1;
if(DQ) u|=0x8000;
delay1820(5);
}
return(u);
}
void write(unsigned char dat)
{
int i=0;
for (i=0;i<8;i++)
{
DQ=0;
_nop_();
_nop_();
DQ=dat&0x01;
delay1820(5);
DQ=1;
dat>>=1;
}
delay1820(5);
}
void read1820(void)
{
uint t1, t2;
char flag;
uint twendu1;
long float lsb;
rst();
write(0xcc);
write(0x44);
rst();
write(0xcc);
write(0xBE);
twendu1=read();
if((twendu1&0xf800)==0xf000)
{
twendu1=(~twendu1)+1;
flag=1;
}
lsb=(twendu1&0X07FF)*0.0625;
t1=lsb*10;
wendu1[0]=0x30+t1%1000/100;
t2= t1%100;
wendu1[1]=0x30+t2%100/10;
wendu1[3]=0x30+t2%10;
}
/*********串口通讯部分************/
void chuankou_init()
{
SCON=0x50; //串口初始化,设置其工作在方式一,为接收状态
PCON=0x00; //选用11.0592MHZ晶振,波特率为9600bps
TMOD=0x20;
TH1=0xfd;
TR1=1;
EA=1; //开中断
ES=1;
}
void send(uchar ch)
{
SBUF=ch;
while (TI==0);
TI= 0 ;
delay(10);
}
char a;
char flag;
uchar wen;
void main()
{
rst();
chuankou_init();
while(1)
{
read1820();
if(flag==0x0a)
{
for(wen=0;wen<4;wen++)
{
send(wendu1[wen]);
}
flag=0x0c;
}
}
}
void ser()interrupt 4
{
if(RI)
{
RI=0;
flag=SBUF;
}
}
复制代码
所有资料51hei提供下载:
基于51的18B20温度串口发、收程序并102显示.zip
(42.13 KB, 下载次数: 34)
2018-4-27 08:31 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1