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

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于HI-TECH C的PIC12C508讀寫93LC4源程序

      基于HI-TECH C的PIC12C508讀寫93LC4源程序

      作者: 時間:2012-08-18 來源:網(wǎng)絡(luò) 收藏

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

      /*----------------------------------------------------
      Function : StartBit
      Input : None
      Output : None
      Description :
      1. Set Chip Select(CS) = 1 (high)
      2. Set a Start Bit(1) to Serial Data Input(DI)
      ------------------------------------------------------*/
      void StartBit(void)
      {
      CS = 1;
      DI = 1;
      Pulse();
      }

      /*----------------------------------------------------
      Function : EWEN
      Input : None
      Output : None
      Description : ERASE/WRITE Enable
      ------------------------------------------------------*/
      void EWEN(void)
      {
      unsigned char i,temp;

      StartBit(); /* 1 */

      temp = 0x80; /* 0011xxxx ,(opcode:00, Address:11xxxx) */
      for(i=0; i8; i++) {
      if(0x30 temp)
      DI = 1;
      else
      DI = 0;
      Pulse();
      temp >>= 1;
      }

      CS = 0;
      }

      /*----------------------------------------------------
      Function : EWDS
      Input : None
      Output : None
      Description : ERASE/WRITE Disable
      ------------------------------------------------------*/
      void EWDS(void)
      {
      unsigned char i;

      StartBit(); /* 1 */

      DI = 0; /* 0000xxxx, (opcode:00, Address:00xxxx) */
      for(i=0; i8; i++)
      Pulse();

      CS = 0;
      }

      /*----------------------------------------------------
      Function : Write6
      Input : unsigned char Offset Address, unsigned int tx_data
      Output : None
      Description : Write 16bits data in to 6 Offset Address
      ------------------------------------------------------*/
      void Write6(unsigned char Offset_Addr, unsigned int tx_data)
      {
      unsigned char Addr, i;
      unsigned int temp;

      EWEN();

      StartBit(); /* 1 */
      Offset_Addr=Offset_Addr0x3F; /* 6bits address */
      Addr = Offset_Addr + 0x40; /* 01AAAAAA ,(opcode:01, address:AAAAAA) */
      temp = 0x0080;
      for(i=0; i8; i++) {
      if(Addr temp)
      DI = 1;
      else
      DI = 0;
      Pulse();
      temp >>= 1;
      }

      temp = 0x8000; /* DDDDDDDDDDDDDDDD(16bits data)*/
      for(i=0; i16; i++) {
      if(tx_data temp)
      DI = 1;
      else
      DI = 0;
      Pulse();
      temp >>= 1;
      }
      CS = 0;

      EWDS();
      }

      /*----------------------------------------------------
      Function : Read93LC46
      Input : unsigned char Offset Address
      Output : unsigned int
      Description : Read 16bits data from 93LC46 offset address
      ------------------------------------------------------*/
      unsigned int Read93LC46(unsigned char Offset_Addr)
      {
      unsigned char Addr, i, temp;
      unsigned int rx_data;

      StartBit(); /* 1 */
      Offset_Addr = Offset_Addr0x3F; /* 6bits address */
      Addr = Offset_Addr + 0x80; /* 10AAAAAA ,(opcode:10, address:AAAAAA) */
      temp = 0x80;
      for(i=0; i8; i++) {
      if(Addr temp)
      DI = 1;
      else
      DI = 0;
      Pulse();
      temp >>= 1;
      }

      rx_data = 0x0000; /* DDDDDDDDDDDDDDDD(16bits data)*/
      for(i=0; i16; i++) {
      Pulse();
      if(DO)
      rx_data |= 0x0001;
      if(i 15)
      rx_data = 1;
      }
      CS = 0;

      return(rx_data);
      }

      void InitPIC(void)
      {
      OPTION = (GPWU | GPPU | PS2 | PS1 | PS0);
      TRIS = 0x10;
      CS = 0;
      CLK = 0;
      DI = 0;
      }

      /* Main routine */
      void main(void)
      {
      unsigned char addr;
      unsigned int rx_buf;

      InitPIC();
      /* Read a word then +1 and write back to 93LC46 */
      for (addr = 0; addr 10; addr++)
      {
      rx_buf = Read93LC46(addr);
      rx_buf = rx_buf+1;
      Write93LC46(addr, rx_buf);
      }

      }


      上一頁 1 2 下一頁

      評論


      相關(guān)推薦

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

      關(guān)閉