php讀取ds18b20,DS18B20_單總線協議

.H文件

#ifndef _ONEWIRE_H

#define _ONEWIRE_H

#include "STC15F2K60S2.H"

#include

#define OW_SKIP_ROM 0xcc

#define DS18B20_CONVERT 0x44

#define DS18B20_READ 0xbe

//IC引腳定義

sbit DQ = P1^4;

//函數聲明

extern void Delay_OneWire(unsigned int t);

extern void Write_DS18B20(unsigned char dat);

extern bit Init_DS18B20(void);

extern unsigned char Read_DS18B20(void);

extern void Delay1ms();

extern unsigned char read_temp();

#endif

.C文件

#include "onewire.h"

//單總線延時函數

void Delay_OneWire(unsigned int t)

{

while(t--);

}

void Delay1ms()//@11.0592MHz

{

unsigned char i, j;

_nop_();

_nop_();

_nop_();

i = 11;

j = 190;

do

{

while (--j);

} while (--i);

}

//DS18B20芯片初始化

bit Init_DS18B20(void)

{

bit initflag = 0;

DQ = 1;

Delay_OneWire(12);

DQ = 0;

Delay_OneWire(80);

DQ = 1;

Delay_OneWire(10);

initflag = DQ;

Delay_OneWire(5);

return initflag;

}

//通過單總線向DS18B20寫一個字節

void Write_DS18B20(unsigned char dat)

{

unsigned char i;

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

{

DQ = 0;

DQ = dat&0x01;

Delay_OneWire(5);

DQ = 1;

dat >>= 1;

}

Delay_OneWire(5);

}

//從DS18B20讀取一個字節

unsigned char Read_DS18B20(void)

{

unsigned char i;

unsigned char dat;

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

{

DQ = 0;

dat >>= 1;

DQ = 1;

if(DQ)

{

dat |= 0x80;

}

Delay_OneWire(5);

}

return dat;

}

unsigned char read_temp()

{

unsigned char temp, high, low;

Init_DS18B20();

Write_DS18B20(0xcc);

Write_DS18B20(0x44);

Delay1ms();

Init_DS18B20();

Write_DS18B20(0xcc);

Write_DS18B20(0xbe);

low=Read_DS18B20();

high=Read_DS18B20();

temp=(high<<4)|(low>>4);

return temp;

}

本文分享 CSDN - KGback。

如有侵權,請聯系 support@oschina.cn 刪除。

本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533190.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533190.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533190.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle官方文檔查看方法,oracle官方文檔_查看初始化參數(舉例)

深藍的blog&#xff1a;http://blog.csdn.net/huangyanlong/article/details/46864217記錄了一下&#xff0c;使用oracle11g聯機文檔&#xff0c;查看初始化參數的步驟。如果想查看&#xff0c;可以修改的初始化參數的概念信息&#xff0c;可以點擊“ChangingParameter Values …

matlab usewhitebg,Matlab的:geo??show的網格和框架

對於問題1和問題2&#xff0c;原因是軸總是在圖的後面。因此&#xff0c;一種解決方案是在當前的軸上添加新軸並顯示網格&#xff0c;框和自定義刻度。對於問題3&#xff0c;我使用regexprep以取代S後綴負緯度(同上爲經度)。我唯一的問題是經度0將是0E&#xff0c;緯度0,0N。這…

oracle p l,使用P.A.L制作便攜軟件 (一) 基本原理 | 么么噠擁有者

因愛好自學所得&#xff0c;并非專業&#xff0c;此處只是拋磚引玉&#xff0c;歡迎相互交流、學習、提高&#xff0c;辛苦碼字不易&#xff0c;如轉載望保留鏈接出處。簡單介紹&#xff1a;P.A.L是PortableApps.com Launcher的簡稱&#xff0c;它是PortableApps.com開發的便攜…

oracle form執行后左上角沒出現oracle標記,oracle form學習筆記

