欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)最小系統(tǒng)+DS18B20進(jìn)行溫度測(cè)量試驗(yàn) 串口發(fā)送溫度結(jié)果
[打印本頁(yè)]
作者:
dzdiy
時(shí)間:
2015-4-11 22:04
標(biāo)題:
單片機(jī)最小系統(tǒng)+DS18B20進(jìn)行溫度測(cè)量試驗(yàn) 串口發(fā)送溫度結(jié)果
這個(gè)用單片機(jī)最小系統(tǒng)+DS18B20進(jìn)行溫度測(cè)量試驗(yàn),所需要器材:一塊單片機(jī)最小系統(tǒng)、一只DS18B20數(shù)字溫度傳感器,測(cè)試結(jié)果經(jīng)串口發(fā)送到PC機(jī),通過(guò)電腦串口調(diào)試軟件顯示測(cè)量結(jié)果,測(cè)量范圍-55-125度,保留一位小數(shù)。關(guān)于單片機(jī)最小系統(tǒng)的制作,在本空間有詳細(xì)介紹,本文就不作介紹,相關(guān)的原理圖、PCB圖、元件清單等內(nèi)容有,這里就不作介紹了,需要制作的愛(ài)好者可參考本空間的手把手制作單片機(jī)最小系統(tǒng)。這里只給出單片機(jī)最小系統(tǒng)+DS18B20進(jìn)行溫度測(cè)量試驗(yàn)的具體程序的壓縮包,需要的可以自己下載。需要說(shuō)明的是,DS18B20的1腳接地、數(shù)據(jù)端口(2腳)是直接焊接在單片機(jī)最小系統(tǒng)板上的單片機(jī)P2.0口上、3腳接+5伏。DS18B20的2腳接正電源的4.7K的電阻可以省去,原因是單片機(jī)內(nèi)部是自己帶有上接電阻。下面是試驗(yàn)的相關(guān)圖片。
下載:
用單片機(jī)最小系統(tǒng) DS18B20進(jìn)行溫度測(cè)量試驗(yàn)程序.rar
(389.53 KB, 下載次數(shù): 394)
2015-4-11 22:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
串口調(diào)試助手等單片機(jī)工具軟件的下載地址:
http://www.raoushi.com/mcudown/
源代碼:
//單片機(jī)使用AT89C51晶振11.0592MHz
//讀取DS18B20上的數(shù)據(jù),發(fā)送至電腦
//數(shù)據(jù)格式:符號(hào)、十位、個(gè)位、小數(shù)、換行符
//分別發(fā)送。 串口:(9600,N,8,1)
#include<at89x51.h>
#define uchar unsigned char
#define uint unsigned int
#define DQ P2_0 //定義P0.0口為單總線(xiàn)數(shù)據(jù)口
uchar code st[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};//小數(shù)部分轉(zhuǎn)換
bit stop=1;
uchar pe=0; //發(fā)送指針
uchar t=0; //延時(shí)計(jì)數(shù)
uchar rad; //溫度數(shù)值
uchar disply[]={'0','0','0','.','0','\n'};//溫度極性,十位,個(gè)位,小數(shù)
void temp(uchar aa);
void rest(void);
void write(uchar da);
void read(void);
void hand(void);
void disp(void);
void timer(void);
void temp(uchar aa)
{
while(--aa); //每執(zhí)行一次2uS
}
void rest(void) //返回"1"時(shí)表示有設(shè)備應(yīng)答,復(fù)位成功
{
DQ=1;
DQ=0;
temp(225); //大于480us低電平產(chǎn)生復(fù)位
DQ=1;
temp(150);
}
void write(uchar da)
{
uchar wb=0x01,t;
for(t=0;t<8;t++)
{
if(da&wb)
{
DQ=0;
temp(1);
DQ=1;
temp(17);
}
else
{
DQ=0;
temp(12);
DQ=1;
temp(6);
}
wb=wb<<1;
}
}
void read(void)
{
uchar sb=0x01,s,tes;
bit pdt;
rad=0;
for(s=0;s<8;s++)
{
DQ=0;
DQ=1;
temp(2);
pdt=DQ;
temp(18);
if(pdt)
{
rad=rad|sb;
}
sb=sb<<1;
tes=rad;
}
}
void hand(void)
{
uchar et,lcm,hcm;
uint cm;
rest();
write(0xcc); //跳過(guò)
write(0x44); //啟動(dòng)轉(zhuǎn)換
timer(); //延時(shí)500ms
rest();
write(0xcc); //跳過(guò)
write(0xbe); //讀取命令
read();
lcm=rad;
read();
hcm=rad;
cm=hcm;
cm=cm<<8;
cm=cm|lcm;
if(cm&0xf000)
{
cm=~cm;
cm++;
disply[0]='-';
}
else
{
disply[0]=' ';
}
et=cm&0x000f;
disply[4]=st[et]|0x30; //截取后四位,查表轉(zhuǎn)換后,填入顯示緩沖區(qū)
et=cm>>4;
if(et>99)
{
disply[0]='1';
et=et-100;
}
disply[1]=(et/10)|0x30; //取溫度整數(shù)
disply[2]=(et%10)|0x30;
stop=0;
}
void pc(void) interrupt 4 //串口中斷
{
if(TI)
{
if(pe>5) //發(fā)送完成
{
pe=0;
stop=1;
}
else //繼續(xù)發(fā)送剩余部分
{
ACC=disply[pe];
SBUF=ACC;
pe++;
}
TI=0;
}
}
void disp(void)
{
stop=0;
ACC=disply[0];
SBUF=ACC;
pe++;
}
void tep(void) interrupt 1 //定時(shí)器0中斷
{
TH0=0x4c;
TL0=0x00;
t++;
}
void timer(void) //延時(shí)500ms
{
TR0=1;
while(t<50); //啟動(dòng)定時(shí)器,等待10次中斷
TR0=0;
t=0;
TH0=0x4c;
TL0=0x00;
}
void main(void)
{
TMOD=0x21; //定時(shí)器1模式2;定時(shí)器0模式1
// TH1=0xfd;
// TL1=0xfd; //波特率9600,11.0592MHz晶振
TH1=0xE6;
TL1=0xE6; //波特率1200,12MHz晶振
TH0=0x4c;
TL0=0x00; //定時(shí)器初值,50ms
SCON=0x50; //串口模式1,允許接受,單機(jī)通訊0x90
PCON=0;
IE=0x92; //開(kāi)所有中斷,開(kāi)串口中斷,開(kāi)T0中斷
TR1=1; //啟動(dòng)T1,波特率發(fā)生器
TR0=0; //暫停T0
disp();
while(1)
{
while(!stop);
hand();
disp();
}
}
復(fù)制代碼
作者:
18629701
時(shí)間:
2015-9-30 09:50
下載看看
作者:
zy6666
時(shí)間:
2015-11-29 23:01
正好需要呢,下來(lái)參考下,感謝樓主
作者:
zy6666
時(shí)間:
2015-11-30 23:20
樓主的程序,溫度轉(zhuǎn)換,為什么不乘以0.0625呢
作者:
蕃茄將
時(shí)間:
2016-6-24 11:32
PC端如何拿到10禁止數(shù)據(jù)可以詳細(xì)點(diǎn)嘛
作者:
fengluyao
時(shí)間:
2017-3-11 19:40
謝謝,很不錯(cuò),真好
作者:
luoxi123
時(shí)間:
2017-5-17 16:30
謝,很不錯(cuò),真好
作者:
wbacsn
時(shí)間:
2017-6-19 22:49
我用ds1820b 開(kāi)串口中斷后讀出溫度不準(zhǔn),應(yīng)該是串口中斷擾亂了ds1820b的時(shí)序,這個(gè)怎么解決
作者:
騾子的蹄
時(shí)間:
2017-12-15 00:26
要是雙機(jī)通信的話(huà),接收方的程序該怎么樣呢?
作者:
邵椋深
時(shí)間:
2017-12-29 11:43
你好,這個(gè)程序我為什么接收不到溫度呢,不準(zhǔn)確,一直是-0.01是怎么回事,能幫我看看嗎?1397195833,謝謝啦
作者:
持勤補(bǔ)拙
時(shí)間:
2017-12-31 14:38
感謝樓主,學(xué)習(xí)了
作者:
撼地神牛雨
時(shí)間:
2018-1-1 23:02
學(xué)習(xí)一下,參考
作者:
lvhm
時(shí)間:
2018-11-7 00:24
學(xué)習(xí)一下,參考
作者:
飛將軍
時(shí)間:
2018-11-7 12:37
我的學(xué)生做過(guò)溫濕度計(jì),不過(guò)不怎么精細(xì)
作者:
鈴戀仙
時(shí)間:
2018-11-8 16:36
新手前來(lái)學(xué)習(xí)
作者:
51單片機(jī)1234
時(shí)間:
2018-12-29 14:44
很不錯(cuò),謝謝樓主的分享了
作者:
hyyzzby
時(shí)間:
2019-5-6 18:11
thank you mvery much
作者:
tkcster
時(shí)間:
2019-10-5 18:04
下來(lái)看看,謝謝了
作者:
lubenweiniubi
時(shí)間:
2020-5-19 11:27
謝謝參考
作者:
nongxin117
時(shí)間:
2021-1-23 12:44
謝謝分享,共同進(jìn)步
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1