导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[deltta]请用过18B20的帮忙看看,究竟怎么了?



No.40293
作者:deltta
邮件:imh910@sohu.com
ID:14412
登陆:2次
文章数:3篇
最后登陆IP:211.70.96.60
最后登陆:2003/8/20 8:53:26
注册:2003/8/17 11:02:04
财富:116
发帖时间:2003/8/18 11:15:01
发贴者IP:211.70.96.60
标题:deltta:请用过18B20的帮忙看看,究竟怎么了???为什么读出来的数据始终是16??
摘要:No.40293请用过18B20的帮忙看看,究竟怎么了???为什么读出来的数据始终是16?? //----***** 以下是 1820  的控制操作*****

//延时
void delay(int useconds)
{
  int s;
  for(s=0;s  <useconds;s++) ;
}

//复位
unsigned char ow_reset(void)
{
  unsigned char presence;
  //do {
   DQ = 0;           //pull DQ line low
   delay(29);        // leave it low for 480us
   DQ = 1;           // allow line to return high
   delay(3);         // wait for presence
   presence = DQ;    // get presence signal
   delay(25);        // wait for end of timeslot
  
   if(presence==0)     JDQ= 1;

   //while(presence==0);
   return(presence); // presence signal returned
   
}     // 0=presence, 1 = no part

//从 1-wire 总线上读取一个
unsigned char read_bit(void)
{
  unsigned char i;
  
    DQ = 0;   // pull DQ low to start timeslot
    DQ = 1;   // then return high
    for (i=0; i  <3; i++); 
    
  return(DQ);
}

//向 1-WIRE 总线上写一个
void write_bit(char bitval)
{

    DQ = 0;   // pull DQ low to start timeslot
    if(bitval==1) DQ = 1;
    delay(5);   // hold value for remainder of timeslot
    DQ = 1;
    
}
//从 1-wire 总线上读取一个
unsigned char read_byte(void)
{
 unsigned char i;
 unsigned char value = 0;
 
 for(i=0;i  <8;i++)
 {
  if(read_bit())  value|=0x01 ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:15毫秒 最大:29125毫秒 查询6次