在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      PIC16F72-AT24C64讀寫

      作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
      AT24C64和AT24C02程序上的主要是在讀寫時(shí)序上有些差別,具體看數(shù)據(jù)手冊(cè)。這里列舉一個(gè)字節(jié)寫的時(shí)序差別。

      本文引用地址:http://www.biyoush.com/article/201611/316073.htm

      /*************PIC16F72單片機(jī)程序******************************/
      /*********************************************************************/
      /*****File Function : PIC 讀寫AT24C64 *****/
      /*****Program Author :ClimberWin *****/
      /*****MCU : PIC16F72 外部晶振6MHZ *****/
      /*****Compile Date : 2011/04/15 *****/
      /*****Edition Info : V1.0 *****/
      /*************************************************************/
      #include
      #include"WIN24C64.H"
      __CONFIG(11111110111010);//bit13-bit7=1;bit6 欠壓使能(1 enable);bit5=1;bit4 代碼保護(hù)(0保護(hù));
      //bit3 上電延時(shí)(0 enable);bit2 看門狗(1 enable);bit1-bit0 時(shí)鐘選擇 (11 RC 10 HS 01 XT OO LP)

      #define uchar unsigned char
      #define uint unsigned int

      void Init(void); //初始化子程序
      void delayms(unsigned int count);

      #define KEY RB0//外部中斷


      #define LED16 RC0
      #define LED15 RC1
      #define LED14 RC2
      #define LED13 RC3
      #define LED12 RC4
      #define LED11 RC5
      #define LED10 RC6
      #define LED9 RC7


      /*********************************************/
      void delayms(unsigned int count)
      {
      uint i,j;
      for(i=0;ifor(j=0;j<120;j++);
      }
      /*********************************************/
      void Init(void)
      {

      PORTB = 0B00000000;
      PORTC = 0B00000000;

      TRISB = 0B00000001;//設(shè)置RB0為輸入,作為按鍵口
      TRISC = 0B00000000;//設(shè)置RC輸出

      RBPU=0;//PORTB上拉使能

      }


      ////////////主程序/////////////////////////
      void main (void)
      {
      uint win;
      uchar i;

      Init();//初始化程序
      delayms(100);
      PORTC=0XFF;
      PORTB=0XFF;
      PORTA=0XFF;


      WIN24C64_write(0x0000,0x55);//存數(shù)據(jù)到EEPROM
      delayms(20);
      WIN24C64_write(0x0001,0xaa);//存數(shù)據(jù)到EEPROM
      delayms(20);

      while(1)
      {
      delayms(1000); //延時(shí)
      PORTC=~WIN24C64_read(0x0000);//讀取24C64地址00H中的數(shù)據(jù)
      delayms(1000); //延時(shí)
      PORTC=~WIN24C64_read(0x0001);//讀取24C64地址00H中的數(shù)據(jù)
      }

      }

      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      /////////////////////////////////////////////////////////////////////////////////////////////////////////////////

      WIN24C64.H 頭文件

      /**********************中文版本*******************************/
      /*****功能描述 : PIC單片機(jī) 24C64 讀寫程序*****/
      /*****作 者 : ClimberWin *****/
      /*****編寫日期 : 2011年4月15日*****/
      /*****版本信息 : V1.0 *****/
      /*****修改日期 : *****/
      /*******************************************************/
      #ifndef __WIN24C64_H__
      #define __WIN24C64_H__

      #include

      #define uchar unsigned char
      #define uint unsigned int


      #define SCL RB2 //SCL 引腳定義
      #define SDA RB1 //SDA 引腳定義

      uchar WIN24C64_read(uint address); //從24c02的地址address中讀取一個(gè)字節(jié)數(shù)據(jù)

      void WIN24C64_write(uint address,uchar info); //向24c02的address地址中寫入一字節(jié)數(shù)據(jù)info

      void WIN24C64_init(); //24C64初始化子程序

      void delay1(uchar x);

      void start();

      void stop();

      void writex(uchar j);

      uchar readx();

      void clock();

      void delay1(uchar x)
      {
      uint i;
      for(i=0;i}


      void WIN24C64_init()
      {
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出
      SCL=1;
      asm("NOP");
      SDA=1;
      asm("NOP");
      }

      void start()
      {
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出
      SDA=1;
      asm("NOP");
      SCL=1;
      asm("NOP");
      SDA=0;
      asm("NOP");
      SCL=0;
      asm("NOP");
      }

      void stop()

      {
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出
      SDA=0;
      asm("NOP");
      SCL=1;
      asm("NOP");
      SDA=1;
      asm("NOP");
      }

      void writex(uchar j)

      {
      uchar i,temp;
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出
      temp=j;

      for (i=0;i<8;i++)
      {

      SCL=0;
      asm("NOP");

      if (temp & 0x80) //讀取
      {
      SDA=1;
      }
      else
      {
      SDA=0;
      }
      temp=temp<<1;
      //SDA=CY;


      asm("NOP");
      SCL=1;
      asm("NOP");
      }

      SCL=0;
      asm("NOP");
      SDA=1;
      asm("NOP");

      }

      uchar readx()
      {
      uchar i,j,k=0;
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出

      SCL=0;
      asm("NOP");

      SDA=1;

      TRISB = 0B00000011;//設(shè)置RB1 SDA為輸入
      for (i=0;i<8;i++)
      {
      asm("NOP");

      SCL=1;
      asm("NOP");

      if (SDA==1) j=1;
      else j=0;
      k=(k<<1)|j;
      SCL=0;

      }
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出

      asm("NOP");
      return(k);

      }

      void clock()

      {
      uchar i=0;
      TRISB = 0B00000011;//設(shè)置RB1 SDA為輸入
      SCL=1;

      asm("NOP");
      while ((SDA==1)&&(i<255))i++;
      SCL=0;
      asm("NOP");
      TRISB = 0B00000001;//設(shè)置RB1 SDA為輸出

      }

      uchar WIN24C64_read(uint address)

      {
      uchar i;
      start();
      writex(0xa0);
      clock();
      writex(address/256);
      clock();
      writex(address%256);
      clock();
      start();
      writex(0xa1);
      clock();
      i=readx();
      stop();
      delay1(10);
      return(i);

      }

      void WIN24C64_write(uint address,uchar info)

      {

      start();
      writex(0xa0);
      clock();
      writex(address/256);
      clock();
      delay1(10);
      writex(address%256);
      clock();
      writex(info);
      clock();
      stop();
      delay1(200);

      }

      #endif



      關(guān)鍵詞: PIC16F72AT24C64讀

      評(píng)論


      技術(shù)專區(qū)

      關(guān)閉
      ×

      “芯”朋友见面大会
      珠海|11.14|泰克“芯”朋友见面大会珠海站|泰克带您从测试角度看半导体的整条产业链,快来报名抢位吧>>