原创 CC2430驱动DS18B20

2011-5-16 23:15 3553 11 11 分类: 通信

CC2430驱动DS18B20



经过验证之后,结果终于出来了,在SimpleApp程序的SimpleSensor程序中用的应该是默认的16Mhz晶振,这样我的驱动就可以直接在上面跑了,哈哈,用DS18B20程序代替原SimpleApp程序中的温度采集函数(路径即调用关系为SimpleSensor——>SimpleSensor.c——>uint8  myApp_ReadTemperature()中的这个 myApp_ReadTemperature()换成我的驱动,结果就可以正常运转了具体如下:
本程序参考的文件在前两篇日志中说明了,在此声明其中引用的代码版权归原作者,本人在此表示感谢
本人萧对本程序内容享有版权,转载或引用任何内容、资料,
请注明作者本人 萧 和 出处。谢谢。

//////////////////////////////songjie加的/////////////////////////////////////////
//默认应该是16M晶振
//
#include "ioCC2430.h"      // 申明该文件中用到的头文件
/////////////////////////////////////////函数原型/////////////////////////////
/*延时函数,延时单位1ms左右*/
void delay(int a);

/*延时函数 ,延时1us左右*/
void Delay_nus(uint16 s);

/*初始化单总线*/
void dsInit(void);

/*读取温度转换数值*/
int getTmpValue(void);

/*发送读数据命令的,发送此命令后要连续读连个字节*/
void sendReadCmd(void);

/*开始温度采集函数*/
void sendChangeCmd(void);

/*写一个字节*/
void writeByte(unsigned char dat);

/*读一个字节*/
unsigned char readByte(void);

/*读取其中一位*/
unsigned char readBit(void);


///////////////////////////////////////////////函数定义////////////////////////////////////////////

/*注意在得到的温度值是负数的时候是用补码表示的,由于处于测试阶段室温为正,暂时没有对其进行处理
DS18B20(温度传感器)为排针下面的器件,其DQ引脚连接至P0.0,使用时对应连接CC2430相同引脚。
*/
#define ds        P0_0//ds18b20的dq位连接到了P0.0脚
#define SET_OUT        P0DIR|=0x01//设置为输出口
#define    SET_IN        P0DIR&=0xfe//设置为输入口

 void delay(int a)
{
  int i;
  int j;
  for(i=a;i>0;i--)
  {
    for(j=125;j>0;j--);
  }
}
void dsInit(void)
{    //对于16MHz时钟来说大概是3.125us这只是计算的并不知道是否准确 
    P0SEL&=0xfe;//将P0.0口设置为普通IO口
    SET_OUT;//    P0DIR|=0x01;  //先设置为输出口
    ds=1;//手册说初始化的时候拉低480~960us,但考虑到2430会初始化自己一段时间,所以在初始化开始之前
    ds=0;    //可能有一段时间了,所以这里不是直接拉低,而是先给ds=1告诉18b20开始拉低初始化了,否则它不知道从哪到哪算480us。             
    Delay_nus(550);//要求480us~960us的低电平
    ds=1;//产生一个上升沿,并释放总线进入等待应答状态
    SET_IN;//当b20检测到上升沿就会wait15us~60us然后
            //拉低总线,60~240us
    Delay_nus(30);   
    while(ds){;}//检测到应答后就会跳出循环
    //while(~ds);//等待其持续的低电平结束
        Delay_nus(200);
    SET_OUT;   
    ds=1;//回到初始状态
}
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条