wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> 常用芯片 >> 瀏覽文章

24C01讀寫的c51源程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2007年08月12日   【字體:

1.iic 方式

/*--------------------------24C01的IIC 讀寫的c51程序----------------------------------------------------
程序中很多NOP是冗余的,希望讀者能進一步精簡,但必須經過驗證。
        Atmel 24C01 比較特殊,為簡約型.
        51晶振為11.0592MHz
-----------------------------------------------------------------------------*/
#include "reg51.h"
#include "intrins.h"

sbit SCL= P1^5;
sbit SDA= P1^4;

delay()
{
unsigned int i=1200;
while(i--);
}
/*----------------------------------------------------------------------------
調用方式:write_8bit(unsigned char ch)  ﹫2001/03/23
函數說明:內函數,私有,用戶不直接調用。
-------------------------------------------------------------------------------
*/
void  write_8bit(unsigned char ch)
{
    unsigned char i=8;
    SCL=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    while (i--)
    {
        SDA=(bit)(ch&0x80);
        _nop_();_nop_();_nop_();_nop_();_nop_();
        ch<<=1;
        SCL=1;
        _nop_();_nop_();_nop_();_nop_();_nop_();
        SCL=0;
        _nop_();_nop_();_nop_();_nop_();_nop_();
    }
    _nop_();_nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();_nop_();
}

/*------------------------------------------------------------------------------
調用方式:void ACK(void)  ﹫2001/03/23
函數說明:內函數,私有,用戶不直接調用。
-------------------------------------------------------------------------------
*/
void ACK(void)
{
   unsigned char time_1;
    SDA=1;
    SCL=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
    SCL=1;
    time_1=5;
    while(SDA) {if (!time_1) break;} //ACK
    SCL=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();
}


unsigned char ReadIIC_24C01(unsigned char address)
{
      unsigned char ddata=0;
      unsigned char i=8;

    SCL=1;
    _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();   //Tsu:STA
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
    SCL=0;             //START

    write_8bit( (address<<1) | 0x01);   //寫頁地址和操作方式
    ACK();

    while (i--)
    {
        SDA=1;
        ddata<<=1;
        SCL=0;_nop_();_nop_();_nop_();_nop_();_nop_();SCL=1;
        if (SDA) ddata|=0x01;
    }

    SCL=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    SDA=0;_nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
        SDA=1;   //STOP
    delay();
    return ddata;

}


void WriteIIC_24C01(unsigned char address,unsigned char ddata)
{

    SCL=1;
    _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();   //Tsu:STA
    SDA=0;
    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //Thd:STA
    SCL=0;             //START

    write_8bit( (address<<1) & 0xfe);   //寫頁地址和操作方式,對于24C32-
24C256,page不起作用
    ACK();
    write_8bit(ddata);      //發送數據
    ACK();
    SDA=0;
        _nop_();SCL=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
        SDA=1;   //STOP
        delay();
}


2.這是一個讀寫24C系列EEPROM的程序,已經經過本人親自測試,通過。。。!

//*************************************
//**  M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256
//**  21c01,24c02:1010A2A1A0R/W; 24C04:1010A2A1P0R/W; 24C08:1010A2P1P0R/W
//**  24C16:1010P2P1P0R/W; //**  以上6種芯片的讀寫格式為:start-device addr-ack-first word addr-ack-second word addr-ack-data-ack-stop
//**  進行讀寫的字節數,EEPROM首址,EEPROM控制字節,
//**  以及EEPROM類型。此程序結構性良好,具有極好的容錯性,程序機器碼也不多:  
//**  以上5種芯片的讀寫格式為:start-device addr-ack-word addr-ack-data-ack-stop
//**  24c32-24c512:1010A2A1A0R/W; 24C1024:1010A2A1P0R/W; 24c1024:1010A2A1P0R/W //**  通用的24C01-24C1024共11種EEPROM的字節讀寫操作程序, 

//**************************24C01讀寫的c51源程序***********************************
#i nclude <reg51.h>
#i nclude <string.h>
#i nclude <stdio.h>
#i nclude <intrins.h>

sbit SDA =P1^1;
sbit SCL =P1^4;
sbit WP =P1^7;
sbit  light =P1^0;
sbit  power =P1^6;

#define   uchar   unsigned char
#define   uint    unsigned int

void iic_delay10ms();
void iic_delay(void);
void iic_start(void);
void iic_stop(void);
void iic_ack(void);
void read_byte(void);
void send_byte(void);
void initial(void);
void ok(void);
void error(void);
void read_eeprom(void);
void write_eeprom(void);
void init(void);

