久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
LABVIEW基于單片機(jī)串口的溫度顯示DS8B20并用文本保存
[打印本頁]
作者:
lyh一點(diǎn)點(diǎn)
時(shí)間:
2020-4-28 11:00
標(biāo)題:
LABVIEW基于單片機(jī)串口的溫度顯示DS8B20并用文本保存
這個(gè)是LABVIEW界面,DS18B20的傳感器接收溫度,給單片機(jī),單片機(jī)顯示并通過串口發(fā)送給LABVIEW,labview生成TXT文件,并保存歷史數(shù)據(jù)。壓縮包里的單片機(jī)程序。如果問題加群QQ:721277962(備注來自51黑)互相學(xué)習(xí)。單片機(jī)采用是51的單片機(jī),數(shù)碼管顯示。使用的時(shí)候一定要連接串口。
11.png
(181.5 KB, 下載次數(shù): 97)
下載附件
2020-4-28 10:54 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#include<intrins.h>
sbit PS0=P2^4;//數(shù)碼管小數(shù)點(diǎn)后第1位
sbit PS1=P2^5;//數(shù)碼管個(gè)位
sbit PS2=P2^6;//數(shù)碼管十位
sbit PS3=P2^7;//數(shù)碼管百位
sfr P_data=0x80;//P0口為顯示數(shù)據(jù)輸出口
sbit DQ=P3^6;//DS18B20數(shù)據(jù)接口
void delay(unsigned int);//延時(shí)函數(shù)
void DS18B20_init(void); //DS18B20初始化
unsigned int get_temper(void); //讀取溫度程序
void DS18B20_write(unsigned char in_data); //DS18B20寫數(shù)據(jù)函數(shù)
unsigned char DS18B20_read(void);////讀取數(shù)據(jù)程序
unsigned int htd(unsigned int a); //進(jìn)制轉(zhuǎn)換函數(shù)
void display(unsigned int a);//顯示函數(shù)
float temp;//溫度寄存器
bit DS18B20; // 18B20存在標(biāo)志,1---存在 0---不存在
unsigned char tab[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//字段轉(zhuǎn)換表
void main(void)
{
unsigned int a,temp;
TMOD=0x20; //定時(shí)器1--方式2
//PCON=0x80; //電源控制 19200
TL1=0xfd;
TH1=0xfd; //11.0592MHZ晶振,波特率為9600
SCON=0x50; //方式1
TR1=1; //啟動(dòng)定時(shí)
temp=get_temper();//這段程序用于避開剛上電時(shí)顯示85的問題
for(a=0;a<200;a++)
delay(500);
while(1)
{
temp=get_temper();//測(cè)量溫度
for(a=0;a<100;a++)//顯示,兼有延時(shí)的作用
display(htd(temp));
SBUF=(unsigned char)(temp>>8); //將溫度發(fā)送給PC
while(TI!=1);
TI=0;
SBUF=(unsigned char)temp;
while(TI!=1);
TI=0;
}
}
/****************************DS18B20讀取溫度函數(shù)**************************/
/*函數(shù)原型:void get_temper(void)
/*函數(shù)功能:DS18B20讀取溫度
/*輸入?yún)?shù):無
/*輸出參數(shù):無
/*調(diào)用模塊:
/**********************************************************************/
unsigned int get_temper(void)
{
unsigned char k,T_sign,T_L,T_H;
DS18B20_init(); //DS18B20初始化
if(DS18B20) //判斷DS1820是否存在?若DS18B20不存在則返回
{
DS18B20_write(0xcc); // 跳過ROM匹配
DS18B20_write(0x44); //發(fā)出溫度轉(zhuǎn)換命令
DS18B20_init(); //DS18B20初始化
if(DS18B20) //判斷DS1820是否存在?若DS18B20不存在則返回
{
DS18B20_write(0xcc);//跳過ROM匹配
DS18B20_write(0xbe);//發(fā)出讀溫度命令
T_L=DS18B20_read();//數(shù)據(jù)讀出
T_H=DS18B20_read();
k=T_H&0xf8;
if(k==0xf8)
T_sign=1; //溫度是負(fù)數(shù)
else
T_sign=0; //溫度是正數(shù)
T_H=T_H&0x07;
temp=(T_H*256+T_L)*10*0.0625; //溫度轉(zhuǎn)換常數(shù) 乘以10 是因?yàn)橐A?位小數(shù)
return (temp);
}
}
}
/****************************DS18B20寫數(shù)據(jù)函數(shù)**************************/
/*函數(shù)原型:void DS18B20_write(uchar in_data)
/*函數(shù)功能:DS18B20寫數(shù)據(jù)
/*輸入?yún)?shù):要發(fā)送寫入的數(shù)據(jù)
/*輸出參數(shù):無
/*調(diào)用模塊:_cror_()
/**********************************************************************/
void DS18B20_write(unsigned char in_data) //寫DS18B20的子程序(有具體的時(shí)序要求)
{
unsigned char i,out_data,k;
out_data=in_data;
for(i=1;i<9;i++) //串行發(fā)送數(shù)據(jù)
{
DQ=0;
DQ=1;
_nop_();
_nop_();
k=out_data&0x01;
if(k==0x01) //判斷數(shù)據(jù) 寫1
{
DQ=1;
}
else //寫0
{
DQ=0;
}
delay(4); //延時(shí)62us
DQ=1;
out_data=_cror_(out_data,1); //循環(huán)左移1位
}
}
/**************************DS18B20讀函數(shù)**************************/
/*函數(shù)原型:void DS18B20_read()
/*函數(shù)功能:DS18B20讀數(shù)據(jù)
/*輸入?yún)?shù):無
/*輸出參數(shù):讀到的一字節(jié)內(nèi)容
/*調(diào)用模塊:delay()
/******************************************************************/
unsigned char DS18B20_read()
{
unsigned char i,in_data,k;
in_data=0;
for(i=1;i<9;i++) //串行發(fā)送數(shù)據(jù)
{
DQ=0;
DQ=1;
_nop_();
_nop_();
k=DQ; //讀DQ端
if(k==1) //讀到的數(shù)據(jù)是1
{
in_data=in_data|0x01;
}
else
{
in_data=in_data|0x00;
}
delay(3); //延時(shí)51us
DQ=1;
in_data=_cror_(in_data,1); //循環(huán)右移1位
}
return(in_data);
}
/**************************DS18B20初始化函數(shù)**************************/
/*函數(shù)原型:void DS18B20_init(void)
/*函數(shù)功能:DS18B20初始化
/*輸入?yún)?shù):無
/*輸出參數(shù):無
/*調(diào)用模塊:delay()
/******************************************************************/
void DS18B20_init(void)
{
unsigned char a;
DQ=1;//主機(jī)發(fā)出復(fù)位低脈沖
DQ=0;
delay(44); //延時(shí)540US
DQ=1;
for(a=0;a<0x36&&DQ==1;a++)
{
a++;
a--; //等待DS18B20回應(yīng)
}
if(DQ)
DS18B20=0; //18B20不存在
else
{
DS18B20=1; // 18B20存在
delay(120); //復(fù)位成功!延時(shí)240US
}
}
/**************************數(shù)碼管顯示函數(shù)**************************/
/*函數(shù)原型:void display(void)
/*函數(shù)功能:數(shù)碼管顯示
/*輸入?yún)?shù):無
/*輸出參數(shù):無
/*調(diào)用模塊:delay()
/******************************************************************/
void display(unsigned int a)
{
P_data=tab[a&0x0f];//顯示小數(shù)點(diǎn)后第1位
PS0=0;
PS1=1;
PS2=1;
PS3=1;
delay(200);
P_data=tab[(a>>4)&0x0f]|0x01; //顯示個(gè)位
PS0=1;
PS1=0;
delay(200);
P_data=tab[(a>>8)&0x0f];//顯示十位
PS1=1;
PS2=0;
delay(200);
P_data=tab[(a>>12)&0x0f];//顯示百位
PS2=1;
PS3=0;
delay(200);
PS3=1;
P_data=0xff;//恢復(fù)數(shù)據(jù)口
}
/**************************十六進(jìn)制轉(zhuǎn)十進(jìn)制函數(shù)**************************/
/*函數(shù)原型:uint htd(uint a)
/*函數(shù)功能:十六進(jìn)制轉(zhuǎn)十進(jìn)制
/*輸入?yún)?shù):要轉(zhuǎn)換的數(shù)據(jù)
/*輸出參數(shù):轉(zhuǎn)換后的數(shù)據(jù)
/*調(diào)用模塊:無
/******************************************************************/
unsigned int htd(unsigned int a)
{
unsigned int b,c;
b=a%10;
c=b;
a=a/10;
b=a%10;
c=c+(b<<4);
a=a/10;
b=a%10;
c=c+(b<<8);
a=a/10;
b=a%10;
c=c+(b<<12);
return c;
}
/*******************************延時(shí)函數(shù)*********************************/
/*函數(shù)原型:delay(unsigned int delay_time)
/*函數(shù)功能:延時(shí)函數(shù)
/*輸入?yún)?shù):delay_time (輸入要延時(shí)的時(shí)間)
/*輸出參數(shù):無
/*調(diào)用模塊:無
/**********************************************************************/
void delay(unsigned int delay_time) //延時(shí)子程序
{for(;delay_time>0;delay_time--)
{}
}
復(fù)制代碼
作者:
13118302007
時(shí)間:
2020-9-12 23:36
可惜沒有附件?
作者:
jerryzuohuang
時(shí)間:
2020-9-18 20:47
沒有看到附件,也想學(xué)習(xí)
作者:
qhp777
時(shí)間:
2020-10-29 10:59
對(duì)新手來說,有參考意義
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久视频在线
|
日韩中文字幕在线播放
|
久久久久国产精品夜夜夜夜夜
|
涩久久
|
亚洲欧美中文字幕
|
精品黑人一区二区三区国语馆
|
精品欧美一区二区三区久久久
|
成人做爰69片免费
|
亚洲欧美国产毛片在线
|
好色婷婷
|
久久久久国产一区二区三区
|
成人激情视频网
|
久久精品视频网站
|
亚洲一区二区三区免费视频
|
在线网站免费观看18
|
日韩在线观看中文字幕
|
精品一区在线播放
|
www.夜夜操
|
久久免费观看视频
|
欧美特黄视频
|
国产综合第一页
|
日韩黄色一级
|
理论片中文字幕
|
一区在线观看
|
欧美中文字幕
|
亚洲成人免费网站
|
久在线视频
|
一区二区视频在线播放
|
蜜桃成人在线
|
国产二区精品
|
中文字幕一区二区三区乱码
|
日本中文字幕一区
|
午夜成人在线视频
|
特黄aaaaaaaaa真人毛片
|
欧美又大又硬又粗bbbbb
|
国产91热爆ts人妖系列
|
九色自拍
|
国产主播99
|
91在线视频免费
|
国产香蕉av
|
欧美日韩精品一区二区
|