標(biāo)題:
51單片機(jī)18B20串口發(fā)、收源碼
[打印本頁(yè)]
作者:
最小似然估計(jì)
時(shí)間:
2018-4-27 08:33
標(biāo)題:
51單片機(jī)18B20串口發(fā)、收源碼
基于51單片機(jī)的程序,作用是通過(guò)串口發(fā)送18B20采集的數(shù)據(jù)到另外個(gè)51單片機(jī),并在這個(gè)單片機(jī)接收數(shù)據(jù),通過(guò)1602顯示溫度
0.jpg
(31.86 KB, 下載次數(shù): 46)
下載附件
2018-4-27 16:16 上傳
單片機(jī)源程序如下:
/***************發(fā)送***********/
#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; //串口初始化,設(shè)置其工作在方式一,為接收狀態(tài)
PCON=0x00; //選用11.0592MHZ晶振,波特率為9600bps
TMOD=0x20;
TH1=0xfd;
TR1=1;
EA=1; //開(kāi)中斷
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;
}
}
復(fù)制代碼
所有資料51hei提供下載:
基于51的18B20溫度串口發(fā)、收程序并102顯示.zip
(42.13 KB, 下載次數(shù): 34)
2018-4-27 08:31 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1