//串行數(shù)碼管顯示 溫度值//芯片 ATMEGA16L //時(shí)鐘 4MHz 內(nèi)部 // DS18B20數(shù)據(jù)線是雙向總線,采用一個IO口 // DS18B20數(shù)據(jù)線,輸出不是通過IO口直接輸出0和1,而是將IO口的PORT置成0。 // 輸出方式,輸出0; // 輸
#include\"ds18b20.h\"uint8_ttemp_sign;voiddelay_ds(uint16_tzz){uint8_txx;uint16_tyy;for(xx=0;xx
本程序?yàn)椴捎胢ega8和18b20的溫度采集程序 選用mega8內(nèi)部8MRC震蕩,18b20數(shù)據(jù)線接pd6,數(shù)據(jù)線和vcc間接一4.7k上拉電阻 感謝dfgeoff嗜血蝸牛提供的資料*/ #include//和單片機(jī)類型相對應(yīng)的頭文件,選擇Atmega8做實(shí)驗(yàn)
//----------------------------------------------------------------------------// 復(fù)位 DS1820 //CPU將數(shù)據(jù)線拉低480us,然后釋放, //當(dāng)DS18B20收到信號后等待16~60us左右,后發(fā)出60~240us的存在低脈沖,
數(shù)據(jù)傳感器DS18B20編寫原因:.....暫略特性:1.單獨(dú)的單線接口,只需1個接口引腳即可通信;2.不需要外部元件;3.可用數(shù)據(jù)線供電;4.不需備份電源;5.測量范圍從-55°C ~ +125°C, 增量為0.0625°C;6.以12位數(shù)字值方式
溫度值精確到0.1度,lcd1602顯示仿真電路圖如下c程序如下:#include#define uchar unsigned char#define uint unsigned intsbit DQ=P3^7;//ds18b20與單片機(jī)連接口sbit RS=P3^0;sbit RW=P3^1;sbit EN=P3^2;unsigned c
// 串行數(shù)碼管顯示 溫度值// 芯片 ATMEGA16L // 時(shí)鐘 4MHz 內(nèi)部 // DS18B20數(shù)據(jù)線是雙向總線,采用一個IO口 // DS18B20數(shù)據(jù)線,輸出不是通過IO口直接輸出0和1,而是將IO口的PORT置成0。 // 輸出方式,輸出0; /
本程序?yàn)椴捎胢ega8 和18b20的溫度采集程序 選用mega8內(nèi)部8M RC震蕩,18b20 數(shù)據(jù)線接pd6,數(shù)據(jù)線和vcc間接一4.7k上拉電阻 感謝dfgeoff 嗜血蝸牛提供的資料*/ #include //和單片機(jī)類型相對應(yīng)的頭文件,選擇Atmega
綜合實(shí)驗(yàn):用18B20(數(shù)字溫度采集)74LS47(數(shù)碼管譯碼)74LS138(三八譯碼) DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換
[cpp] view plaincopy /*溫度傳感器18B20--串口顯示溫度*/ #include<reg52.h> #include <intrins.h> typedef unsigned char uint8; typedef unsigned int uint16; typedef
#include <reg51.h> #include<intrins.h>#define BUSY1 (DQ1==0) sbit DQ1 = P0^4; unsigned char idata TMP; unsigned char idata TMP_d; unsigned char f; void wr_ds18_1(char dat); uns
這是我在16F877,18F1320,18F1220上通過的18B20程序,18B20主要是延時(shí)問題,這個解決了,什么都可以通過。[原作者沒有提供所使用的編譯器,由于是C程序,所以大同小異,建議使用時(shí),確認(rèn)是否與你的編譯器兼容] C程序
18b20程序及應(yīng)用
#include <reg51.h> #include<intrins.h>#define BUSY1 (DQ1==0) sbit DQ1 = P0^4; unsigned char idata TMP; unsigned char idata TMP_d; unsigned char f; void wr_ds18_1(char dat); uns
這是我在16F877,18F1320,18F1220上通過的18B20程序,18B20主要是延時(shí)問題,這個解決了,什么都可以通過。[原作者沒有提供所使用的編譯器,由于是C程序,所以大同小異,建議使用時(shí),確認(rèn)是否與你的編譯器兼容]C程序#i