



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
關于DS18B20的序列號讀取程序,很多人都是半遮半掩,我在網上搜了半天也沒有找到一個完好的程序,所以就用網上的程序修改了一個,本程序經本人實測絕對可用,各位網友只需修改一下端口就可以直接使用。//以下是DS1820序列號讀取程序
#include<reg52.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitDS=P3^3;//根據實實際情況設定DS18B20端口
ucharcodetable[]={"0123456789ABCDEF"};//用于1602顯示
ucharsn[8];//4個器件的序列號,先讀出單個序列號后填上才可以讀取溫度
/**************************************/
/************1602部分******************/
sbitrs=P1^0;
sbitrw=P1^1;
sbitlcden=P1^2;
voiddelay1602(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}voidwrite_com(ucharcom)//寫命令
{
rs=0;
lcden=0;
P2=com;
delay1602(5);
lcden=1;
delay1602(5);
lcden=0;
}voidwrite_date(uchardate)//寫數據
{
rs=1;
lcden=0;
P2=date;
delay1602(5);
lcden=1;
delay1602(5);
lcden=0;
}voidinit_lcd()//初始化
{
lcden=0;
rw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
/****************************************/
/*************DS18B20部分****************/
voiddelayb(uintcount)
//延時
{
uinti;
while(count)
{
i=200;
while(i>0)i--;
count--;
}
}
voiddsreset()
//DS18B20初始化
{
uinti;
DS=0;
i=103;
while(i>0)i--;
DS=1;
i=4;
while(i>0)i--;
}bitreadbit()
//讀一位
{
uinti;
bitdat;
DS=0;i++;
//小延時一下
DS=1;i++;i++;
dat=DS;
i=8;while(i>0)i--;
return(dat);
}ucharreadbyte()
//讀一個字節
{
uchari,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=readbit();
dat=(j<<7)|(dat>>1);
//讀出的數據最低位在最前面,這樣剛好一個字節在DAT里
}
return(dat);
//將一個字節數據返回
}voidwritebyte(uchardat)//寫一個字節到DS18B20里
{
uinti;
ucharj;
bittestb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
//寫1部分
{
DS=0;
i++;i++;
DS=1;
i=8;while(i>0)i--;
}
else
{
DS=0;
//寫0部分
i=8;while(i>0)i--;
DS=1;
i++;i++;
}
}
}voidrom()//讀取序列號
{
uchari;
dsreset();//復位
delayb(1);//延時
writebyte(0x33);//發送讀序列號子程序
for(i=0;i<8;i++)//因為是8個字節,所以要讀取8次
{
sn[i]=readbyte();//讀取序列號
}
}
/*****************************************/
/************主程序及顯示部分*************/
main()
{
uchari,c,l,h;
init_lcd();//初始化1602
while(1)
{
rom();
//調用讀序列號子程序
delayb(100);//如果是不斷地讀取的話可以不延時
for(i=0;i<8;i++)//因為是8個字節,所以要循環8次,每次顯示一個字節
{
l=(sn[i]&0xf0)>>4;
//獲取低四位
h=sn[i]&0x0f;
//獲取高四位
write_com(0x80+c);
//顯示位置
write_d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肇慶市實驗中學高中生物:第二章基因和染色體的關系(第2課時)教案
- 部編版一年級語文下冊期末綜合試卷(附答案)
- 新疆體育職業技術學院《科技論文寫作指導》2023-2024學年第二學期期末試卷
- 新疆醫科大學《微生物與生物化學基礎》2023-2024學年第二學期期末試卷
- 信陽藝術職業學院《內科學C》2023-2024學年第二學期期末試卷
- 2025-2030年中國PE行業發展預測分析及投資規劃研究報告
- 2025-2030工業鍋爐市場發展現狀調查及供需格局分析預測報告
- 甘肅省平涼市崆峒區2024屆中考一模數學試題含解析
- 廣東省高州市謝雞鎮達標名校2023-2024學年中考數學最后沖刺模擬試卷含解析
- 2025年企業負責人安全培訓考試試題及答案 完整
- 中職計算機專業《計算機網絡基礎》說課稿
- 【H公司員工培訓的現狀、問題和對策探析(含問卷)13000字(論文)】
- 債權轉讓項目合同范本
- 安徽省合肥市瑤海區部分學校2023-2024學年英語八下期末統考模擬試題含答案
- GB/T 4706.15-2024家用和類似用途電器的安全第15部分:皮膚及毛發護理器具的特殊要求
- 彩票店合伙協議書模板
- 水電站砂石加工系統封閉施工方案
- 2024輸送機械檢查與維護規范第1部分帶式輸送機
- SH-T+3098-2011石油化工塔器設計規范
- 2024年湖北省武漢市中考語文試卷真題(含答案)
- 個人代持協議書
評論
0/150
提交評論