單片機(jī)·DS18B20溫度傳感器
void DB18B20_reset(void)
{
bit flag = 1 ; //程序有改動(dòng)
while(flag)
{
DQ = 1 ;
nops() ;
DQ = 0 ;
delay(50) ;
DQ = 1 ;
delay(5) ;
flag = DQ ;
delay(20) ;
}
DQ = 1 ;
delay(20) ;
}
void write_byte(uint8 byte)
{
uint8 i ;
for(i=0; i<8; i++)
{
DQ = 1 ;
_nop_() ;
DQ = 0 ;
nops() ;
DQ = byte&0x01 ;
delay(6) ;
byte>>=1 ;
}
DQ = 1 ;
_nop_() ; //短暫延時(shí)應(yīng)該即可。
}
uint8 read_byte(void)
{
uint8 i, dat =0 ;
for(i=0; i<8; i++)
{
DQ = 1 ;
_nop_() ;
DQ = 0 ;
nops() ;
DQ = 1 ;
nops() ;
dat>>=1 ;
if(DQ)
dat |= 0x80 ;
delay(6) ;
}
DQ = 1 ;
_nop_() ;
return dat ;
}
void start_temp_sensor(void)
{
DB18B20_reset() ;
write_byte(0xcc) ;
write_byte(0x44) ;
}
int16 read_temp(void)
{
uint8 tempdata[2] ;
int16 temp ; //數(shù)據(jù)的符號(hào)位看輸出是否需要符號(hào)
DB18B20_reset() ;
write_byte(0xcc) ;
write_byte(0xBE) ;
tempdata[0] = read_byte() ; tempdata[1] = read_byte() ;
temp = tempdata[1] ;
temp<<=8 ;
temp |= tempdata[0] ; //轉(zhuǎn)換為十進(jìn)制的代碼 不理解,求大神幫助
temp>>=4 ;
return temp ;
}
void wait(void)
{
P0 = 0xFF;
do
{
RS = 0;
RW = 1;
EN = 0;
EN = 1;
}while (BUSY == 1);
EN = 0;
}
void w_dat(uint8 dat)
{
wait();
EN = 0;
P0 = dat;
RS = 1;
RW = 0;
EN = 1;
EN = 0;
}
void w_cmd(uint8 cmd)
{
wait();
EN = 0;
P0 = cmd;
RS = 0;
RW = 0;
EN = 1;
EN = 0;
}
void w_hexnum(uint16 dat)
{
w_dat(dat/10 + 0) ;
w_dat(dat + 0) ;
w_dat(0xDF) ;
w_dat(C) ;
}
void Init_LCD1602(void)
{
w_cmd(0x38); // 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口
w_cmd(0x0C); // 顯示器開、光標(biāo)開、光標(biāo)允許閃爍
w_cmd(0x06); // 文字不動(dòng),光標(biāo)自動(dòng)右移
w_cmd(0x01); // 清屏
}
void main(void)
{
int16 ans ;
Init_LCD1602() ;
while(1)
{
start_temp_sensor() ; //這里為什么需要延時(shí) ;
ans = read_temp() ;
w_cmd(0x80) ;
w_hexnum(ans) ;
}
關(guān)鍵詞:
單片機(jī)DS18B20溫度傳感
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論