久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
18b20與單片機串口結合,實時接收,檢測溫度程序
[打印本頁]
作者:
mpc112
時間:
2019-4-25 18:09
標題:
18b20與單片機串口結合,實時接收,檢測溫度程序
18b20檢測溫度,顯示在數碼管上,同過串口發送到電腦
單片機源程序如下:
#include <at89x51.h>
sbit DQ = P2 ^ 6; //定義端口DQ
sbit led1 =P2^0;
sbit led2 =P2^1;
sbit led3 =P2^2;
sbit led4 =P2^3;
#define BCD unsigned char
#define shi unsigned char
unsigned char tx[10]={0,0,0x2E,0,0,0,0,0xDF,0x43,0x0A};
unsigned code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90};
void Delay(int num)//延時函數
{
while(num--) ;
}
void Delaynms(unsigned int di) //延時
{
unsigned int da,db;
for(da=0;da<di;da++)
for(db=0;db<100;db++);
}
void Init_DS18B20(void)//初始化ds1820
{
unsigned char x=0;
DQ = 1; //DQ復位
Delay(8); //稍做延時
DQ = 0; //單片機將DQ拉低
Delay(80); //精確延時 大于 480us
DQ = 1; //拉高總線
Delay(14);
x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
Delay(20);
}
unsigned char ReadOneChar(void)//讀一個字節
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
Delay(4);
}
return(dat);
}
void WriteOneChar(unsigned char dat)//寫一個字節
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
Delay(2);
DQ = 1;
dat>>=1;
}
}
void ReadTemperature(void)//讀取溫度
{
unsigned char a=0;
unsigned char b=0;
unsigned char Data_L=0;
unsigned char num=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳過讀序號列號的操作
WriteOneChar(0x44); // 啟動溫度轉換
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
tx[0] = (a/16+b*16)/10; //整數部分
tx[1] = (a/16+b*16)%10;
Data_L=a&0X0F;
for(num=3;num<7;num++) //小數部分
{
Data_L=Data_L*10; //10 //100 //40 //80
tx[num]=Data_L/16; //0 //6 //2 //5
Data_L=Data_L%16; //10 //4 //8
}
}
void Display_SMG(void)
{
unsigned char a;
for(a=0;a<=50;a++)
{
P0=table[tx[0]];
P2_0 = 0;
Delaynms(5);
P2_0 = 1;
P0=(table[tx[1]])&0x7f;
P2_1 = 0;
Delaynms(5);
P2_1 = 1;
P0=table[tx[3]];
P2_2 = 0;
Delaynms(5);
P2_2 = 1;
P0=table[tx[4]];
P2_3 = 0;
Delaynms(5);
P2_3 = 1;
}
}
void b(unsigned int baud)
{
SCON=0x50;//0101 0000
TMOD &=0x0F;
TMOD |=0x20;
TH1=TL1=(256-11059200)/12/2/16/baud;
ET1=0;
TR1=1;
}
void main(void)
{
BCD w,a,s,d;
shi z,x,c,v;
Init_DS18B20();
while(1)
{
ReadTemperature();
Display_SMG();
b(9600);
w=(table[tx[0]]/10*16)+(table[tx[0]]%10);
z=((w>>4)*10+(w&0x0f));
SBUF=z;
while(TI==0);
TI=0;
Delay(1000);
a=(table[tx[1]]&0x7f/10*16)+(table[tx[1]]&0x7f%10);
x=((a>>4)*10+(a&0x0f));
SBUF=x;
while(TI==0);
TI=0;
Delay(1000);
s=(table[tx[3]]/10*16)+(table[tx[3]]%10);
c=((s>>4)*10+(s&0x0f));
SBUF=c;
while(TI==0);
TI=0;
Delay(1000);
d=(table[tx[4]]/10*16)+(table[tx[4]]%10);
v=((d>>4)*10+(d&0x0f));
SBUF=v;
while(TI==0);
TI=0;
Delay(1000);
}
}
復制代碼
所有資料51hei提供下載:
串口溫度.rar
(40.68 KB, 下載次數: 17)
2019-4-25 18:06 上傳
點擊文件名下載附件
溫度18b20
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成年人黄色免费视频
|
毛片免费在线观看
|
成人在线免费av
|
三级免费av
|
色www精品视频在线观看
|
国产精品日产欧美久久久久
|
夜夜骑综合
|
国产网站久久
|
91欧美精品
|
四虎最新地址
|
色综合久久伊人
|
一区二区三区国产好的精
|
成人在线播放
|
狠狠干美女
|
一级特黄在线
|
三级黄色大片网站
|
欧美日韩国产一区二区三区
|
亚洲第一在线
|
中文字幕欧美日韩
|
中文字幕四虎
|
一二区视频
|
亚洲成人动漫在线观看
|
91精品国模一区二区三区
|
欧美成人精品一区二区男人看
|
国产精品高潮呻吟久久
|
天天av网
|
久久一区二区视频
|
午夜免费电影院
|
国产欧美在线观看
|
久久爱黑人激情av摘花
|
亚洲视频二
|
欧美一级电影免费观看
|
日韩福利视频
|
精品视频一区二区三区在线观看
|
日韩av一区二区在线观看
|
日屁网站
|
久久国产精品久久久久
|
欧美激情在线精品一区二区三区
|
永久av
|
九九热在线免费视频
|
亚洲最大看片网站
|