<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > PIC單片機之I2C(從模式)

          PIC單片機之I2C(從模式)

          作者: 時間:2013-05-30 來源:網(wǎng)絡(luò) 收藏

          7,使能中斷

          PIE1bits.SSP1IE = 1;//Enabe interrupt MSSP

          INTCONbits.PEIE = 1;

          INTCONbits.GIE = 1;

          如果你要使用只要使用下面的代碼:

          將void i2c_salve_interrupt_tx();void i2c_salve_interrupt_rx();放到中斷程序中,如下:

          void interrupt isr(void)

          {

          if(SSP1IE SSP1IF)

          {

          i2c_salve_interrupt_tx();

          i2c_salve_interrupt_rx();

          SSP1IF=0;

          }

          }

          將初始化函數(shù)init_i2c_slave();放到主函數(shù)中

          void main()

          {

          init_i2c_slave();

          }

          頭文件 :i2c_salve.h

          #ifndef __SALVE_H

          #define _I2C_SALVE_H

          void init_i2c_slave();

          void i2c_salve_interrupt_tx();

          void i2c_salve_interrupt_rx();

          #endif

          代碼:i2c_salve.c

          #include ;

          #define input 1

          #define RX_BUF_LEN 29

          #define while_delay 6000

          unsigned char i2c_address,word_address,Register[29];

          unsigned char RANDOM_READ,i2c_counter;

          extern unsigned char A_readflag;

          /*I2C SALVE */

          void init_i2c_slave()

          {

          TRISB6 = input;

          TRISB4 = input;

          SSP1CONbits.SSPM0 = 0;

          SSP1CONbits.SSPM1 = 1;

          SSP1CONbits.SSPM2 = 1;

          SSP1CONbits.SSPM3 = 0;// I2C slave mode ,7bit address

          SSP1CONbits.CKP = 1; // enable clock

          SSP1ADD =0xA0; //slave address is 0xa0

          SSP1CONbits.SSPEN=1;//enable I2c

          SSPSTAT=0;

          PIE1bits.SSP1IE = 1;//Enabe interrupt MSSP

          INTCONbits.PEIE = 1;

          INTCONbits.GIE = 1;

          }

          /*I2C salve mode interrupt */

          void i2c_salve_interrupt_tx()//master read

          {

          unsigned char Temp;

          unsigned int timercounter;

          Temp=SSP1STAT;

          Temp = 0x2D;

          if(SSP1STATbits.R_nW ==1)//Read operation.

          {

          A_readflag=0;

          SSP1IF = 0;

          i2c_address = SSP1BUF;

          i2c_counter = word_address;

          while(i2c_counter RX_BUF_LEN)

          {

          SSP1BUF=Register[i2c_counter];//send data

          SSP1CONbits.CKP=1;// enable colck

          timercounter=while_delay;

          單片機相關(guān)文章:單片機教程


          單片機相關(guān)文章:單片機視頻教程


          單片機相關(guān)文章:單片機工作原理




          關(guān)鍵詞: PIC單片機 I2C 從模式

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();