uchar  ack_flag,send_data,receive_data[32];
uchar  rw,type,device_addr,addr[3],num;

void main(void)
{
 initial();
 power =0;
 light =0;

 while(1)
 {
  ES =1;
  rw =0x55;
   WP =0;
  while(rw ==0x55);
  ES =0;
  switch(type)
   {
    case 0x01:
    case 0x02:
    case 0x04:
    case 0x08:
    case 0x16: 
     type =0x02;
     addr[1] |=0xa0;
     device_addr <<=1;
     addr[1] |=device_addr;
     break;
    default:
     type =0x03;
     addr[2] |=0xa0;
     device_addr <<=1;
     addr[2] |=device_addr;    
   }
  if(rw ==0x01)  //讀EEPROM
  {
   read_eeprom();
  }
  else if(rw ==0x00) //寫EEPROM
  {
   write_eeprom();
  }
  else        //error command
  {  
   error();
   ACC =0x01;
   SBUF =ACC;
   while(!TI);
   TI =0; 
  }  
 }
}

void read_eeprom(void)
{
 uchar i;
 WP =1;
 iic_start();
 for(i=1;i<=type;i++)
  {
   send_data =addr[type-i];
   send_byte();
   iic_ack();
   if(ack_flag ==0x01)
    break;
  }
 if(ack_flag ==0x00)
  {
   iic_start();
   addr[type-1] |=0x01;
   send_data =addr[type-1];
   send_byte();
   iic_ack();
   if(ack_flag ==0x00)
   {   
    for(i=0;i<num;i++)
     {
      read_byte();
      SBUF =send_data;
      while(!TI);
      TI =0;
      SDA =0;
      SCL =1;
      iic_delay();
      SCL =0;
     }
    iic_stop();
    rw =0x55;
   }
   else
   {
    error();
    ACC =0x03;
    SBUF =ACC;
    while(!TI);
    TI =0;
   }
  }
 else
  { 
   error();
   ACC =0x02;
   SBUF =ACC;
   while(!TI);
   TI =0;
  }
}

//如果你對本程序或者24C01讀寫還有什么疑問,歡迎到http://m.izizhuan.cn的論壇去交流。

void write_eeprom(void)
{
 uchar i;
 WP =0;
 iic_start();
 for(i=1;i<=type;i++)
  {
   send_data =addr[type-i];
   send_byte();
   iic_ack();
   if(ack_flag ==0x01)
    break;
  }
 if(ack_flag ==0x00)
 {
  for(i=0;i<num;i++)
  {
  send_data =receive_data[i];
  send_byte();
  iic_ack();
  iic_delay10ms(); 
  }
   iic_stop();
   rw =0x55;
 }
 else
 {
  error();
  ACC =0x04;
  SBUF =ACC;
  while(!TI);
  TI =0;
 }
}


void read_byte(void)
{
 uchar  i,temp=0x80;
 send_data =0x00;
 SCL =0;
  for(i=0;i<8;i++)
  {
  SDA =1;
  SCL =1;
    if(SDA)
   send_data |=temp;
    temp/=2;   
    SCL =0;
    iic_delay();
  }
}

void send_byte(void)
{
  uchar  i,temp=0x80;
  for(i=0;i<8;i++)
  {
    if((send_data&temp)==temp)
    {
      SDA =1;      //sda=1
    }
  else
    {
      SDA =0;     //sda=0
    }
     temp /=2;
     iic_delay();
     SCL =1;
     iic_delay();
     SCL =0;
     iic_delay();
  }
}

void iic_start(void)
{
 SDA =1;
 SCL =1;
 WP =0;
 iic_delay();
 SDA =0;
 iic_delay();
 SCL =0;
}

void iic_stop(void)
{
 SDA =0;
 SCL =1;
 iic_delay();
 SDA =1;
 //WP =1;
}

void    iic_ack(void)
{
 ack_flag =0x00;       //ack_flag等于0x00時有應答
 SDA =1;     
   iic_delay();
  SCL =1;
    iic_delay();
    if(SDA)
    {
      ack_flag =0x01;
    }
    SCL =0;
}

void    iic_delay(void)
{
 _nop_();
 _nop_();
 _nop_();
 _nop_();
}

void   iic_delay10ms(void)
{
#pragma ASM
 mov  r6,#200
 mov  r7,#10
delay:
 nop
 nop
 nop
 djnz r6,delay
 mov  r6,#200
 djnz r7,delay
#pragma ENDASM
}

