音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

我的I2C讀寫程序!剛調(diào)通,大家看看,接受沒調(diào)

作者:xilinxer 欄目:單片機
我的I2C讀寫程序!剛調(diào)通,大家看看,接受沒調(diào)
#include<pic18.h>
#include <stdio.h>
#define TURE 1
#define FALSE 0
#define sda RC6
#define scl RC7
#define write_control_byte 0b10010000
#define read_control_byte  0b10010001



typedef unsigned CHAR byte;

byte *ram_data_ptr;
byte *prom_data_ptr;
bit  subaddr_or_data;
bit  get_data_from_ee(byte address, byte *data);
bit  send_data_to_ddp(byte address, byte *data);
byte eeprom_byte_buff,eeprom_address_buff;
byte ram[51];

const byte data[51]={0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x64,0x64,0x20,0x00,
                              0x00,0x00,0x00,0x00,0x05,0x00,0x02,0xd0,0x00,0x40,0x11,
                              0xe1,0x00,0x80,0x00,0xc0,0x0a,0x00,0x00,0x00,0x00,0x00,
                              0x00,0x5c,0x03,0x02,0x07,0x24,0x00,0x00,0x00,0x00,0x00,
                              0x00,0x00,0x00,0x00,0x00,0x00,0x0a };
                             


void delayus(int x)     //fosc=20m,
    {
       int n;
        for(n=x*5;n>0;n--){;}
       
       }
       
         
       
//***************************************************
//*函數(shù)名: init_slave_iic
//*功能:   初始化IIC口為slave模式
//*入口 :  無
//*出口 :  無
//*****************************************************
void init_slave_iic(viod){
     TRISC3=1;
     TRISC4=1;                         // 設(shè)sda,scl為輸入口
     SSPM3=0;SSPM2=1;SSPM1=1;SSPM0=0;  //設(shè)為7bit地址模式
     SSPADD=0x36;
     }

/*void interrupt i2c(void)  {
     di();
     if(SSPIF)         //I2C中斷
        {  if(RW)        //主器件要求數(shù)據(jù)及從發(fā)送         
             { CKP=0;
               delayus(5);
               SSPBUF=ram[ptr++];
               CKP=1;
               SSPIF=0;         //清中斷標志位
              }
            else             //主器件發(fā)送數(shù)據(jù)
              { if(DA=0)         //接收到的器件地址
                    {subaddr_or_data=1;       // 設(shè)標志
                     SSPIF=0;
                     }
                 else                   //接收到的是數(shù)據(jù)
                    { SSPIF=0;
                      if(subaddr_or_data=1)  //接收到的是子地址
                        { subaddr_or_data=0;  //設(shè)標志
                          ptr=SSPBUF; //重載地址指針
                         }
                       else                     //接收到的是數(shù)據(jù)
                         ram[ptr++]=SSPBUF; //數(shù)據(jù)寫入內(nèi)存
                      }      
                }
           }
       ei();
       }
  */     

//***********************************************************
//**函數(shù)名:i2c_delay
//**功能: i2c延時,同scl時鐘,3個延時為一個時鐘
//**入口: 無
//**出口:無
//*************************************************************
   void i2c_delay(void)
      {
        byte delay;
        for (delay=0;delay<10;delay++)
         {;}
       }
       
        
//***********************************************************/
//**函數(shù)名:wr_data
//**功能: 寫一個數(shù)據(jù)到從器件
//**入口: x 代寫入數(shù)據(jù)
//**出口:無
//************************************************************
void wr_data(x)
   {
     int i;
     i=0x80;
     do {
  &n
2樓: >>參與討論
子路
C的不懂,匯編的我有
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
有沒有在北京&有ICD II的朋友,請求幫助
哪位知道PIC16F737的價格,謝謝!
幫忙:mplab 下hi-tech用int數(shù)據(jù)總是不對,我不會匯編,請教
請問各位前輩,PIC的片子怎么燒斷,先多謝啦!
請大家介紹別的比較好一點的單片機論壇!!!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號