久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
單片機DS18B20溫度傳感器程序代碼
[打印本頁]
作者:
張楊歡歡
時間:
2015-11-25 16:14
標(biāo)題:
單片機DS18B20溫度傳感器程序代碼
單片機DS18B20溫度傳感器
////////////////////////////////////////////////////////////////////////////
// 給力者單片機開發(fā)學(xué)習(xí)系統(tǒng),開發(fā)學(xué)習(xí)都給力! //
////////////////////////////////////////////////////////////////////////////
// 學(xué)習(xí)51單片機,其實可以很簡單 //
////////////////////////////////////////////////////////////////////////////
// 寧波芯動電子有限公司 //
////////////////////////////////////////////////////////////////////////////
#include <AT89X52.h> //調(diào)用51單片機的頭文件
#include <Intrins.h>
//---------------------------------------
//1602液晶相關(guān)I/O設(shè)置
sbit E=P2^3; //1602液晶的E腳接在P2.3口上
sbit RW=P2^4; //1602液晶的RW腳接在P2.4口上
sbit RS=P2^5; //1602液晶的RS腳接在P2.5口上
//---------------------------------------
sbit ds18b20=P3^7;
//---------------------------------------
//1602液晶寄存器設(shè)置
unsigned char DISbuf; //設(shè)置8位的unsigend char型寄存器用來暫存1602要顯示的內(nèi)容
//---------------------------------------
unsigned char temp1;
unsigned char temp2;
unsigned char temp1buf1;
unsigned char temp1buf2;
bit tc;
bit no;
unsigned char code tablexiao[16]={0,0,1,2,2,3,4,4,5,6,6,7,8,8,9,9};
//---------------------------------------
//名稱:延時函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void Delay(unsigned int nTimeDelay)
{
unsigned int i;
while (nTimeDelay--)
for (i=0;i<125;i++)
{}
}
//---------------------------------------
//名稱:復(fù)位DS18B20函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void Reset()
{
unsigned int i;
ds18b20=0; //拉低DQ總線開始復(fù)位
i=206;
while(i>0)
i--; //保持DQ低大約900uS
ds18b20=1; //釋放DQ位
i=8;
while(i>0)
i--;
}
//---------------------------------------
//名稱:等待芯片應(yīng)答信號函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
bit WaitPresence()
{
unsigned char i;
bit k;
i=16;
while(i>0)
i--;
if(ds18b20==0)
k=1;
else
k=0;
i=72;
while(i>0)
i--;
return k;
}
//---------------------------------------
//名稱:讀一位數(shù)據(jù)函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
bit ReadBit()
{
unsigned int i;
bit dat;
ds18b20=0;
i++;
ds18b20=1;
i+=2;
dat=ds18b20;
i=16;
while(i>0)
i--;
return dat;
}
//---------------------------------------
//名稱:讀一字節(jié)函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
unsigned char ReadByte()
{
unsigned char i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=ReadBit();
dat=(j<<7) | (dat>>1);
}
return dat;
}
//---------------------------------------
//名稱:寫一字節(jié)函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void WriteByte(unsigned char dat)
{
unsigned int i;
unsigned char j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat & 0x01;
dat=dat>>1;
if(testb)
{
ds18b20=0;
i+=2;
ds18b20=1;
i=8;
while(i>0)
i--;
}
else
{
ds18b20=0;
i=8;
while(i>0)
i--;
ds18b20=1;
i+=2;
}
}
}
//---------------------------------------
//名稱:DS18B20溫度轉(zhuǎn)換函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
bit Convert()
{
Reset();
if(WaitPresence()==1)
{
Delay(1);
WriteByte(0xcc);//skip rom
WriteByte(0x44);//convert
return 1;
}
else
{
return 0;
}
}
//---------------------------------------
//名稱:轉(zhuǎn)換結(jié)束處理函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
bit ReadFlash()
{
unsigned char nLsb,nMsb;
Reset();
if(WaitPresence()==1)
{
Delay(1);
WriteByte(0xcc);//skip rom
WriteByte(0xbe);//convert
nLsb=ReadByte();//LSB
nMsb=ReadByte();//MSB
if(no==1) return 1;
temp2=nLsb&0x0f;
temp1=(nLsb>>4)|(nMsb<<4);
return 1;
}
else
{
return 0;
}
}
//---------------------------------------
//名稱:1602液晶忙檢測函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_busy(void)
{
P0_7=1; //將P0.7置1,為讀狀態(tài)做準(zhǔn)備
RS=0; //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
RW=1; //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
E=1; //RS=0、RW=1、E=1時,忙信號輸出到DB7,由P0.7讀入
while(P0_7==1); //由P0.7讀入1,表示1602液晶忙,需要等待
E=0; //讀完以后,恢復(fù)E的電平
}
//---------------------------------------
//名稱:1600寫命令函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_Write_com(unsigned char combuf)
{
RS=0; //選擇指令寄存器
RW=0; //選擇寫狀態(tài)
P0=combuf; //將命令字通過P0口送至DB
E=1; //E高電平將命令字寫入1602液晶
E=0; //寫完以后,恢復(fù)E的電平
}
//---------------------------------------
//名稱:1602寫命令函數(shù)(帶忙檢測)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_Write_com_busy(unsigned char combuf)
{
LCD1602_busy(); //調(diào)用忙檢測函數(shù)
LCD1602_Write_com(combuf); //調(diào)用忙檢測函數(shù)
}
//---------------------------------------
//名稱:1602寫數(shù)據(jù)函數(shù)(帶忙檢測)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_Write_data_busy(unsigned char databuf)
{
LCD1602_busy(); //調(diào)用忙檢測函數(shù)
RS=1; //選擇數(shù)據(jù)寄存器
RW=0; //選擇寫狀態(tài)
P0=databuf; //將命令字通過P0口送至DB
E=1; //E高電平將命令字寫入1602液晶
E=0; //寫完以后,恢復(fù)E的電平
}
//---------------------------------------
//名稱:1602液晶顯示地址寫函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_Write_address(unsigned char x,unsigned char y)
{
x&=0x0f; //列地址限制在0-15間
y&=0x01; //行地址限制在0-1間
if(y==0) //如果是第一行
LCD1602_Write_com_busy(x|0x80); //將列地址寫入
else //如果是第二行
LCD1602_Write_com_busy((x+0x40)|0x80); //將列地址寫入
}
//---------------------------------------
//名稱:1602液晶初始化函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_init(void)
{
Delay(150); //調(diào)用延時函數(shù)
LCD1602_Write_com(0x38); //8位數(shù)據(jù)總線,兩行顯示模式,5*7點陣顯示
Delay(50); //調(diào)用延時函數(shù)
LCD1602_Write_com(0x38); //8位數(shù)據(jù)總線,兩行顯示模式,5*7點陣顯示
Delay(50); //調(diào)用延時函數(shù)
LCD1602_Write_com(0x38); //8位數(shù)據(jù)總線,兩行顯示模式,5*7點陣顯示
LCD1602_Write_com_busy(0x38); //8位數(shù)據(jù)總線,兩行顯示模式,5*7點陣顯示
LCD1602_Write_com_busy(0x08); //顯示功能關(guān),無光標(biāo)
LCD1602_Write_com_busy(0x01); //清屏
LCD1602_Write_com_busy(0x06); //寫入新的數(shù)據(jù)后,光標(biāo)右移,顯示屏不移動
LCD1602_Write_com_busy(0x0C); //顯示功能開,無光標(biāo)
}
//---------------------------------------
//名稱:1602液晶指定地址顯示函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void LCD1602_Disp(unsigned char x,unsigned char y,unsigned char buf)
{
LCD1602_Write_address(x,y); //先將地址信息寫入
LCD1602_Write_data_busy(buf); //再寫入要顯示的數(shù)據(jù)
}
//---------------------------------------
//名稱: 主函數(shù)
//適用:給力者GL9單片機開發(fā)學(xué)習(xí)系統(tǒng)
//公司:寧波芯動電子有限公司
//日期:20120916
//---------------------------------------
void main(void) //主函數(shù),單片機開機后就是從這個函數(shù)開始運行
{
unsigned char buf;
LCD1602_init(); //調(diào)用1602液晶初始化函數(shù)
while(1) //死循環(huán),單片機初始化后,將一直運行這個死循環(huán)
{
tc=Convert(); //啟動轉(zhuǎn)換
if(tc==1) //轉(zhuǎn)換結(jié)束
{
ReadFlash(); //讀取溫度
if(temp1>80) temp1=0;
if(temp2>15) temp2=0;
buf=temp1/10;
buf+=0x30;
LCD1602_Disp(0,0,buf); //溫度整數(shù)部分十位
buf=temp1%10;
buf+=0x30;
LCD1602_Disp(1,0,buf); //溫度整數(shù)部分個位
LCD1602_Disp(2,0,0x2e); //.
buf=tablexiao[temp2&0x0f];
buf+=0x30;
LCD1602_Disp(3,0,buf); //溫度小數(shù)部分
LCD1602_Disp(4,0,0xdf); //.
LCD1602_Disp(5,0,0x43); //C
}
}
}
復(fù)制代碼
DS18B20溫度傳感器.rar
2015-11-25 16:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
22.59 KB, 下載次數(shù): 13, 下載積分: 黑幣 -5
DS18B20溫度傳感器
作者:
hoanghajery
時間:
2017-5-1 16:21
please give me schematic diagram
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91免费在线看
|
伊人精品久久久久77777
|
欧美日在线
|
成人影院一区二区三区
|
成年人在线
|
久久一区二区三区四区
|
亚洲精选久久
|
国产伦精品一区二区三区在线
|
国产在线视频一区二区董小宛性色
|
国产精品18hdxxxⅹ在线
|
美国一级片在线观看
|
人人操日日干
|
99pao成人国产永久免费视频
|
视频一区二区在线观看
|
91电影在线播放
|
国产精品国产三级国产aⅴ无密码
|
伊色综合久久之综合久久
|
欧美一区二区
|
国产免费一区二区三区
|
免费人成激情视频在线观看冫
|
日韩一区av
|
欧美精品成人
|
久久青青
|
免费福利视频一区二区三区
|
日本成人综合
|
999久久久
|
黄色在线
|
91精品国产综合久久久久久丝袜
|
日韩精品在线看
|
欧美午夜视频
|
91久久精品视频
|
国产成人一区二区三区精
|
国产中文原创
|
国产日韩一区二区三免费高清
|
在线观看第一区
|
偷偷操视频
|
欧美a在线看
|
欧美影院久久
|
www.4567
|
亚洲精品久久久久久久久久久久久
|
国产精品欧美一区二区三区
|