void initial(void)
{
 TMOD =0x21;
 TH1 =0xfd;
 TL1 =0xfd;
 TH0 =0xfd;
 TL0 =0xfd;
 SCON =0x50;
 TR1 =1;
 EA =1;
 ES =1;
 ET0 =1;
 PT0 =1;
}

void ok(void)
{
 ACC =0x55;
 SBUF =ACC;
 while(!TI);
 TI =0;
 ACC =0xaa;
 SBUF =ACC;
 while(!TI);
 TI =0;
}

void error(void)
{
 ACC =0xaa;
 SBUF =ACC;
 while(!TI);
 TI =0;
 ACC =0x55;
 SBUF =ACC;
 while(!TI);
 TI =0;
 rw =0x55;
}
void es_int(void)interrupt 4
{
 uchar i;
 RI =0;
  type =SBUF;      //型號
  while(!RI);
  RI =0;
  device_addr =SBUF;  //器件地址
  for(i=0;i<3;i++)
  {
   while(!RI);
   RI =0;
   addr[2-i] =SBUF;  //地址高、中、低位字節
  } 
  while(!RI);
  RI =0;
  num =SBUF;      //要操作的字節數
  while(!RI);
  RI =0;
  rw =SBUF;
  if(rw ==1)      //接收到要讀的命令
  {
   ok();
  }
  else         //接收到要寫的命令
  {  
   for(i=0;i<num;i++)
   {
    while(!RI);
    RI =0;
    receive_data[i]=SBUF;
   }  
   ok();
  }
  //else
  //{
  // error();
  //}
}

關閉窗口

相關文章

