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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2224|回復: 0
打印 上一主題 下一主題
收起左側

51單片機i2c協議示例程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:142550 發表于 2016-10-13 11:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit sda=P3^5;
sbit scl=P3^4;
void start_bit();
void stop_bit();
void slave_ack();
void no_ack();
void write_byte(uchar dat);
uchar read_byte();
void write_date(uchar addr,uchar date);
uchar read_date(uchar addr);
void delay(uint x);
void main()
{
       ucharnum;
       write_date(0x01,0xaa);
       delay(2);
       num=read_date(0x01);
       P0=num;
       while(1);
                     
}
void start_bit()                //開始位
{
       scl=1;
       _nop_();
       sda=1;
       _nop_();
       sda=0;
       _nop_();
       scl=0;      
}
void stop_bit()                     //停止位
{
       sda=0;
       _nop_();
       scl=1;
       _nop_();
       sda=1;
}
void slave_ack()            //應答信號
{
       _nop_();
       _nop_();
       scl=0;
       _nop_();;
       sda=1;
       _nop_();
       _nop_();
       scl=1;
       _nop_();
       _nop_();
       while(sda);
       //P0=0xfe;
       scl=0;
}
void no_ack()          //無應答
{
       sda=1;
       _nop_();
       scl=1;
       _nop_();
       scl=0;
}
void write_byte(uchar dat)       //寫一個字節
{
       uchari;
       scl=0;
       for(i=0;i<8;i++)
       {
              if(dat&0x80)
                     sda=1;
              else
                     sda=0;
              scl=1;
              dat<<=1;
              scl=0;
       }
}
uchar read_byte()                  //讀一個字節
{
       uchari,dat=0;
       sda=1;
       for(i=0;i<8;i++)
       {     
              dat<<=1;
              scl=1;
              if(sda==1)
                     dat|=0x01;
               scl=0;
                    
       }
       returndat;
}
void write_date(uchar addr,uchar date)        //在指定地址寫一個字節
{
       start_bit();
       write_byte(0xa0);
       slave_ack();   
       write_byte(addr);
      
       slave_ack();
       write_byte(date);
       slave_ack();
       stop_bit();
       delay(100);
}
uchar read_date(uchar addr)                //指定位置讀一個字節
{
       uchardate;
       start_bit();
       write_byte(0xa0);
      
       slave_ack();
      
       write_byte(addr);
       slave_ack();
       start_bit();
       write_byte(0xa1);
       slave_ack();
       date=read_byte();
       no_ack();
       stop_bit();
       returndate;
}
void delay(uint x)
{
       uinti,j;
       for(i=x;i>0;i--)
              for(j=0x40;j>0;j--);
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品国产一区二区三区 | 97超碰成人 | 亚洲欧美国产精品久久 | 欧美极品在线观看 | 超碰在线亚洲 | 一级中国毛片 | 99久久婷婷国产综合精品首页 | 天天看天天操 | 操到爽 | 国产精品亚洲一区 | 欧美综合久久 | 国产不卡在线 | 日韩精品免费视频 | 亚洲狠狠丁香婷婷综合久久久 | 最新91在线 | 亚洲国产精品一区 | 国产中文字幕网 | 黄在线免费观看 | 欧美性tv | 久久九精品 | 91精品中文字幕一区二区三区 | 涩涩导航 | 日本精品视频一区二区三区四区 | 亚洲精品视频播放 | 少妇精品久久久久久久久久 | 欧美精品日韩精品国产精品 | 国产精品免费一区二区三区四区 | 蜜桃视频在线观看www社区 | 亚洲综合一区二区三区 | 日韩精品一区二区三区视频播放 | 日韩精品在线一区 | 特一级毛片 | 欧美在线播放一区 | 亚洲欧美成人在线 | 免费一区二区 | 美女黄色在线观看 | 久久福利 | 日韩色图在线观看 | 99久久精品免费看国产四区 | 国产最新精品视频 | 精品欧美一区免费观看α√ |