打印

DS18B20的复位程序怎么整

[复制链接]
1786|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hxa_online|  楼主 | 2007-6-15 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是个历程太复杂,不易懂;有没简单,通俗,易懂的,DQ定义为P0.2

#define DS18b20_PORT PORTB        (不懂是什么意识)
#define DS18b20_DDR  DDRB        (不懂是什么意识)
#define DS18b20_PIN  PINB          (不懂是什么意识)


#define DS18b20      PB4      (不懂是什么意识)

#define SETBIT(x,y) (x|=(1<<y))      
#define CLRBIT(x,y) (x&=(~(1<<y)))   
#define CHKBIT(x,y) (x&(1<<y))     

#define  BIT_INV(x,y)    x^=(1<<y)
/********************************************************************************
                             DS18B20操作定义
********************************************************************************/
#define  CLR_DS18B20  CLRBIT(DS18b20_PORT,DS18b20)  //数据线强制拉低
#define  SET_DS18B20  SETBIT(DS18b20_PORT,DS18b20)  //数据线强制拉高,上拉
#define  HLD_DS18B20  SETBIT(DS18b20_DDR,DS18b20)  //Mega16控制总线
#define  RLS_DS18B20  CLRBIT(DS18b20_DDR,DS18b20)      //释放总线
#define  STU_DS18B20  CHKBIT(DS18b20_PIN,DS18b20)  //数据线的状态
 

/*********************************************************************************************
延时函数
**********************************************************************************************/

void delay_1us(void)                 //1us延时函数 
  { 
   asm("nop"); 
  } 

void delay_nus(unsigned int n)       //N us延时函数 
  { 
   unsigned int i=0; 
   for (i=0;i<n;i++) 
   delay_1us(); 
  } 
void delay_1ms(void)                 //1ms延时函数 
  { 
   unsigned int i; 
   for (i=0;i<400;i++); 
  } 
   
void delay_nms(unsigned int n)       //N ms延时函数 
  { 
   unsigned int i=0; 
   for (i=0;i<n;i++) 
   delay_1ms(); 
  }

void init_1820(void)  //复位程序
{  
    HLD_DS18B20;      //设置PC2 为输出 
    SET_DS18B20;   
    CLR_DS18B20;  
    delay_nus(180);    //480us以上  
    SET_DS18B20;  
    RLS_DS18B20;  
    delay_nus(10);     //15~60us  
    while(STU_DS18B20);  
    HLD_DS18B20;  
    SET_DS18B20;  
    delay_nus(40);   //60~240us  
}  

相关帖子

沙发
x512775199| | 2008-6-16 14:32 | 只看该作者

前面几个是定义端口的吧

用的单片机的portb来接ds的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

9

帖子

0

粉丝