五月天精品在线| 色久视频在线播放| 免费在线一区二区三区| 日韩av片在线看| 亚洲影院在线看| 精品视频在线播放免| 亚洲色图在线看| 鲁大师成人一区二区三区| 88久久精品| 最新日本在线观看| 黄色av网站在线观看| 神马一区二区三区| 一级片中文字幕| 国产中文字幕一区二区| 免费无码国产v片在线观看| 国产亚洲一区二区三区在线播放 | 日韩成人av网站| 91高清视频在线免费观看| 欧美tickling网站挠脚心| 国产精品黄色在线观看 | 这里只有视频精品| 欧美日韩一区视频| 一区二区三区在线视频观看58| 久久av老司机精品网站导航| 婷婷六月综合| 女同一区二区三区| 成人在线中文| av小说在线播放| 青青草免费在线| 国产三级视频| 直接看的黄色网址| 一区二区三区激情视频| 在线中文字幕网站| 日韩三级av在线| 午夜激情福利电影| 精品一区二区视频在线观看| 国产免费视频传媒| 国产91视频一区| 日韩av高清在线播放| 91精品啪在线观看麻豆免费| 欧美亚洲在线视频| 欧美激情va永久在线播放| 国产亚洲美女久久| 亚洲国产成人91精品| 欧美男人的天堂一二区| 欧美日韩国产精品一区| 亚洲精品国产无天堂网2021 | 亚洲一区二区影视| 日本亚洲欧美在线| 99久久久无码国产精品不卡| www.男人天堂| 911亚洲精选| 中文字幕成人免费视频| 激情网站五月天| www污在线观看| 裸体大乳女做爰69| 亚洲在线播放电影| 日韩欧美电影一区二区| 欧美亚州在线观看| 国产精品一区视频网站| 国产成人一区二区三区免费看| 日本久久精品视频| 1769国产精品| 欧美亚洲在线观看| 91国产精品视频在线| 久久久亚洲影院| 国产做受高潮69| 成人一区在线观看| 国产区av在线| 中文字幕在线视频网| 久草在线看片| 亚洲精品视频99| 日本在线一二三| 2021av在线| 成年人av网站| 成人h动漫精品一区二区下载 | 小小水蜜桃在线观看| 三级在线观看| 巨大荫蒂视频欧美大片| 污污在线观看| 成人欧美大片| 自拍偷拍亚洲图片| 米奇精品关键词| 日韩aaaa| 一本久道综合久久精品| 欧美另类高清视频在线| 欧美激情视频在线观看| 日本韩国欧美精品大片卡二| 日韩av日韩在线观看| 91免费看片网站| 免费影院在线观看一区| 亚洲精品免费在线看| 国产91视频一区| 国产免费人做人爱午夜视频| wwwxxx色| 可以免费看av的网址| 毛片基地在线观看| 国产毛片毛片毛片毛片毛片| 亚洲图片小说综合| 两个人免费视频观看日本| 制服黑丝国产在线| a在线免费观看| 国产视频一区二| 色呦哟—国产精品| 蜜桃视频在线一区| 欧美韩国日本综合| 日本高清成人免费播放| 亚洲免费视频网站| 久久久一区二区三区| 亚洲视频成人| 26uuu另类欧美亚洲曰本| 亚洲一二三四在线观看| 91麻豆精品国产91久久久使用方法| 亚洲午夜精品视频| 国产精品美女免费视频| 亚洲欧洲一区二区福利| 搡女人真爽免费午夜网站| 日本护士做爰视频| 波多野结衣视频网站| 亚洲一区二区三区在线观看网站| av电影免费看| 欧美激情二区| 久久久久久爱| 伊人久久婷婷| 国产网红主播福利一区二区| 黄色在线视频网站| 日韩精品一区国产| 亚洲国产精品第一区二区三区| 国产成人精品影视| 高跟丝袜一区二区三区| 亚洲欧美在线一区二区| 国产精品免费久久久| 在线观看日韩羞羞视频| 亚洲av无码成人精品区| 国产三级精品三级在线观看| 精品欧美日韩一区二区| 日韩精品系列| www一区二区三区| 国产亚洲综合精品| 国产精品电影院| 亚洲国产欧美久久| 成人福利在线视频| 成人小视频在线看| 久久久久97国产| 久草在线免费资源站| 中文视频在线| 国产一区一区| 久久午夜av| 午夜精品在线看| 欧美大尺度在线观看| 日韩一区二区三区资源| 荫蒂被男人添免费视频| 国产一区二区三区视频免费观看| av高清在线观看| 性孕妇free特大另类| 亚洲老妇激情| 中文字幕五月欧美| 一区二区三区动漫| 欧美lavv| 女女互磨互喷水高潮les呻吟| 蜜桃av噜噜一区二区三区麻豆| 在线观看视频免费| 亚洲视频国产| 成人一道本在线| 精品国产91乱码一区二区三区 | 91精品久久久久久久99蜜桃| 国产精品av在线播放| 高清在线观看免费| 久久久夜色精品| 国产精品冒白浆免费视频| 在线不卡日本v二区707| 亚洲一本二本| 一区二区三区四区乱视频| 久久久999国产精品| 国产一区一区三区| 国产乱国产乱老熟300| 久草国产视频| 最近高清中文在线字幕在线观看1| 国内精品久久久久久久97牛牛 | 一区二区精品免费| 美女把腿扒开让男人桶免费| 午夜激情视频在线| 影音先锋日韩在线| 亚洲国产精品一区二区久久| 久久久久久久久久久久av| 国产日韩欧美精品在线观看| 日本亚洲欧美在线| 春暖花开亚洲| 麻豆精品久久| 国产99久久久国产精品潘金| 亚洲国产毛片完整版| 日韩国产一区久久| 欧美日韩精品亚洲精品| 天天综合天天操| 国产厕拍一区| 国产精品久久久久久久久快鸭| 日韩视频中文字幕| 久久九九精品99国产精品| 亚洲3p在线观看| 爱情岛论坛vip永久入口| av综合在线观看| 久久77777| 麻豆9191精品国产| 日韩欧美国产高清| 一个色的综合| 在线视频一区二区三区四区| 一区二区三区性视频| 黄色网址视频在线观看| 免费观看在线一区二区三区| 91老司机福利 在线| 日韩视频在线一区| 九色porny91| 午夜av免费观看| videos性欧美另类高清| 成人午夜伦理影院| 久久综合五月天| www.日本一区| 久久久久88色偷偷| 欧洲伦理片一区 二区 三区| 中文字幕一区二区精品区| 欧美视频一区二区三区在线观看 | 中日韩精品视频在线观看| 国产精品久久久免费看| 你懂的国产视频| 国产美女视频一区二区三区| 午夜在线一区| 日韩精品在线观看一区二区| 国产激情片在线观看| 亚洲资源在线播放| 欧美6一10sex性hd| 国产成人一区在线| 久久人人爽人人| 99久久国产精| а√最新版在线天堂| 亚洲最新av| 精品国产91久久久久久久妲己| 国产精品999视频| 久久久久88色偷偷| 国产乱人伦精品一区| 午夜久久电影网| 五月天色一区| 国产高清不卡视频| 日韩电影大全网站| 中文字幕+乱码+中文字幕一区| 国产精品入口免费视频一| 成人信息集中地| 亚洲私人影吧| 美女视频网站久久| 欧美夫妻性生活xx| a级大片在线观看| 免费网站www在线观看| 精品动漫一区| 亚洲视频在线免费观看| 欧美最猛性xxxxx(亚洲精品)| 国产成人看片| 伊人久久亚洲综合| 亚洲人免费短视频| 一区二区三区在线免费视频| 欧美精品一区在线| 国产精品自偷自拍| 日本成人在线网站| 精品久久久久久中文字幕一区奶水| 日韩av一级大片| 黄色片一区二区三区| 伊人精品综合| 91麻豆精品国产91久久久更新时间| 日本午夜激情视频| 麻豆91免费| 一区在线免费| 欧美美女操人视频| 一级性生活免费视频| 国产成人无吗| 国产精品家庭影院| 亚洲v欧美v另类v综合v日韩v| 少妇高潮久久久| 欧美深夜视频| 亚洲成人av在线播放| 手机av在线免费| 最近中文字幕mv第三季歌词| 激情综合色播五月| 91精品国产综合久久久久久久久| 国产免费观看av| 久久人人视频| 欧美日韩性生活| 韩国视频一区二区三区| 1024欧美极品| 韩国v欧美v日本v亚洲v| 国产一区二区在线免费视频| 成人免费一级片| crdy在线观看欧美| 欧美一区在线视频| 手机在线播放av| 九色在线视频| 国产精品全国免费观看高清| 亚洲三区四区| 在线观看无遮挡| 另类天堂av| 国产精品一区久久| 99在线无码精品入口| 日韩美女国产精品| 在线观看视频99| 五月天色婷婷丁香| 中文字幕在线直播| 欧美日韩1234| 亚洲国产精品第一页| 91短视频版在线观看www免费| 亚洲视频香蕉人妖| 国产白丝袜美女久久久久| 国产黄色高清在线| 久久亚洲一区二区三区明星换脸 | 国产主播第一页| 亚洲香蕉久久| 亚洲第一精品福利| 蜜桃av免费在线观看| 涩涩视频在线| 欧美精品vⅰdeose4hd| youjizz.com日本| 亚洲丝袜精品| 欧美日韩精品一区视频| www.男人天堂| 悠悠资源网亚洲青| 日韩视频在线观看一区二区| 手机在线看片日韩| 伊人色综合一区二区三区影院视频| 欧美综合一区二区| 熟女人妻在线视频| 一区二区电影免费观看| 欧美不卡一区二区三区| 超碰人人人人人人人| 九九热这里有精品| 亚洲欧美日韩中文在线| 麻豆国产尤物av尤物在线观看| 国产免费区一区二区三视频免费| 亚洲色图综合网| 97人人澡人人爽人人模亚洲| 国语一区二区三区| 欧美黑人性生活视频| 国产一区二区在线不卡| 欧美日韩国产在线一区| 亚洲一区久久久| 尤物视频在线视频| 成人午夜在线视频| 国产精品久久..4399| 日韩亚洲视频在线观看| 欧美视频一区二区三区…| 无码国产69精品久久久久网站| 97久久人人超碰caoprom| 日韩免费视频一区| 久久国产一级片| 国产精品一在线观看| 国产精品69精品一区二区三区| 亚洲最大激情网| 狠狠色伊人亚洲综合成人| 日本久久高清视频| 免费在线黄色电影| 在线观看免费视频综合| 一级免费黄色录像| 牲欧美videos精品| 国产精品十八以下禁看| 国产成人福利短视频app| 丝袜在线观看| 欧美新色视频| 久久网这里都是精品| 欧美日韩亚洲综合在线| 欧美一区二区三区粗大| 一区二区免费| 国产91|九色| 一色屋成人免费精品网站| 韩日精品视频一区| 91专区在线观看| 国产欧美久久久久久久久| 精品国产青草久久久久福利| 毛片基地在线观看| 伊人激情综合| 超碰免费在线公开| 18视频免费网址在线观看| 精品国产一区二区三区久久影院| 日韩大片免费在线观看| 最新精品国产| 视频一区三区| 国产福利小视频在线| 日韩欧美不卡在线观看视频| 一二三区免费视频| 亚洲在线观看| 8x8ⅹ国产精品一区二区二区| 免费大片黄在线观看视频网站| 亚洲精品一线二线三线| 国产精品欧美综合亚洲| 人人爽香蕉精品| 男女午夜激情视频| 欧美电影免费观看高清完整| 九九久久精品一区| 国产一级片儿| 亚洲欧美日本在线| 91免费在线看片| 中文字幕一区二区三区久久网站| 日本三级中国三级99人妇网站| 四虎精品成人免费网站| 欧美哺乳videos| 黄色免费高清视频|