久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
18b20的初始化程序
[打印本頁]
作者:
2336460504
時間:
2016-4-18 01:14
標題:
18b20的初始化程序
#include "DSP28x_Project.h"
/************************************************************************
以下是DS18B20的操作程序
************************************************************************/
//設置全局變量,專門用于嚴格延時
#define nop() {asm(" NOP ");}
#define DATA_PORT GpioCtrlRegs.GPBDIR.all
#define DATAIN GpioDataRegs.GPBDAT.bit.GPIO34
#define PIN_HIGH() {EALLOW;DATA_PORT|=0x000F;EDIS;DATAIN=1;} //
#define PIN_LOW() {EALLOW;DATA_PORT|=0x000F;EDIS;DATAIN=0;}
#define PIN_LEAVE() {EALLOW;DATA_PORT&=~0x000F;EDIS;}//
/*****************************************************
函數功能:將DS18B20傳感器初始化,讀取應答信號
出口參數:flag
***************************************************/
unsigned char Init_DS18B20(unsigned char xx)
{
unsigned char flag; //儲存DS18B20是否存在的標志,flag=0,表示存在;flag=1,表示不存在
flag=xx;
PIN_HIGH(); //先將數據線拉高
DELAY_US(6); //略微延時約6微秒
PIN_LOW(); //再將數據線從高拉低,要求保持480~960us
DELAY_US(600); //略微延時約600微秒
//以向DS18B20發出一持續480~960us的低電平復位脈沖
PIN_HIGH(); //釋放數據線(將數據線拉高)
DELAY_US(1);
DELAY_US(30); //延時約30us(釋放總線后需等待15~60us讓DS18B20輸出存在脈沖)
PIN_LEAVE();
if(DATAIN==0)
flag=0; //讓單片機檢測是否輸出了存在脈沖(DQ=0表示存在)
else
flag=1;
DELAY_US(600); //延時足夠長時間,等待存在脈沖輸出完畢
return (flag); //返回檢測成功標志
}
/*************************************************/
/* 讀字節子函數 */
/*************************************************/
unsigned char ReadOneChar(void)
{
unsigned char i=0,dat=0;
for (i=8;i>0;i--)
{
dat>>=1;//讀到數據后右移一位
PIN_LOW();
DELAY_US(6);//6us
PIN_HIGH(); //數據線置高電平,釋放總線
DELAY_US(8);//延時8us
PIN_LEAVE();
if(DATAIN)
dat|=0x80;//取回最高位數據
else
dat|=0x00;
DELAY_US(30);//延時30us
PIN_HIGH(); //釋放總線,恢復高電平
}
return(dat);
}
/*************************************************/
/* 寫字節子函數 */
/*************************************************/
void WriteOneChar(unsigned char dat)
{
unsigned char i;
for(i=8;i>0;i--)
{
PIN_LOW();
DELAY_US(14);//14us延時
if(dat&0x01==1) //寫入一位數據
PIN_HIGH();
if(dat&0x01==0)
PIN_LOW();
DELAY_US(40); //延時40微秒,等待DS18B20采樣
PIN_HIGH(); //釋放總線
dat>>=1; //右移一位數據
DELAY_US(4);
} }
/*****************************************************
函數功能:做好讀溫度的準備
***************************************************/
unsigned char ReadyReadTemp(unsigned char xx)
{
unsigned char flag;
flag= Init_DS18B20(xx); //將DS18B20初始化
WriteOneChar(0xCC); // 跳過讀序號列號的操作
WriteOneChar(0x44); // 啟動溫度轉換
DELAY_US(20000); //轉換一次需要延時一段時間
flag=Init_DS18B20(flag); //將DS18B20初始化
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器,前兩個分別是溫度的低位和高位
return(flag);
}
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
av超碰在线
|
亚洲毛片在线
|
欧美bbb
|
日韩久久久久久
|
欧美区在线
|
美日韩在线
|
欧美bbb
|
日本不卡一区
|
99自拍视频
|
亚洲精品影院
|
中文字幕观看
|
国内自拍偷拍
|
91视频亚洲
|
日韩久久av
|
欧美777
|
成人永久免费视频
|
伊人色播
|
色婷婷国产精品综合在线观看
|
成人夜色
|
国产精品一区三区
|
国产精品成人一区二区
|
亚洲综合图片区
|
黄色免费片
|
五月天.com
|
亚洲激情中文字幕
|
国产精品国产成人国产三级
|
国产伦精品一区二区
|
中文字幕在线资源
|
亚洲激情一区
|
91久久综合亚洲鲁鲁五月天
|
日韩免费小视频
|
911精品国产一区二区在线
|
欧美黄色一级大片
|
久久久精品国产sm调教网站
|
国产一区在线播放
|
成人免费片
|
综合久久久久
|
午夜你懂的
|
欧美在线性爱视频
|
成年人午夜视频
|
可以看的毛片
|