打印
[AVR单片机]

单片机通过Microwire和AD通讯,无法识别出高电平

[复制链接]
1632|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
doliphin|  楼主 | 2012-7-12 21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于无法通信,认真用示波器观察输出波形,发现数据输入线上确实是出现了高电平,但是AVR单片机死活就当没看见,部分代码如下:
CEH = 0;
//
MISO = 1;

for(i=0;i<8;i++)

{
      MOSIH = 0;
//
  MISO = 0;  
          if(byte&0x80)
          {
            MOSIH = 1;
          }// output 'byte', MSB to MOSIH
// 从MOSIH脚输出,从高位到低位.当BYTE 最高位为1时逻辑运算为1,输出1.运算为0时输出0

  _NOP();
   
  byte = (byte << 1);           // shift next bit into MSB..
    // 左移1位.将低位向高位转移.
   
  SCKH = 1;                      // Set SCKH high..
  
//          if( MISO )
//          {
            byte |=MISOH;
//          }//byte=byte|MISO  capture current MISO bit

// 从MISO 中读出状态位存入BYTE中.  
//
  _NOP();
   
  SCKH = 0;            
  // ..then set SCKH low again

}
    Data_High =0;

Data_High = byte;
//
byte=0x84;

for(i=0;i<8;i++)

{
   
  MOSIH = 0;         // output 'byte', MSB to MOSIH
// 从MOSIH脚输出,从高位到低位.当BYTE 最高位为1时逻辑运算为1,输出1.运算为0时输出0
   
  byte = (byte << 1);           // shift next bit into MSB..
    // 左移1位.将低位向高位转移.  
   
  SCKH = 1;                      // Set SCKH high..
  

  _NOP();
          if(MISOH)
          {
            byte =byte+ 1;
          }//byte=byte|MISOH  capture current MISOH bit

// 从MISOH 中读出状态位存入BYTE中.

  _NOP();
  
   
  SCKH = 0;            
  // ..then set SCKH low again

}
//
Data_Low = byte;

Data_Low = 0x46;

CEH = 1;


求大神指导

相关帖子

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

本版积分规则

个人签名:路漫漫其修远兮,吾将上下而求索

0

主题

195

帖子

2

粉丝