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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5990|回復: 0
打印 上一主題 下一主題
收起左側(cè)

單片機模擬I2C總線讀寫EEPROM(24CXX)之最簡單的讀寫程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:104835 發(fā)表于 2016-2-2 03:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 51黑科技 于 2016-2-2 03:22 編輯

下面是一個最簡單的讀寫程序,可以用來檢測線路狀況。先附上程序和電路,后面附有說明。
電路:

說明:P2口的LED都是我用來檢測電路執(zhí)行到哪一步的,個人覺得一目了然。
程序:
#include <reg51.h>
#define unit unsigned int
#define uchar unsigned char
int ok;
sbit scl=P0^0;         
sbit sda=P0^1;
sbit led0=P2^0;
sbit led1=P2^1;
sbit led2=P2^2;
sbit led3=P2^3;
sbit led4=P2^4;
sbit led5=P2^5;
sbit led6=P2^6;
sbit led7=P2^7;
delay(void)               //delay
{
  int i;
  led1=1;
  for(i=0;i<1;i++) led1=0;
}
start(void)            //start
{
  sda=1;
  scl=1;
  delay();
  sda=0;
  delay();
  scl=0;
  led0=0;
}
stop(void)         //stop
{
  sda=0;
  scl=1;
  delay();
  sda=1;
  delay();
  scl=0;
}
checkanswer(void)       //check answer
{
  sda=1;
  scl=1;
  if(sda==1)
  {
  F0=1;
  led7=0;
  }
  scl=0;
  led3=0;
}
sendabyte(int temps)       //send a byte
{
  uchar n=8;
  while(n--)
  {
    led2=1;
    if((temps&0x80)==0x80)
{
   sda=1;
   scl=1;
   delay();
   scl=0;
}
else
{
   sda=0;
   scl=1;
   delay();
   scl=0;
}
temps=temps<<1;
led2=0;
  }
}
reciveabyte()           //recive a byte
{
  uchar n=8,tempr;
  while(n--)
  {        //uchar idata *abyte
   scl=1;
tempr=tempr<<1;
if(sda==1)
   tempr=tempr|0x01;
else
   tempr=tempr&0xfe;
scl=0;
  }
  ok=tempr;
  return(ok);
}
main(void)         //MAIN
{
start();
sendabyte(0xa0);
checkanswer();
if(F0==1) return;
sendabyte(0x00);
checkanswer();
if(F0==1) return;
sendabyte(0x11);
checkanswer();
if(F0==1) return;
/*-----------------------*/
start();
sendabyte(0xa0);
checkanswer();
if(F0==1) return;
sendabyte(0x00);
checkanswer();
if(F0==1) return;
start();
sendabyte(0xa1);
checkanswer();
if(F0==1) return;
reciveabyte();
if(ok==0x11) led6=0;
stop();
}
說明:
1、寫驅(qū)動程序之前建議了解清楚24CXX系列芯片的讀寫時序,中文資料:http://www.zg4o1577.cn/bbs/dpj-30339-1.html
2、程序功能:先在地址0x00寫入一個數(shù)據(jù)0x11,然后再讀出來,若寫入的數(shù)據(jù)和讀出的數(shù)據(jù)一樣就點亮led6。下一篇來電復雜點的:http://www.zg4o1577.cn/bbs/dpj-43299-1.html



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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲天堂中文字幕 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 中文字幕电影在线观看 | 亚洲精品国产成人 | 欧美亚洲综合久久 | 亚洲色片网站 | 色就是色欧美 | 男女啪啪网址 | 一区二区中文 | 高清久久 | 国产一区二区精品 | 成人在线视频网 | 91精品国产色综合久久 | 久久久久久天堂 | 国产偷自视频区视频 | 中文字幕成人 | 在线免费观看一区二区 | 欧美日韩视频在线第一区 | 午夜在线视频一区二区三区 | 成人亚洲精品 | 欧美三级视频在线观看 | 国产高清精品一区二区三区 | 国产在线观看 | 精品亚洲一区二区 | 国产精品久久久久久 | 黄色免费网站在线看 | 青青草一区 | 欧美黄色大片在线观看 | 国产精品爱久久久久久久 | 久久蜜桃资源一区二区老牛 | 久久亚洲国产精品日日av夜夜 | 久久在线 | 国产四区 | 日本中文字幕在线观看 | 免费黄色大片 | 欧美一区二区 | 69av片| 国产精品久久久久久久久久三级 | 黄色一级视频 | 国产高清不卡 | 日韩在线观看网站 |