資源簡介
MSP430程序,全部模塊,史上最全MSP430程序,全部模塊,

代碼片段和文件信息
/*********************************************************
????名稱??:??18b20數字溫度計
制作人:??陳文東
制作日期:?2009.06.16
**********************************************************/
#define?uchar?unsigned?char
#define?uint?unsigned?int
#include?“intrins.h“?????//_nop_();延時函數用
sbit??DQ=P3^4;????????//溫度輸入口
ow_reset(void);//18B20復位
void?write_byte(uchar?val);//寫命令
uchar?read_byte(void);//讀數據
//
uchar?code?ditab[16]={0x000x010x010x020x03
0x030x040x040x050x060x060x070x080x080x090x09};
/***************延時***********************/
void?delay1111(uint?t)
{
for(;t>0;t--);
}
/***********18B20復位函數**********/
ow_reset(void)
{
char?presence=‘1‘;
while(presence)
{
while(presence)
??{
?DQ=1;_nop_();_nop_();
?DQ=0;????//
?delay1111(50);?//?550us
?DQ=1;????//?
?delay1111(6);??//?66us
?presence=DQ;?//?presence=“0繼續下一步“
???}
delay1111(45);????//延時500us
presence?=?~DQ;
}
DQ=1;
}?
//
//
/**********18B20寫命令函數*********/
//向?1-WIRE?總線上寫一個字節
void?write_byte(uchar?val)
{
uchar?i;
for?(i=8;?i>0;?i--)?//
{
DQ=1;_nop_();_nop_();?
DQ?=?0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us
DQ?=?val&0x01;??????//最低位移出
delay1111(6);???????????//66us
val=val/2;??????????//右移一位
}
DQ?=?1;
delay1111(1);??
}
//
/*********18B20讀1個字節函數********/
//從總線上讀取一個字節
uchar?read_byte(void)
{
uchar?i;
uchar?value?=?0;
for?(i=8;i>0;i--)
{
DQ=1;_nop_();_nop_();
value>>=1;
DQ?=?0;?????????????//
_nop_();_nop_();_nop_();_nop_();???//4us
DQ?=?1;_nop_();_nop_();_nop_();_nop_();???//4us?
if(DQ)value|=0x80;
delay1111(6);???????????//66us
}
DQ=1;
return(value);
}
//
/***********讀出溫度函數**********
輸入:無
輸出:zs+xs,格式為123.4
??????即為浮點型數的溫度格式
===================================*/
//
float?read_temp()
{
float??zsxs;//存放整數和小數
uchar?temp_data[2];//讀出溫度暫存
//EA=0;//禁止中斷,防止讀錯
ow_reset();???????//總線復位
write_byte(0xCC);?//?發Skip?ROM命令
write_byte(0xBE);?//??發讀命令
temp_data[0]=read_byte();??//溫度低8位
temp_data[1]=read_byte();??//溫度高8位
ow_reset();
write_byte(0xCC);?//?Skip?ROM
write_byte(0x44);?//?發轉換命令
xs=ditab[temp_data[0]&0x0f];//小數位
xs=xs/10;
zs=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);//整數位
return?(zs+xs);
//EA=1;//開中斷
}
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2008-08-25?14:33??單通道單次
?????文件??????44231??2008-08-25?14:40??單通道單次\單通道單次.ewp
?????目錄??????????0??2008-08-25?14:34??單通道單次\settings
?????文件???????2433??2008-08-25?15:31??單通道單次\settings\單通道單次.cspy.bat
?????文件???????3102??2008-08-25?15:31??單通道單次\settings\單通道單次.wsdt
?????文件????????956??2008-08-25?15:31??單通道單次\settings\單通道單次.dni
?????文件???????4761??2008-08-25?15:31??單通道單次\settings\單通道單次.dbgdt
?????目錄??????????0??2008-08-25?14:34??單通道單次\Debug
?????目錄??????????0??2008-08-25?14:34??單通道單次\Debug\Exe
?????文件??????22248??2008-08-25?14:45??單通道單次\Debug\Exe\單通道單次.d43
?????目錄??????????0??2008-08-25?14:34??單通道單次\Debug\Obj
?????文件????????127??2008-08-25?15:30??單通道單次\Debug\Obj\單通道單次.pbd
?????文件??????34697??2008-08-25?14:45??單通道單次\Debug\Obj\main.r43
?????目錄??????????0??2008-08-25?14:34??單通道單次\Debug\List
?????文件????????194??2008-08-25?14:36??單通道單次\單通道單次.eww
?????文件???????2112??2008-08-25?15:31??單通道單次\單通道單次.dep
?????文件??????12490??2008-08-25?14:40??單通道單次\單通道單次.ewd
?????文件???????5982??2008-08-25?14:45??單通道單次\main.c
-----------?---------??----------?-----??----
???????????????133333????????????????????18
- 上一篇:斷網報警軟件
- 下一篇:Docker最新超詳細版教程通俗易懂-學習筆記.pdf
評論
共有 條評論