資源簡介
能測接入多個超聲波,并且每個的測量精度達到1cm.還加上了距離過近語音播報信息!

代碼片段和文件信息
/*-----------------------------------------------
??名稱:18B20溫度傳感器
??網站:www.doflye.net
??編寫:shifang
??日期:2009.5
??修改:無
??內容:18B20單線溫度檢測的應用樣例程序
------------------------------------------------*/
#include“18b20.h“
/*------------------------------------------------
????????????????????18b20初始化
------------------------------------------------*/
/*------------------------------------------------
?uS延時函數,含有輸入參數?unsigned?char?t,無返回值
?unsigned?char?是定義無符號字符變量,其值的范圍是
?0~255?這里使用晶振12M,精確延時請使用匯編大致延時
?長度如下?T=tx2+5?uS?
------------------------------------------------*/
void?DelayUs2x(unsigned?int?t)
{???
?while(--t);
}
/*------------------------------------------------
?mS延時函數,含有輸入參數?unsigned?char?t,無返回值
?unsigned?char?是定義無符號字符變量,其值的范圍是
?0~255?這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void?DelayMs(unsigned?int?t)
{
?????
?while(t--)
?{
?????//大致延時1mS
?????DelayUs2x(245);
?DelayUs2x(245);
?}
}
bit?Init_DS18B20(void)
{
?bit?dat=0;
?DQ?=?1;????//DQ復位
?DelayUs2x(5);???//稍做延時
?DQ?=?0;?????????//單片機將DQ拉低
?DelayUs2x(200);?//精確延時?大于?480us?小于960us
?DelayUs2x(200);
?DQ?=?1;????????//拉高總線
?DelayUs2x(50);?//15~60us?后?接收60-240us的存在脈沖
?dat=DQ;????????//如果x=0則初始化成功?x=1則初始化失敗
?DelayUs2x(25);?//稍作延時返回
?return?dat;
}
/*------------------------------------------------
????????????????????讀取一個字節
------------------------------------------------*/
unsigned?char?ReadOneChar(void)
{
unsigned?char?i=0;
unsigned?char?dat?=?0;
for?(i=8;i>0;i--)
?{
??DQ?=?0;?//?給脈沖信號
??dat>>=1;
??DQ?=?1;?//?給脈沖信號
??if(DQ)
???dat|=0x80;
??DelayUs2x(25);
?}
?return(dat);
}
/*------------------------------------------------
????????????????????寫入一個字節
------------------------------------------------*/
void?WriteOneChar(unsigned?char?dat)
{
?unsigned?char?i=0;
?for?(i=8;?i>0;?i--)
?{
??DQ?=?0;
??DQ?=?dat&0x01;
??DelayUs2x(25);
??DQ?=?1;
??dat>>=1;
?}
DelayUs2x(25);
}
/*------------------------------------------------
????????????????????讀取溫度
------------------------------------------------*/
unsigned?int?ReadTemperature(void)
{
unsigned?char?a=0;
unsigned?int?b=0;
unsigned?int?t=0;
Init_DS18B20();
WriteOneChar(0xCC);?//?跳過讀序號列號的操作
WriteOneChar(0x44);?//?啟動溫度轉換
DelayMs(5);
Init_DS18B20();
WriteOneChar(0xCC);?//跳過讀序號列號的操作?
WriteOneChar(0xBE);?//讀取溫度寄存器等(共可讀9個寄存器)?前兩個就是溫度
a=ReadOneChar();???//低位
b=ReadOneChar();???//高位
b<<=8;
t=a+b;
return(t);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-19?11:47??程序2--最終版\
?????文件????????5289??2013-03-18?16:53??程序2--最終版\18b20.LST
?????文件????????5168??2013-03-18?16:53??程序2--最終版\18b20.OBJ
?????文件????????2749??2013-03-18?16:25??程序2--最終版\18b20.c
?????文件?????????658??2013-03-18?16:23??程序2--最終版\18b20.h
?????文件????????9315??2013-03-18?16:53??程序2--最終版\ISD4004.LST
?????文件????????8895??2013-03-18?16:53??程序2--最終版\ISD4004.OBJ
?????文件????????3444??2013-03-17?22:01??程序2--最終版\ISD4004.c
?????文件?????????162??2013-03-17?22:01??程序2--最終版\ISD4004.h
?????文件????????5814??2013-03-18?16:53??程序2--最終版\LCD1602.LST
?????文件????????6287??2013-03-18?16:53??程序2--最終版\LCD1602.OBJ
?????文件????????3147??2013-03-12?15:59??程序2--最終版\LCD1602.c
?????文件?????????345??2013-03-17?19:29??程序2--最終版\LCD1602.h
?????文件????????6376??2009-05-07?14:37??程序2--最終版\STARTUP.A51
?????文件???????14052??2013-03-18?14:29??程序2--最終版\STARTUP.LST
?????文件?????????749??2013-03-18?14:29??程序2--最終版\STARTUP.OBJ
?????文件???????13054??2013-03-18?16:53??程序2--最終版\main.LST
?????文件???????17663??2013-03-18?16:53??程序2--最終版\main.OBJ
?????文件????????5061??2013-03-18?17:00??程序2--最終版\main.c
?????文件???????34526??2013-03-18?16:53??程序2--最終版\超聲波
?????文件???????39269??2013-03-18?16:53??程序2--最終版\超聲波.M51
?????文件????????9253??2013-03-18?16:53??程序2--最終版\超聲波.hex
?????文件??????????88??2013-03-18?16:53??程序2--最終版\超聲波.lnp
?????文件?????????189??2013-03-19?11:47??程序2--最終版\超聲波.plg
?????文件???????69376??2013-03-19?11:47??程序2--最終版\超聲波.uvgui.Administrator
?????文件???????69376??2013-03-18?22:21??程序2--最終版\超聲波.uvgui_Administrator.bak
?????文件???????12110??2013-03-18?22:21??程序2--最終版\超聲波.uvopt
?????文件???????13854??2013-03-18?17:00??程序2--最終版\超聲波.uvproj
?????文件???????12104??2013-03-18?17:00??程序2--最終版\超聲波_uvopt.bak
?????文件???????14063??2013-03-17?23:01??程序2--最終版\超聲波_uvproj.bak
- 上一篇:80c51單片機4位數碼管計算器設計
- 下一篇:ISD1760 語音播報溫度
評論
共有 條評論