• 大小: 220KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: msp430  ds18b20  

资源简介

基于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个文件信息

评论

共有 条评论