unsp C編寫的DS18B20驅動

2022-12-20 12:36:02 字數 1669 閱讀 4496

[分享]u'nsp c編寫的ds18b20驅動

本人寫的乙個ds18b20的驅動程式,這是我寫的第乙個時序程式,厚臉皮地拿出來與大家「分享」,希望大家支援。不足之處還望大家不吝賜教。謝謝!

//工程名稱:ds18b20//功能描述:溫度感測器//涉及的庫:組成檔案:硬體連線:ioa15

s18b20的dq腳

eda-h段位;iob8-iob13:

//iob0-io7位選。個位、十位、小數

//標準化:2007.4.19//done by:doublears

#include ""

#define dq *p_ioa_data//定義a口味ds18b20的dq位//全域性變數定義

unsigned int temp;

int table[10]=;

unsigned int sone,tens,point;//溫度顯示函式宣告void showtemp();

//語法格式:void delay(int t)//實現功能:延時函式

//引數:延時時長,t*100微妙//返回值:無

void delay(int t)}

//語法格式:void showdelay()

//實現功能:延時顯示函式,啟動溫度轉換時用此延時函式,

//一延時,二在這段時間也顯示溫度。//引數:無//返回值:無

void showdelay()

//語法格式:void txreset(void)

//實現功能:產生復位脈衝初始化ds18b20//引數:無//返回值:無

void txreset(void)

//語法格式:void rxwait(void)//實現功能:等待應答脈衝//引數:無//返回值:無

void rxwait(void)

//語法格式:unsigned int rbbit(void)

//實現功能:讀取資料的一位,滿足讀時時隙要求//引數:無

//返回值:b:讀時隙後讀取資料的一位(0或1),0x000b

unsigned int rbbit(void)

//語法格式:unsigned int rbbyte(void)//實現功能:讀取數字的兩個位元組//引數:無

//返回值:從暫存器讀取16位溫度值

unsigned int rbbyte(void)

return (b);}

//語法格式:void wrbyte(unsigned int b)

//實現功能:寫資料的乙個位元組

//引數:ds18b20的一位元組操作命令//返回值:無

void wrbyte(unsigned int b)else}}

===//語法格式:void convert(void)//實現功能:啟動溫度轉換//引數:無//返回值:無

void convert(void)

//語法格式:void rdtemp(void)

//實現功能:讀取溫度值,將溫度值賦予temp//引數:無//返回值:無

void rdtemp(void)

//語法格式:void showtemp()

//實現功能:溫度顯示函式,通過三位led//引數:無//返回值:無

===void showtemp()

//語法格式:void main()//實現功能:主函式//引數:無//返回值:無

void main()}

菜鳥的ds18b20總結

之前玩了一下ds18b20,但一直沒有總結,忽然有種總結的衝動,所以就寫了這些。以下的這些只是我個人對部分文件的理解,水平不夠,難免會有誤,請各位指正,一 初始化,如圖一 資料線拉低至少480us後再將其拉高,大約等待15 60us,就會收到60 240us的低電平的存在脈衝,其後資料線會恢復被拉高...

我寫DS18B20總結

unsigned int n for n 0 n void chushihua dq 0 delay 600 送480us脈衝 根據時序 dq 1 delay 35 大約60us左右 這樣就完成了ds18b20的初始化工作。初始化之後要向資料埠dq寫資料,寫0或者是1 當主機匯流排從高電平拉到低電平...

基於DS18B20的溫控系統實習報告

河南農業大學 智慧型儀器設計實習 設計說明書 題目 基於ds18b20的溫控系統 學院理學院 專業 電子資訊科學與技術 班級07電科4班 學號0708101099 姓名徐亞利 指導教師 成績時間 2010 年 11 月 29 日至 2010 年 12 月 13 日 智慧型儀器設計實習 設計任務書 題...