久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
實(shí)現(xiàn)穩(wěn)定的單片機(jī)ds1820一線多點(diǎn)測(cè)溫系統(tǒng),C51源碼,12864液晶顯示溫度值
[打印本頁(yè)]
作者:
cm7626
時(shí)間:
2017-4-7 22:59
標(biāo)題:
實(shí)現(xiàn)穩(wěn)定的單片機(jī)ds1820一線多點(diǎn)測(cè)溫系統(tǒng),C51源碼,12864液晶顯示溫度值
美國(guó)DALAS公司的溫度傳感器ds1820芯片具有高靈敏度、易用性、編程布線簡(jiǎn)單等優(yōu)點(diǎn),被應(yīng)用到工控行業(yè)的各種產(chǎn)品中。
本C51源碼能夠?qū)崿F(xiàn)穩(wěn)定的一線多點(diǎn)測(cè)溫系統(tǒng),液晶顯示溫度值。結(jié)合硬件的通信即可實(shí)現(xiàn)遠(yuǎn)程多點(diǎn)測(cè)溫。本c51的ds1820的c語(yǔ)言驅(qū)動(dòng)程序通過(guò)實(shí)踐使用,程序效率高、穩(wěn)定準(zhǔn)確,可直接使用。
且本原碼包括了FYD12864液晶顯示源碼,為FYD12864液晶初使用者提供了一個(gè)實(shí)例。
//DS1820 C51 子程序
//這里以11.0592M晶振為例,不同的晶體速度可能需要調(diào)整延時(shí)的時(shí)間
#include<reg52.h>
#include<lcd.h>
#include <absacc.h>
/////////////**********先為液晶初始化函數(shù)變量聲明**********///////////
void WRD(uchar DATA); //寫(xiě)lcd數(shù)據(jù)子函數(shù)聲明
void WRI(uchar com) ; //寫(xiě)lcd指令子函數(shù)聲明
void RD(uchar INDATA) ; //讀lcd數(shù)據(jù)子函數(shù)聲明
void CHEBF(); //讀lcdBF子函數(shù)聲明
void lcdinitialdat() ; //寫(xiě)lcd數(shù)據(jù)初始化聲明
void delaylong(int n) ; //延遲聲明
void delay(void);
void locatecursor(uchar H,uchar L); //定位游標(biāo),行H,列L (最大可到四行八列)
uchar bdata state;
sbit BF=state^7;
uchar idata DDRAM; //設(shè)定DDRAM地址第一行80~87,第二行90~97,
//第三行為88-8F,第四行為98-9F
uchar idata basfuncset ; /*0X30基本指令,8位數(shù)據(jù) 0X34 擴(kuò)充指令,8位數(shù)據(jù)*/
uchar idata shiftcursorr=0X14;//游標(biāo)移位:為14H時(shí),游標(biāo)右移
uchar idata shiftcursorl=0X10; //游標(biāo)移位:為10H時(shí),游標(biāo)左移
//18H時(shí)為顯示左移(在一三行之間或二四行之間),游標(biāo)跟移;
//1CH時(shí)為顯示右移,游標(biāo)跟移
uchar idata page; //頁(yè)號(hào)
////////////////////////////////////////////////////////////////////////////////////////////
sbit DQ =P1^1;//根據(jù)實(shí)際情況定義端口
typedef unsigned int uint;
void tmdelay(uchar useconds) ;
uchar tm_initial(void) ;
void read_char(void) ;
void write_char(char val) ;
void Read_Temperature(uchar no) ;
uchar temdate[2][2]=
{0,0, //NO1溫度值的低字節(jié)和高字節(jié)
0,0}; //NO2溫度值的低字節(jié)和高字節(jié)
uchar tempkey[2][8]=
{0X28,0X8F,0XF3,0X85,0,0,0,0X60, //NO1
0X28,0X52,0XA4,0X85,0,0,0,0X2A}; //NO2
uchar dy=0;
uchar value = 0;
uchar temint=0;
uint temdot=0;
//////////////////////////////////////////////main staet////////////////////////////////////////////////
main()
{ uchar k=0;
delaylong(500) ; /////此處必須延時(shí)300ms以上,500時(shí)為約大于1秒
//delaylong(350) ; //779ms
lcdinitialdat() ;//寫(xiě)lcd數(shù)據(jù)初始化
delay() ;
while(1)
{k=0;
while(k<2)
{temint=0;temdot=0;
Read_Temperature(k);
locatecursor(k+1,1); //從第2行首列顯示
WRD('T');WRD('E'); WRD('M');WRD(0X30+k);WRD(':');
temint=((temdate[k][1]<<4)|(temdate[k][0]>>4));
temdot=temdate[k][0]&0X0F;
temdot=temdot*625;
temint+=temdot/10000;
WRD(0X30+temint/100);WRD(0X30+temint%100/10);WRD(0X30+temint%10);
WRD('.');
WRD(0X30+(temdot%10000/1000));WRD(0X30+temdot%1000/100);
WRD(0X30+(temdot%100/10));WRD(0X30+temdot%10);
k++;
}
}
}//end main
///////////////////////////////////////////////end main/////////////////////////////////////////////
//延時(shí)
void tmdelay(uchar useconds)
{
while(useconds>0)useconds--;
}
/*tmdelay(1) ;//16.28us//增加一個(gè)就加6.5us
tmdelay(2) ;//22.78us
tmdelay(3) ;//29.30us
tmdelay(4) ;//35.81us
tmdelay(70) ;//465.49
tmdelay(74) ;//491.54
tmdelay(80) ;//530.60
tmdelay(115) ;//150us */
//復(fù)位
uchar tm_initial(void) ///對(duì)的
{
uchar answer=1;
NOANSWE:
DQ = 0; //pull DQ line low
tmdelay(74); // leave it low for 490us
DQ = 1; // allow line to return high
tmdelay(12); // wait >60us for answer pulse
if(DQ==1) {answer=1;goto NOANSWE;}
else if(DQ==0)answer=0;
//locatecursor(1,5);
//WRD(0X30+answer);
tmdelay(40) ;//>250us
DQ=1;
return(answer); //0表示有DS18B20應(yīng)答,1表示沒(méi)有應(yīng)答
}
//從 1-wire 總線上讀取一個(gè)字節(jié)
void read_char(void)
{
uchar i;
value=0;
for (i=8;i>0;i--)
{
value>>=1;
DQ = 1;
dy++;dy++;
DQ = 0; // pull DQ low
dy++;dy++;dy++;dy++;dy++; // wait 1-15us for data in bus
DQ=1; dy++; //pull high
//tmdelay(1);
if(DQ==1)
{value|=0x80;
}else{;}
tmdelay(18) ;//>120us
}
//return(value);
}
//向 1-WIRE 總線上寫(xiě)一個(gè)字節(jié)
void write_char(uchar val)
{
uchar i;
locatecursor(3,1);
for (i=8; i>0; i--) // writes uchar, one bit at a time
{
//DQ = 1;
//tmdelay(1);
DQ = 0; // pull DQ low to start timeslot
tmdelay(1);
if(val&0X01==1)
{DQ = 1;tmdelay(12); }
else {DQ=0;tmdelay(12); DQ=1;tmdelay(1); }
//tmdelay(10); // hold value for remainder of timeslot
val=val>>1;
}
DQ = 1;
tmdelay(1);
}
///////讀DS18B20的64bit的KEY
//讀取溫度
void Read_Temperature(uchar no)
{
uchar j=0;
value=0;
if(tm_initial()==1) goto noanswer;
write_char(0X55); // 匹配 ROM
//寫(xiě)暫存存儲(chǔ)器(4EH)、讀暫存存儲(chǔ)器(BEH)、復(fù)制暫存存儲(chǔ)器(48H)、溫度變換(44H)、重
//新調(diào)出EERAM(B8H)和讀電源供電方式(B4H)命令
while(j<8)
{
write_char(tempkey[no][j]);
j++;
}
write_char(0x44); // Start Conversion
delaylong(355) ; //>780ms// 延時(shí)一段時(shí)間,等待AD轉(zhuǎn)換結(jié)束,默認(rèn)12位則>750ms
if(tm_initial()==1) goto noanswer;
write_char(0X55); // 匹配 ROM
j=0;
while(j<8)
{
write_char(tempkey[no][j]);
j++;
}
write_char(0xBE); // Read Scratch Pad
read_char(); //first temperatue low
temdate[no][0]=value;
read_char(); //then temperatue high
temdate[no][1]=value;
//tm_initial();
//write_char(0xCC); //Skip ROM
//return temp.x/2;
noanswer:;
} //////////////////////////end Read_Temperature(void) ////////////////////
///////////////////////////
/***************************現(xiàn)為各液晶子函數(shù)體******************/////
void WRD(uchar DATA) //寫(xiě)lcd數(shù)據(jù)子函數(shù)
{
CHEBF();
ADWRD=DATA;
ADWRD=DATA;
}
void WRI(uchar com) //寫(xiě)lcd指令子函數(shù)
{
CHEBF();
ADWRI=com;
ADWRI=com;
}
void CHEBF() //讀lcdBF子函數(shù)
{
state=ADRI;
while(BF)
{
state=ADRI;
}
}
void lcdinitialdat() //寫(xiě)lcd數(shù)據(jù)初始化
{
WRI(0X30) ; //RE=0基本指令設(shè)定
delay();
WRI(0X30) ; //延遲39us
delay();
WRI(stadis2); //游標(biāo)開(kāi),反白允許
//WRI(0X0E); //游標(biāo)開(kāi),反白不允許
//WRI(stadis1); //游標(biāo)關(guān),反白不允許
delay(); //延遲39us
WRI(clrdis) ; //清除顯示
delay(); //延遲39us
WRI(inpointcursorup); //AC+1
delay(); //延遲39us
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png
(49.89 KB, 下載次數(shù): 156)
下載附件
2017-4-7 23:59 上傳
下載:
C51源碼能夠?qū)崿F(xiàn)穩(wěn)定的一線多點(diǎn)測(cè)溫系統(tǒng),液晶顯示溫度值.rar
(259.6 KB, 下載次數(shù): 57)
2017-4-7 22:59 上傳
點(diǎn)擊文件名下載附件
多點(diǎn)測(cè)量溫度
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日中文字幕在线
|
国产在线中文字幕
|
国产精品日韩一区二区
|
国产96色在线
|
精品久久久网站
|
精品国产视频
|
色婷婷国产精品
|
欧美舔穴
|
四虎影院在线免费观看
|
精品国产一区二区久久
|
欧美日韩一区二区在线
|
精品亚洲二区
|
黄色毛片免费
|
久久亚洲国产
|
日韩在线91
|
毛片一区二区三区
|
欧美福利专区
|
97av视频
|
一区二区三区免费观看
|
日韩一区二区免费视频
|
夜夜爆操
|
成人久久
|
欧美精品一区二区三区一线天视频
|
一区二区伦理电影
|
欧美日韩久久
|
日韩一区二区三区精品
|
一级日韩
|
欧美精品在欧美一区二区少妇
|
一区二区免费
|
欧美在线综合
|
久久久久久免费毛片精品
|
亚洲国产精品99久久久久久久久
|
日韩欧美国产成人一区二区
|
国产免费一区
|
欧美在线观看免费观看视频
|
午夜精品一区二区三区在线观看
|
欧美a∨
|
91视频电影
|
欧美日韩中文在线
|
日韩精品在线网站
|
久久这里有精品
|