新增form步驟打開模板TEMPLATE&#xff0c;將其改成自己所要的名稱&#xff0c;刪除Data Blacks中的BLOCKNAME,DETAILBLOCK,刪除Canvases中的BLOCKNAME,刪除Windows中的BLOCKNAME,新增自己的Windows&#xff0c;Canvases&#xff0c;DateBlacks&#xff0c;在form級別的PRE-FOR…

linux 建oracle分區表,Oracle 10g 11g分區表創建舉例

1.3. 創建其他類型分區表1.3.1. 用多列分區鍵創建范圍分區表SQL> create table aning_mutilcol_range2 (aning_id number,3 aning_name varchar2(100),4 aning_year number,5 aning_month number,6 aning_day number,7 aning_amount number8 )9 partition by range (aning_y…

php carbon 連續日期,日期及時間處理包 Carbon 在 Laravel 中的簡單使用

在編寫 PHP 應用時經常需要處理日期和時間&#xff0c;這篇文章帶你了解一下 Carbon – 繼承自 PHP DateTime 類的 API 擴展&#xff0c;它使得處理日期和時間更加簡單。Laravel 中默認使用的時間處理類就是 Carbon。namespace Carbon;class Carbon extends \DateTime{// code …

chmod g s oracle,chmod

chmod(1)名稱chmod - 更改文件的權限模式用法概要chmod [-fR] absolute-mode file...chmod [-fR] symbolic-mode-list file...chmod [-fR] acl_operation file...chmod [-fR] [- named_attribute]...attribute_specification_list file...描述chmod 實用程序可更改或分配文件的…

linux lzo 壓縮文件,Linux常用壓縮和解壓命令

.tar 解包 tar xvf filename.tar.tar 打包 tar cvf filename.tar dirname.gz 解壓1 gunzip filename.gz.gz 解壓2 gzip -d filename.gz.gz 壓縮 gzip filename.tar.gz 和 .tgz 解壓 tar zxvf filename.tar.gz.tar.gz 和 .tgz 壓縮 tar zcvf filename.tar.gz dirname.bz2 解壓1 …

linux進程cpu時間片,能講一下在Linux系統中時間片是怎么分配的還有優先級的具體算法是...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓圖 1 RT-Linux結構RT -Linux的關鍵技術是通過軟件來模擬硬件的中斷控制器。當Linux系統要封鎖CPU的中斷時時&#xff0c;RT-Linux中的實時子系統會截取到這個請求&#xff0c;把它記錄下來&#xff0c;而實際上并不真正封鎖硬件中斷…

linux中進行遠程服務器連機可以采用telnet,端口號為,使用telnet測試指定端口的連通性...

原標題&#xff1a;使用telnet測試指定端口的連通性telnet 是一個閹割版的 ssh &#xff0c;它數據不加密&#xff0c;數據容易被盜竊&#xff0c;也容易受中間人攻擊&#xff0c;所以默認情況下 telnet 端口是必須要被關閉的。telnet為用戶提供了在本地計算機上完成遠程主機工…

linux xd命令,看Linux文件的內容:用cat,less,more,head,tail,nl,od,xxd,gv,xdvi命令

使用命令在Linux系統中查看文件的內容是Linux管理員的基本技能之一&#xff0c;在Linux中&#xff0c;有許多應用程序以不同的方式顯示文件內容。您可以使用cat、less、more、head、tail、nl、od、xxd、gv、xdvi命令來查看文本文件或任何其他文件。為了對此進行測試&#xff0c…

linux遠程拷貝免手動輸入密碼,scp遠程拷貝避免輸入密碼

使用scp遠程拷貝文件到指定服務器上&#xff0c;在客戶端生成密鑰放在需要驗證的服務器上&#xff0c;這樣再次連接后直接登陸&#xff0c;避免輸入密碼。設定場景我們需要將tomcat服務器(client1)192.168.30.20 上的catalina.out日志文件&#xff0c;每天使用指定用戶拷貝到日…

玩轉linux文件描述符和重定向,玩轉Linux文件描述符和重定向

本文介紹linux中文件描述符與重定向的相關知識&#xff0c;文件描述符是與文件輸入、輸出相關聯的整數&#xff0c;它們用來跟蹤已打開的文件。有需要的朋友參考下。原文出處&#xff1a;linux下的文件描述符是與文件輸入、輸出相關聯的整數。它們用來跟蹤已打開的文件。最常見…

linux哪個指令可以設定使用者的密碼,linux期末考試練習題 2

一、單項選擇題1、下面不是對Linux操作系統特點描述的是()A、良好的可移植性B、單用戶C、多用戶D、設備獨立性2、查看創建目錄命令mkdir的幫助文檔可以使用()A、mkdir -hB、man mkdirC、help mkdirD、info mkdir3、用標準的輸出重定向(>)像”>file01”能使文件file01的數…

linux腳本格式模板,Linux Shell 常見的命令行格式簡明總結

#在后臺執行 cmd 指令cmd &#命令序列. 在同一行執行多個命令cmd1 ; cmd2#在當前 shell 中以一組的形式執行多個命令{ cmd1 ; cmd2 ; }#在子 shell 中以一組的形式執行多個命令(cmd1 ; cmd2)#管道. 以 cmd1 的執行輸出作為 cmd2 的輸入cmd1 | cmd2#命令替換. 以 cmd2 的執行…

linux怎么用命令打開wine,Linux系統運維:10分鐘教你如何使用Wine在Linux下玩魔獸世界...

本文主要向大家介紹了Linux系統運維的如何使用Wine在Linux下玩魔獸世界&#xff0c;通過具體的步驟向大家展現&#xff0c;希望對大家學習Linux系統運維有所幫助。目標&#xff1a;在 Linux 中運行魔獸世界發行版&#xff1a;適用于幾乎所有的 Linux 發行版。要求&#xff1a;具…

linux中如何查看某個端口是否被占用,LINUX中如何查看某個端口是否被占用

之前查詢端口是否被占用一直搞不明白&#xff0c;問了好多人&#xff0c;終于搞懂了&#xff0c;現在總結下&#xff1a;1.netstat -anp |grep 端口號如下&#xff0c;我以3306為例&#xff0c;netstat -anp |grep 3306(此處備注下&#xff0c;我是以普通用戶操作&#…

linux實現自己的write函數,Linux 內核源碼閱讀 - write 系統調用的實現

最近在看write系統調用的實現&#xff0c;雖然還有一下細節不是很清楚&#xff0c;但是大致的實現機理還是有一定的理解了。總結如下&#xff1a;這里假設最普通的情況&#xff0c;不考慮Direct IO 的情況。從全家的高度看&#xff0c;要往一個文件中寫入內容&#xff0c;需要一…

linux7.0使用教程,CentOS7.0使用手冊精編.pdf

CentOS7.0 手冊第一部分&#xff1a;顯卡驅動安裝篇 (針對單顯卡而言)或許CentOS7.0 版本是遇到的裝顯卡驅動最煩的一個&#xff0c;相比Ubuntu 、CentOS7.0 之前版本(如&#xff1a;CentOS6.5、CentOS6.4 )而言&#xff0c;操作步驟如下&#xff1a;由于筆者我的顯卡是華碩圣騎…

linux中s權限大小寫的區別,Linux中的權限

1.文件與目錄權限1)UID與GIDUIDUID是一個數值&#xff0c;是Linux系統中唯一的用戶標識&#xff0c;用于區別不同的用戶。在系統內部管理進程和文件保護時使用UID字段。在Linux系統中&#xff0c;注冊名和UID都可以用于標識用戶&#xff0c;只不過對于系統來說UID更為重要&…