資源簡介
基于msp430f149的ds18b20顯示程序,在1602液晶上顯示5位溫度值,已經通過測試,之前試過的一些沒有用,后來在一本參考書上找到類似的修改測試成功。

代碼片段和文件信息
/*****************************************************************************/
/*基于MSP430F149的DS18B20溫度傳感器測溫程序 ?????*/
/*?修改人:One6 ?????*/
/*?修改時間:2013年8月10日15:28:03???????????????????????????????????*/
/*****************************************************************************/
#include?“DS18B20.h“???????????????????//?調用DS18B20的頭文件
uchar?dN[6];?//要顯示的6位溫度數字
//============================時鐘初始化=====================================//
void?Clock_Init()
{
????uchar?i;
????/*------選擇系統主時鐘為8MHz-------*/
????BCSCTL1?&=?~XT2OFF;?????????????????//打開XT2高頻晶體振蕩器
????do
????{
????????IFG1?&=?~OFIFG;?????????????????//清除晶振失敗標志
????????for?(i?=?0xFF;?i?>?0;?i--);?????//等待8MHz晶體起振
????}
????while?((IFG1?&?OFIFG));?????????????//晶振失效標志仍然存在?
????BCSCTL2?|=?SELM_2?+?SELS;???????????//MCLK和SMCLK選擇高頻晶振
????//計數時鐘選擇SMLK=8MHz,1/8分頻后為1MHz
????TACTL?|=?TASSEL_2?+?ID_3;
}
//============================看門狗初始化===================================//
void?WDT_Init()
{
???WDTCTL?=?WDTPW?+?WDTHOLD;???????//關閉看門狗
}
//=============================IO口初始化====================================//
void?Port_Init()
{
???/*下面六行程序關閉所有的IO口*/
????P1DIR?=?0XFF;P1OUT?=?0XFF;
????P2DIR?=?0XFF;P2OUT?=?0XFF;
????P3DIR?=?0XFF;P3OUT?=?0XFF;
????P4DIR?=?0XFF;P4OUT?=?0XFF;
????P5DIR?=?0XFF;P5OUT?=?0XFF;
????P6DIR?=?0XFF;P6OUT?=?0XFF;
}
//===========================================================================//
//????????????????????????????子函數部分?????????????????????????????????????//
//===========================================================================//
/*******************************************
函數名稱:DelayNus
功????能:實現N個微秒的延時
參????數:n--延時長度
返回值??:無
說明????:定時器A的計數時鐘是1MHz,CPU主頻8MHz
??????????所以通過定時器延時能夠得到極為精確的
??????????us級延時
********************************************/
void?DelayNus(uint?n)
{
????CCR0?=?n;
????TACTL?|=?MC_1;???????????//增計數到CCR0
????while(!(TACTL?&?BIT0));???//等待
????TACTL?&=?~MC_1;??????????//停止計數
????TACTL?&=?~BIT0;??????????//清除中斷標志
}
/*******************************************
函數名稱:Init_18B20
功????能:對DS18B20進行復位操作
參????數:無
返回值??:初始化狀態標志:1--失敗,0--成功
********************************************/
uchar?Init_18B20(void)
{
????uchar?Error;
????DQ_out;
????_DINT();
????DQ0;
????DelayNus(500);
????DQ1;
????DelayNus(55);
????DQ_in;
????_NOP();
????if(DQ_val)
????{
????????Error?=?1;??????????//初始化失敗
????}
????else
????{
????????Error?=?0;??????????//初始化成功
????}
????DQ_out;
????DQ1;
????_EINT();
????DelayNus(400);
????return?Error;
}
/*******************************************
函數名稱:Write_18B20
功????能:向DS18B20寫入一個字節的數據
參????數:wdata--寫入的數據
返回值??:無
********************************************/
void?Write_18B20(uchar?wdata)
{
????uchar?i;
????_DINT();
????for(i?=?0;?i?8;i++)
????{
????????DQ0;
????????DelayNus(6);????????????//延時6us
????????if(wdata?&?0X01)????DQ1;
????????else????????????????DQ0;
????????wdata?>>=?1;
????????DelayNu
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-08-10?16:16??ds18b20AND12864LCD?Display\
?????文件????????5114??2013-08-10?16:16??ds18b20AND12864LCD?Display\18b20.dep
?????文件???????20421??2013-08-10?10:49??ds18b20AND12864LCD?Display\18b20.ewd
?????文件???????52434??2013-08-10?16:16??ds18b20AND12864LCD?Display\18b20.ewp
?????文件?????????159??2013-08-10?10:49??ds18b20AND12864LCD?Display\18b20.eww
?????文件??????????25??2013-08-10?16:16??ds18b20AND12864LCD?Display\18b20CustomSfr.sfr
?????文件????????7039??2013-08-10?15:12??ds18b20AND12864LCD?Display\DFSR1602.h
?????文件????????1748??2013-08-10?15:41??ds18b20AND12864LCD?Display\DS18B20.h
?????目錄???????????0??2013-08-10?10:49??ds18b20AND12864LCD?Display\Debug\
?????目錄???????????0??2013-08-10?11:12??ds18b20AND12864LCD?Display\Debug\Exe\
?????文件???????25690??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Exe\18b20.d43
?????文件????????3475??2013-08-10?16:05??ds18b20AND12864LCD?Display\Debug\Exe\18b20.txt
?????目錄???????????0??2013-08-10?16:17??ds18b20AND12864LCD?Display\Debug\List\
?????目錄???????????0??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\
?????文件????????9664??2013-08-10?16:06??ds18b20AND12864LCD?Display\Debug\Obj\12864.pbi.cout
?????文件???????13353??2013-08-10?16:05??ds18b20AND12864LCD?Display\Debug\Obj\12864.r43
?????文件??????452685??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\18b20.pbd
?????文件??????452685??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\18b20.pbd.browse
?????文件????????9665??2013-08-10?15:12??ds18b20AND12864LCD?Display\Debug\Obj\18b20a.pbi.cout
?????文件???????42329??2013-08-10?15:12??ds18b20AND12864LCD?Display\Debug\Obj\18b20a.r43
?????文件????????9666??2013-08-10?16:06??ds18b20AND12864LCD?Display\Debug\Obj\DS18B20.pbi.cout
?????文件????????9666??2013-08-10?11:20??ds18b20AND12864LCD?Display\Debug\Obj\cry1602.pbi.cout
?????文件???????14694??2013-08-10?11:20??ds18b20AND12864LCD?Display\Debug\Obj\cry1602.r43
?????文件??????349930??2013-08-10?16:06??ds18b20AND12864LCD?Display\Debug\Obj\ds18b20.pbi
?????文件???????28196??2013-08-10?15:41??ds18b20AND12864LCD?Display\Debug\Obj\ds18b20.r43
?????文件??????340768??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\main.pbi
?????文件????????9663??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\main.pbi.cout
?????文件???????20215??2013-08-10?16:16??ds18b20AND12864LCD?Display\Debug\Obj\main.r43
?????文件????????7482??2013-08-10?15:41??ds18b20AND12864LCD?Display\ds18b20.c
?????文件????????1460??2013-08-10?16:16??ds18b20AND12864LCD?Display\main.c
?????文件???????????0??2013-08-10?16:06??ds18b20AND12864LCD?Display\path.txt
............此處省略5個文件信息
- 上一篇:vfp圖書信息管理系統
- 下一篇:ISA88 與 ISA95的整合
評論
共有 條評論