久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊 登錄
返回首頁

uid:62214的個人空間

日志

IIC通訊程序

已有 1133 次閱讀2014-5-29 06:45 | 程序

#include <reg51.h>
#include "delay.h"
#include "IIC.h"
sbit SDA = P2^0;
sbit SCL = P2^1;
 
/**********************************************************
 啟動子程序
 在 SCL 高電平期間 SDA 發(fā)生負(fù)跳變
**********************************************************/
void I2C_start()
{
   SDA = 1;
   SCL = 1;
   delayNOP();
   SDA = 0;
   delayNOP();
   SCL = 0;
}
/**********************************************************
 停止子函數(shù)
 在 SCL 高電平期間 SDA 發(fā)生正跳變
**********************************************************/
void I2C_stop()
{
   SDA = 0;
   SCL = 1;
   delayNOP();
   SDA = 1;
   delayNOP();
}
/**********************************************************
 發(fā)送應(yīng)答位子函數(shù)
 在 SDA 低電平期間 SCL 發(fā)生一個正脈沖
**********************************************************/
void  iic_ack()
{
   SDA = 0;
   SCL = 1;
   delayNOP();
   SCL = 0;
   NOP;
   SDA = 1;
}
/**********************************************************
 發(fā)送非應(yīng)答位子函數(shù)
 在 SDA 高電平期間 SCL 發(fā)生一個正脈沖
**********************************************************/
void  iic_noack()
{
   SDA = 1;
   SCL = 1;
   delayNOP();
   SCL = 0;
   delayNOP();
   SDA = 0;
}
/**********************************************************
 應(yīng)答位檢測子函數(shù)
**********************************************************/
bit iic_testack()
{
   bit ack_bit;
   SDA = 1;          //置SDA為輸入方式
   SCL = 1;
   delayNOP();
   ack_bit = SDA;
   SCL = 0;
   NOP;
   return ack_bit;  //返回應(yīng)答位
}
/**********************************************************
 發(fā)送一個字節(jié)子程序
**********************************************************/
unsigned char I2C_write_byte(unsigned char indata)
{
    unsigned char i, ack;
    // I2C 發(fā)送8 位數(shù)據(jù)
   for (i=0; i<8; i++)
   {
     // 高在前低在后
     if (indata & 0x80)
      SDA = 1;
     else
      SDA = 0;
     // 發(fā)送左移一位
     indata <<= 1;
     delayNOP();
     SCL = 1;
     delayNOP();
     SCL = 0;
   }
    // 設(shè)置SDA為輸入
   SDA =1;;
   delayNOP();
    // 讀取從機(jī)應(yīng)答狀態(tài)
    SCL = 1;
    delayNOP();
    if(SDA)
    {
      ack = I2C_NACK;
    }
    else
    {
      ack = I2C_ACK;
    }
    SCL = 0;
    return ack;
}
/**********************************************************
  讀一個字節(jié)子程序
**********************************************************/
unsigned char I2C_read_byte(unsigned char ack)
{
    unsigned char i, data1 = 0;
    // SDA 設(shè)置輸入方向
    SDA = 1;
    // I2C 接收8位數(shù)據(jù)
    for(i = 8; i > 0; i--)
    {
      data1 <<= 1;
      SCL = 1;
      delayNOP();
        // 高在前低在后
        if (SDA)
        {
          data1++;
  }
        SCL = 0;
        delayNOP();
    }
    // 主機(jī)發(fā)送應(yīng)答狀態(tài)
    if(ack == I2C_ACK)
      SDA = 0;
    else
      SDA = 1;
    delayNOP();
    SCL = 1;
    delayNOP();
    SCL = 0;
    return data1;
}
/*********************************************************/

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部
主站蜘蛛池模板: 午夜在线观看视频 | 俺去俺来也www色官网cms | 欧美日韩精品在线免费观看 | 午夜视频免费在线观看 | 91av在线视频观看 | 逼逼网 | 在线视频 亚洲 | 成人不卡| 九九热这里只有精品6 | 欧美一级大片免费观看 | 午夜二区| 国产一级片免费在线观看 | 夜夜草视频 | 欧美性猛交一区二区三区精品 | 别c我啊嗯国产av一毛片 | 亚洲综合色网站 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | av日韩一区 | 最新高清无码专区 | 午夜国产 | 国产精品综合 | 久久国产精品精品国产色婷婷 | 伦理午夜电影免费观看 | 免费观看一级特黄欧美大片 | 国产在线观 | 日本免费黄色 | 亚洲欧美一区二区三区1000 | 国产区一区二区三区 | 三级成人在线 | 日韩图区 | 97成人在线 | 三级在线免费观看 | 亚洲视频观看 | 久久精品一区 | 国产成人精品久久二区二区 | 欧美日韩亚洲国产综合 | 亚洲欧美日韩中文在线 | 天天射影院 | 日韩精品在线看 | 欧美不卡在线 | 日韩成人在线观看 |