日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]這是我在16F877,18F1320,18F1220上通過的18B20程序,18B20主要是延時問題,這個解決了,什么都可以通過。[原作者沒有提供所使用的編譯器,由于是C程序,所以大同小異,建議使用時,確認是否與你的編譯器兼容] C程序

這是我在16F877,18F1320,18F1220上通過的18B20程序,18B20主要是延時問題,這個解決了,什么都可以通過。

[原作者沒有提供所使用的編譯器,由于是C程序,所以大同小異,建議使用時,確認是否與你的編譯器兼容]

 

 

C程序

 

#include <pic18f1220.h>

#define uch unsigned char

#define unint unsigned int

#define DQ RB3 //定義18B20數據端口

#define DQ_DIR TRISB3 //定義18B20D口方向寄存器

#define W1_INPUT 1

#define W1_OUTPUT 0

#define FALSE 0

#define TRUE !FALSE

#define DQ_HIGH() DQ_DIR = W1_INPUT

#define DQ_LOW() DQ = 0; DQ_DIR = W1_OUTPUT

void delay(unint x)

{

unint d;

d=x;

while(--d)

{;}

}

bit reset(void) //初始化18B20

{

static bit presence; //定義一個應答信號

DQ_LOW();

delay(70); //置總線為低電平并保持至少480us

DQ_HIGH(); //等電阻拉高總線并保持15-60us

delay(5);

presence=DQ; //接受應答信號

delay(20); //延時60-240us

return(presence); //返回應答信號

}

//*************** 讀一位函數******************//

bit read_bit(void)

{

static bit i;

DQ_LOW();

DQ_LOW();

DQ_HIGH();

asm("nop");

asm("nop");

asm("nop");

i=DQ;

delay(3);

return(i);

}

//*********************寫一位函數****************//

void write_bit(uch bitval)

{

DQ_LOW();

delay(1);

if (bitval==1)

{

DQ_HIGH();

}

delay(3);

DQ_HIGH();

}

//************** 從18B20中讀一個字節(jié)**************//

uch read_byte(void)

{

uch i;

uch j;

uch value=0;

for (i=0;i<8;i++)

{

j=read_bit(); //調讀位函數

if (j) //如果是 1 置1

{

value|=(0x01<<i); //先讀低位,再讀高位

asm("nop");

asm("nop");

asm("nop");

}

} //否則置 0

return(value);

}

//*********************向18B20中 寫一個字節(jié)**************//

void write_byte(uch val)

{

uch i;

uch temp;

for (i=0;i<8;i++)

{

temp=val>>i;

temp&=0x01;

write_bit(temp); //調寫位函數

}

asm("nop");

asm("nop");

asm("nop");

}

main()

{

uch teml,temh;

GIE=0;

OSCCON=0X6E; //這是18F1320的頻率選擇寄存器

ADCON1=0X7F;

do{

;

}while (reset()) ; //復位等待從機應答

write_byte(0XCC); //忽略ROM匹配

write_byte(0X44); //發(fā)送溫度轉化命令

delay(25000); //延時100-300us

do

{

;

}while( reset()); //再次復位,等待從機應答

write_byte(0XCC); //忽略ROM匹配

write_byte(0XBE); //發(fā)送讀溫度命令

teml =read_byte(); //讀出溫度低8

temh=read_byte(); //讀出溫度高8位

DQ_HIGH(); //釋放總線

}

 
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

DashCam項目使用“AI Thinker ESP32-CAM”模塊,該模塊具有200萬像素攝像頭(OV2640), 10個I/O引腳,片上LED,片上閃光燈和一個MicroSD插槽來存儲視頻。它的微型攝像頭和240M...

關鍵字: ESP32-Cam Wi-Fi Arduino 源代碼

最新消息,電信巨頭諾基亞目前正在對一起涉嫌源代碼被盜的網絡攻擊事件進行調查。早前,一位名為“IntelBroker”的黑客在BreachForums上發(fā)布的一篇帖子中聲稱竊取了該公司的源代碼。

關鍵字: 諾基亞 源代碼 黑客 IntelBroker 網絡攻擊

C語言是一種廣泛應用于編程領域的高級編程語言,它首次出現于1972年,并由Dennis Ritchie發(fā)明。C語言之所以成為一門經典的編程語言,是因為其具有簡單易學、語法規(guī)則清晰、面向過程等特點,非常適合初學者入門學習編...

關鍵字: C語言 源代碼

以科技創(chuàng)新力量,重新定義產業(yè)辦公及產業(yè)洞察視角 成都2023年8月16日 /美通社/ -- 由仲量聯(lián)行(紐交所代碼:JLL)主辦的睿見論壇之"REDEFINE 煥新成都產鏈 · 重構城市價值&q...

關鍵字: 數據分析 樓宇 BSP DEFINE

那么用戶下載到的就是該系統(tǒng)的所有源代碼,并且可以隨意修改。這也是解釋型語言本身的特性,想要運行程序就必須有源代碼。

關鍵字: python 源代碼 C/C++程序

武漢2022年12月20日 /美通社/ -- 12月14日,"2022全國網民網絡安全感滿意度調查報告發(fā)布周"《網絡安全行業(yè)發(fā)展專題報告》發(fā)布會成功舉辦,面向全社會正式發(fā)布了報告,其中重點關...

關鍵字: 開源 數據庫 核心技術 源代碼

獨立的 IDE 插件使開發(fā)人員能夠檢測源代碼和開源依賴項中的安全漏洞

關鍵字: 新思科技 IDE 插件 源代碼

(全球TMT2021年12月7日訊)開放原子開源基金會(簡稱“開源基金會”)作為中國首個以開源為主題的基金會,是開源項目的孵化器、連接器和倍增器,致力于為全球開發(fā)者搭建可持續(xù)的開源合作平臺,OpenHarmony、op...

關鍵字: 開源 PEN 開發(fā)者 源代碼

3個SystemVerilog新特性!01`begin_keyword`end_keyword硬件描述語言中有很多特殊的編譯或者綜合等工具的預執(zhí)行指令,在某些場景下我們可以利用一下HDL之外的語法去指導工具,而不是信馬由...

關鍵字: SYSTEMVERILOG DEFINE PACKAGE 編譯

點擊上方「嵌入式云IOT技術圈」,選擇「置頂公眾號」第一時間查看嵌入式筆記!最近兩個月MBA美帝在職研的課程即將結束,經過個人的努力,目前兩門課:全球商務、定量決策均分績點如下,基本上逼近滿分(凡爾賽了,哈哈哈),光鮮亮...

關鍵字: 源代碼 學習筆記
關閉