1樓:匿名使用者
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit dq = p2^2; //資料口define inte***ce
sbit dula = p2^6; //數碼管段選
sbit wela = p2^7; //數碼管位選
uint temp; //溫度值 variable of temperature
//不帶小數點
unsigned char code table = ;
//帶小數點
unsigned char code table1 = ;
/*************精確延時函式*****************/
void delay(unsigned char i)
/******************************************
此延時函式針對的是12mhz的晶振
delay(0):延時518us 誤差:518-2*256=6
delay(1):延時7us (原帖寫"5us"是錯的)
delay(10):延時25us 誤差:25-20=5
delay(20):延時45us 誤差:45-40=5
delay(100):延時205us 誤差:205-200=5
delay(200):延時405us 誤差:405-400=5
*******************************************/
/*****************ds18b20******************/
void init_ds18b20(void) //ds18b20初始化send reset and initialization command
uchar read_one_byte() //讀取乙個位元組的資料read a byte date
//讀資料時,資料以位元組的最低有效位先從匯流排移出
delay(10); //此延時不能少,確保讀時序的長度60us。
}return (dat);
}void write_one_byte(uchar dat)
}uint get_tmp() //獲取溫度get the temperature
/****************數碼碼動態顯示函式**************/
void display(uint temp) //顯示程式
void main()}
2樓:匿名使用者
最好是對著18b20的時序圖看
3樓:匿名使用者
要根據你的藉口對網上的程式修改一下就ok了
4樓:匿名使用者
網上太多了,18b20的程式
我想用微控制器寫個ds18b20溫度感測器的程式但是讀
先解決一個18b20,不用系列號的。再解決一個18b20,使用系列號的。最後,再解決二個18b20,使用系列號的。現在,你弄的規模這麼大,難說在那一個步驟,有問題。 舉例說明 八位二進位制為一位元組,那最大為 1111 1111 255.先將這個數除100得到百位2,然後100取餘為55,將取餘後的...
微控制器程式錯誤,51微控制器c語言程式錯誤
後面兩個錯誤是沒有宣告函式,最簡單的方法就是把main函式調到程式的最後,你看看還有沒有錯誤,我們 hhh.c 113 error c211 call not to a function這個呼叫函式名不存在 hhh.c 114 error c211 call not to a function這個呼...
51微控制器c語言程式注釋標註,51微控制器C語言程式注釋標註
四喜丸子 按鍵掃瞄顯示程式,這有什麼難的?自己每一句照著分析分析不就行了。微控制器c語言程式設計,中間幾段程式注釋不會寫,一些步驟看不懂,望講解 20 考試翻版 微控制器的東西要看晶元的資料手冊,裡面有很多講解,其實微控制器裡特定的位址代表了微控制器特定的功能,你賦特定的值就會啟動或關閉功能,微控制...