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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
uid:62214 日志

IIC通訊程序

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

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

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 日韩av成人在线观看 | 免费看淫片 | 国产精品久久久久久久粉嫩 | 国产伦精品一区二区三毛 | 欧产日产国产精品视频 | 日韩在线播放中文字幕 | 国产高清在线视频 | 91精品国产综合久久久动漫日韩 | 91毛片在线观看 | 色综合色综合网色综合 | 久久免费精品 | 欧美大片一区二区 | 国产91久久久久久久免费 | 精品久久久久久久久久久久久 | 一级黄色录像毛片 | 色婷婷九月| 欧美成人免费在线 | 欧美日韩一区二区在线播放 | 一区二区三区中文字幕 | 91亚洲国产成人精品一区二三 | 99久久电影 | 亚洲国产二区 | 日韩电影一区二区三区 | 久久www免费视频 | 在线观看亚洲专区 | 日韩美av| 精品久久精品 | 九九热精品在线 | 日本中文字幕一区 | 欧美日韩亚洲成人 | 久久性色 | 99热.com| 中文字幕第100页 | 影音先锋成人资源 | 国产成人精品高清久久 | 天堂综合 | 国产欧美精品一区二区色综合朱莉 | 色综合一区二区三区 | 国产精品久久久亚洲 | 久久久久久九九九九九九 | 国产99视频精品免费播放照片 |