51單片機的ds18b20驅動(dòng)程序
/*******************************************************************************
* 標題: 18b20溫度芯片驅動(dòng)程序 *
* 文件: 18b20.h 18b20.c *
* 日期: 2010-3-11 *
* 版本: 1.12(試驗通過(guò)版)可用51hei單片機開(kāi)發(fā)板 *
* 郵箱: acsdf139@163.com qq:526083029 *
* 網(wǎng)站: 無(wú) *
********************************************************************************
* 描述: *
* 用法:首先在主程序內添加頭文件#include"18b20.c" *
* 在程序中使用ReadTemp();獲取溫度芯片內數據 *
* 使用 temp_to_str();函數將時(shí)間數據轉換液晶字符 *
* *
********************************************************************************
*【版權】自己參照網(wǎng)上,朋友,以及書(shū)本資料上寫(xiě)的,所以沒(méi)有版權 *
*【聲明】此程序,可用于學(xué)習,參考及實(shí)際設計中,歡迎轉載復制以及建議批評 *
*【技術(shù)支持】qq:526083029 小張 *
********************************************************************************/
#ifndef _18B20_H_
#define _18B20_H_
#define uchar unsigned char
#define rerom1820 0x33 // 讀ROM指令
#define matchrom1820 0x55 // 匹配ROM指令
#define skiprom1820 0xCC // 跳過(guò)ROM指令
#define searchrom1820 0xF0 // 搜索ROM指令
#define alarmsearch1820 0xEC // 報警搜索指令
#define wrscratchpad1820 0x4E // 寫(xiě)暫存寄存器指令
#define rescratchpad1820 0xBE // 讀暫存寄存器指令
#define copyscratchpad1820 0x48 // 復制暫存寄存器指令
#define convert1820 0x44 // 啟動(dòng)溫度轉換指令
#define recalle21820 0xB8 // 重新調出E2PROM的數據
/***********ds18b20延遲子函數*******/
extern void delaydq(uchar i);
/**********ds18b20初始化函數**********************/
extern void dqinit(void);
/***********ds18b20讀一個(gè)字節**************/
extern uchar re1820b(void);
/*************ds18b20寫(xiě)一個(gè)字節****************/
extern void wr1820b(uchar dat);
extern void ReadTemp(void);
extern void temp_to_str();
#endif
///////////////////////////////////////////////////////////c程序//////////////////////////////////////////////
#include
#include "18b20.h"
#include
//管腳定義
sbit DQ=P3^0;
uchar TempBuffer[8];
uchar temp_value,temp2,xs,fflag;
/*************************************
函數名:delaydq
函數功能:延時(shí)
參數:i(秒數)
返回:無(wú)
備注:無(wú)
*************************************/
void delaydq(uchar i)
{
while(i--);
}
/*************************************
函數名:dqinit
函數功能:初始化
參數:無(wú)
返回:無(wú)
備注:無(wú)
*************************************/
void dqinit(void)
{
uchar x=0;
DQ = 1; //DQ復位
delaydq(8); //稍做延時(shí)
DQ = 0; //單片機將DQ拉低
delaydq(80); //精確延時(shí) 大于 480us
DQ = 1; //拉高總線(xiàn)
delaydq(14);
x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗
delaydq(20);
關(guān)鍵詞:
51單片機ds18b20驅動(dòng)程
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論