亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 復(fù)件 i2c_2.c

?? 用PIC16F73編寫的SMBUS通信測(cè)試程序
?? C
字號(hào):

/******************************************************************* 
一、程序說明: 
1, 24LC02器件地址是1010000R/W. 同時(shí)也一部分為SMBUS  0x16
2, 數(shù)組寫入24LC02采取頁寫方式. 
3, 數(shù)組code從24LC02讀出時(shí)采取自由讀方式. 
4, 采用4.00M晶體。 
5,采用軟件I2C。 

二、硬件連接: 
1, SDA_DIRE------->23 pin.(當(dāng)然你可以任意選擇腳位) 
2,  SCL_DIRE------->18 Pin.(當(dāng)然你可以任意選擇腳位) 
3, PORTD----->外接8個(gè)LED,顯示讀出的數(shù)據(jù),在這里,讀出的剛好是一個(gè)閃動(dòng)的流水燈狀態(tài)。 

*******************************************************************/ 
#include "pic.h" 

#define uchar   unsigned char 
#define nop()  asm("nop")
//#define SCL_DIRE  TRISC3  //PIC mcu專用I2C
//#define SDA_DIRE  TRISC4 
//#define SCL_E     RC3
//#define SDA_E     RC4

#define SCL_E     RA0
#define SDA_E     RA1
#define SCL_DIRE  TRISA0 
#define SDA_DIRE  TRISA1 

void start_i2c(); 
void stop_i2c(); 
void send_byte(uchar c); 
uchar receive_byte(); 
void I_send_str(uchar sla,uchar suba,uchar *s,uchar no);
void I_send_word(uchar sla,uchar suba,uchar datal,uchar datah); 
void delay_250ms(); 
void i2c_error (); 
int ReadByte_EE(uchar addr);
//int ReadWord(uchar addr);

uchar code[]={0x34,0x64,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; 
uchar no,ack,c,data; 

/*
void main(void) 
{ 
 uchar i; 
 
 ADCON1=0X06;
 TRISA=0x0F;
 PORTA=0;
 
 TRISC=0Xff;     //C口設(shè)為輸入 RC3為SCL_DIRE線,RC4為SDA_DIRE線。 
 PORTC=0X0;     
 TRISB=0X00;     //D口為輸出,顯示IC24LC02中讀出的內(nèi)容 
 PORTB=0X00;     //初始顯示全亮 

 I_send_str(0xa0,0x00,code,6); //頁寫入code數(shù)組到24LC02,器件地址為0Xa0,子地址為0X00,共9個(gè)數(shù)。 
  
 delay_250ms(); 
  

 ///////////開始讀出到D口進(jìn)行顯示,根據(jù)Random read時(shí)序圖。 
 while (1) 
  { 
    for (i=0x00;i<0x09;i++) 
     { 
      start_i2c(); 
      send_byte(0xA0);      //發(fā)送器件地址,即DEVICE ADDRESS。 
        if (ack==0) i2c_error(); //如果24LC02無應(yīng)答。則進(jìn)入I2C ERROR錯(cuò)誤指示。 
      send_byte(i);         //發(fā)送字地址,即WORD ADDRESS。D口顯示數(shù)組。 
        if (ack==0) i2c_error(); 
      start_i2c();          //重新啟動(dòng)總線。 
      send_byte(0xA1);      //發(fā)送讀命令和器件地址DEVICE ADDRESS。 
        if (ack==0) i2c_error(); 
      data=receive_byte(); 
      stop_i2c(); 
      PORTB=data; 
      delay_250ms(); 
      PORTB=ReadByte_EE(2);
      delay_250ms();
     } 
  } 
} 
*/

/******************************************************************* 
起動(dòng)總線函數(shù) 
函數(shù)原型: void start_i2c(); 
Function: start on the I2C bus 
*******************************************************************/ 
void start_i2c() 
{ 
 SDA_DIRE=1;       //發(fā)送啟始條件的數(shù)據(jù)信號(hào) 
 nop(); 
 SCL_DIRE=1; 
 nop();nop();nop();nop();nop(); //24LC02要求建立時(shí)間大于4,7S 
 SDA_DIRE=0;                      //發(fā)送起始信號(hào) 
 nop();nop();nop();nop();nop(); 
 SCL_DIRE=0;                      //鉗住I2C總線,準(zhǔn)備發(fā)送數(shù)據(jù)或接收數(shù)據(jù) 
 nop();nop(); 
} 


/******************************************************************* 
停止總線函數(shù) 
函數(shù)原型: void stop_i2c(); 
Function: stop the I2C bus 
*******************************************************************/ 
void stop_i2c() 
{ 
  
 SDA_DIRE=0; //發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào) 
 nop(); 
 SCL_DIRE=1; 
 nop();nop();nop();nop();nop(); 
 SDA_DIRE=1; 
 nop();nop();nop();nop(); 
} 

/*================================================================= 
字節(jié)數(shù)據(jù)傳送函數(shù) 
函數(shù)原型: void send_byte(uchar c); 
Function: 將數(shù)據(jù)C發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待回應(yīng),并對(duì)此狀態(tài) 
         位進(jìn)行操作(不應(yīng)答或非應(yīng)答都使ack=0 ),發(fā)送數(shù)據(jù)正常,ack=1;ack=0 
         表示被控器無應(yīng)答或損壞。 
==================================================================*/ 
void send_byte(uchar c) 
{ 
 uchar bit_count; 
 for (bit_count=0;bit_count<8;bit_count++) 
  { 
   if ((c<<bit_count)&0x80) {SDA_DIRE=1;} 
   else {SDA_DIRE=0;} 
   nop(); 
   SCL_DIRE=1; 
   nop();nop();nop();nop();nop(); 
   SCL_DIRE=0; 
  } 
  nop();nop(); 
  SDA_DIRE=1; 
  nop();nop(); 
  SCL_DIRE=1; 
  nop();nop();nop(); 
  if (SDA_E==1) ack=0; 
  else ack=1; //用ASK=1為有應(yīng)答信號(hào) 
  SCL_DIRE=0; 
  nop();nop(); 
} 

/*================================================================== 
字節(jié)數(shù)據(jù)接收函數(shù) 
函數(shù)原型:uchar receive_byte(); 
FUNCTION: 用來接收從器件傳來的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)), 
         發(fā)完后請(qǐng)用應(yīng)答函數(shù)。 
===================================================================*/ 
uchar receive_byte() 
{ 
  uchar retc,bit_count; 
  retc=0; 
  SDA_DIRE=1; 
  for (bit_count=0;bit_count<8;bit_count++) 
  { 
     nop(); 
     SCL_DIRE=0; 
     nop();nop();nop();nop();nop(); 
     SCL_DIRE=1; 
     nop();nop(); 
     retc=retc<<1; 
     if (SDA_E==1)  retc=retc+1; 
     nop();nop(); 
   } 
   SCL_DIRE=0; 
   nop();nop(); 
   return (retc); 
} 

////////********************************//////////////
int ReadByte_EE(uchar addr){
uchar data1;
 start_i2c(); 
      send_byte(0xA0);      //發(fā)送器件地址,即DEVICE ADDRESS。 
        if (ack==0) i2c_error(); //如果24LC02無應(yīng)答。則進(jìn)入I2C ERROR錯(cuò)誤指示。 
      send_byte(addr);         //發(fā)送字地址,即WORD ADDRESS。D口顯示數(shù)組。 
        if (ack==0) i2c_error(); 
      start_i2c();          //重新啟動(dòng)總線。 
      send_byte(0xA1);      //發(fā)送讀命令和器件地址DEVICE ADDRESS。 
        if (ack==0) i2c_error(); 
      data1=receive_byte(); 
      stop_i2c(); 
      return(data1);
      }


/*================================================================ 
向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)函數(shù) 
函數(shù)原型: bit I_send_str(uchar sla,uchar suba,uchar *s,uchar no); 
Function: 從啟動(dòng)總線到發(fā)送地址,數(shù)據(jù),結(jié)束總線的全過程,從器件地址sla。如果 
         返回1表示操作成功,否則操作有誤。 
=================================================================*/ 
void I_send_str(uchar sla,uchar suba,uchar *s,uchar no) 
{ 
  uchar i; 
  start_i2c(); 
  send_byte(sla); 
  if (ack==0)  i2c_error(); 
  send_byte(suba); 
  if (ack==0)  i2c_error(); 
  for (i=0;i<no;i++) 
   { 
     send_byte(*s); 
     if (ack==0)  i2c_error(); 
     s++; 
   } 
  stop_i2c(); 
 // return(1); 
} 

/*================================================================ 
向有子地址器件發(fā)送兩字節(jié)數(shù)據(jù)函數(shù) 
函數(shù)原型: bit I_send_word(uchar sla,uchar suba,uchar datal,uchar datah); 
Function: 從啟動(dòng)總線到發(fā)送地址,數(shù)據(jù),結(jié)束總線的全過程,從器件地址sla。如果 
         返回1表示操作成功,否則操作有誤。 
=================================================================*/ 
void I_send_word(uchar sla,uchar suba,uchar datal,uchar datah) 
{ 
  uchar i; 
  start_i2c(); 
  send_byte(sla); 
  if (ack==0)  i2c_error(); 
  send_byte(suba); 
  if (ack==0)  i2c_error(); 
  send_byte(datal); 
  if (ack==0)  i2c_error(); 
  send_byte(datah); 
  if (ack==0)  i2c_error(); 
  stop_i2c(); 
 // return(1); 
} 
/***************************************************************** 
延時(shí)函數(shù) 
函數(shù)原型: void delay_250ms(); 
FUNCTION: 延明250ms 
*****************************************************************/ 
void delay_250ms() 
{ 
 unsigned int d=24999; 
 while (--d); 
} 

/***************************************************************** 
總線錯(cuò)誤函數(shù) 
函數(shù)原型: void i2c_error(); 
Function: 通過RD7閃動(dòng)8次表示總線操作失敗一次報(bào)警。 
*****************************************************************/ 
void i2c_error () 
{ 
 uchar i; 
 for (i=0;i<8;i++) 
 { 
   RB7=0; 
   delay_250ms(); 
   RB7=1; 
   delay_250ms(); 
 } 
  
} 
/**********END**************/ 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
玉米视频成人免费看| 欧美日韩中文一区| 在线一区二区三区做爰视频网站| 欧美日韩黄视频| 国产精品福利电影一区二区三区四区| 免费日韩伦理电影| 91国偷自产一区二区使用方法| 久久久久久久久久电影| 午夜激情综合网| 91黄色小视频| 欧美激情艳妇裸体舞| 美女精品自拍一二三四| 欧美天天综合网| 中文字幕欧美激情| 国产一区啦啦啦在线观看| 制服丝袜激情欧洲亚洲| 亚洲国产一二三| 91官网在线观看| 一区二区三区精品视频| 99riav久久精品riav| 国产精品久久综合| 成人av在线播放网址| 国产视频一区在线观看| 国产老妇另类xxxxx| 精品美女一区二区| 经典三级视频一区| ww亚洲ww在线观看国产| 国模一区二区三区白浆 | 亚洲精品va在线观看| 成人免费视频播放| 国产情人综合久久777777| 国产激情视频一区二区在线观看| 欧美大肚乱孕交hd孕妇| 精品午夜久久福利影院| 精品国产乱码久久久久久久| 久久草av在线| 国产亚洲综合色| 成人影视亚洲图片在线| 中文字幕久久午夜不卡| 97精品电影院| 亚洲影视在线观看| 亚洲午夜免费福利视频| 成人丝袜18视频在线观看| 国产精品三级在线观看| 97精品国产露脸对白| 一区二区三区在线免费播放| 欧美美女网站色| 蜜桃av一区二区在线观看| 久久综合久久鬼色| 成人黄色网址在线观看| 亚洲一区二区三区免费视频| 欧美肥妇bbw| 国产在线精品国自产拍免费| 国产欧美精品一区aⅴ影院| av不卡在线观看| 亚洲另类一区二区| 欧美一级搡bbbb搡bbbb| 国产伦精一区二区三区| 中文字幕在线不卡一区| 欧美精品日韩精品| 国产寡妇亲子伦一区二区| 综合亚洲深深色噜噜狠狠网站| 在线观看视频一区二区欧美日韩| 日本亚洲欧美天堂免费| 中文字幕第一区第二区| 欧美日韩三级一区二区| 国产在线国偷精品免费看| 国产精品不卡视频| 欧美一区二区三区免费视频| 成人在线一区二区三区| 热久久国产精品| 国产精品另类一区| 91精品国产色综合久久ai换脸 | 国产精品对白交换视频 | 91麻豆福利精品推荐| 首页综合国产亚洲丝袜| 亚洲国产精品成人综合色在线婷婷| 91黄视频在线| 国产成人夜色高潮福利影视| 亚洲高清一区二区三区| 国产精品成人一区二区三区夜夜夜| 在线成人av网站| 91网页版在线| 粉嫩嫩av羞羞动漫久久久| 日本 国产 欧美色综合| 一区二区三区小说| 国产亚洲欧美日韩在线一区| 欧美日韩dvd在线观看| 色综合天天狠狠| 国产精品一区二区你懂的| 日本在线不卡视频| 夜夜嗨av一区二区三区| 成人欧美一区二区三区黑人麻豆| 欧美va天堂va视频va在线| 欧美巨大另类极品videosbest | 欧美欧美欧美欧美| av资源网一区| 国产成人精品免费在线| 久草中文综合在线| 美女网站视频久久| 日本vs亚洲vs韩国一区三区二区| 亚洲综合丁香婷婷六月香| 国产精品久久久久久久久果冻传媒 | 久久久久久久久岛国免费| 欧美片网站yy| 欧美日韩国产免费| 欧美午夜片在线看| 91高清在线观看| 在线观看www91| 欧美在线影院一区二区| 91麻豆国产精品久久| 91视频xxxx| 一本色道久久综合狠狠躁的推荐 | 国产午夜精品在线观看| 亚洲精品一区二区三区在线观看 | 欧美制服丝袜第一页| 色噜噜夜夜夜综合网| 99久久伊人精品| 99久久精品国产麻豆演员表| 99国产精品国产精品久久| 色综合色综合色综合| 日本久久一区二区三区| 欧美日韩一本到| 欧美日韩精品一区二区三区蜜桃| 欧美日韩国产一区二区三区地区| 欧美另类高清zo欧美| 日韩一区二区三区视频在线观看| 欧美二区乱c少妇| 日韩久久久精品| 国产欧美综合在线观看第十页| 欧美国产日韩在线观看| **性色生活片久久毛片| 亚洲自拍偷拍欧美| 男女男精品视频| 国产成人精品一区二区三区网站观看| 福利电影一区二区| 色狠狠色狠狠综合| 欧美一区二区视频观看视频| 久久精品亚洲精品国产欧美| 国产精品色噜噜| 婷婷中文字幕综合| 国产一区不卡在线| 99精品热视频| 欧美一区二区三区视频在线| 国产婷婷一区二区| 亚洲va在线va天堂| 国产精品一区二区三区网站| 91久久免费观看| 91精品在线一区二区| 国产亚洲福利社区一区| 亚洲精品欧美二区三区中文字幕| 日韩精品视频网站| 成人毛片老司机大片| 北岛玲一区二区三区四区| 宅男噜噜噜66一区二区66| 欧美激情资源网| 丝袜美腿亚洲一区二区图片| 国产精品18久久久| 欧美无砖专区一中文字| 久久久av毛片精品| 亚州成人在线电影| 91在线视频网址| 久久影院视频免费| 天天色天天爱天天射综合| 不卡视频在线观看| 精品国产制服丝袜高跟| 亚洲小说欧美激情另类| 成人免费视频一区二区| 精品欧美久久久| 午夜伦理一区二区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产精品国产三级国产专播品爱网 | 欧美日韩另类一区| 国产精品美女久久久久久2018| 人人超碰91尤物精品国产| 91久久国产最好的精华液| 日本一区二区三区视频视频| 青娱乐精品视频| 欧美日韩高清影院| 亚洲蜜臀av乱码久久精品| 春色校园综合激情亚洲| 久久奇米777| 美女视频网站黄色亚洲| 欧美精品日韩一区| 亚洲国产精品人人做人人爽| 色噜噜狠狠色综合中国| 国产精品电影院| 99久久亚洲一区二区三区青草| 久久精品人人做人人爽人人| 国产一区久久久| 久久久91精品国产一区二区精品| 蜜臀久久99精品久久久久宅男| 欧美日韩一区二区三区不卡| 亚洲精品免费播放| 91捆绑美女网站| 亚洲午夜在线电影| 欧美丰满少妇xxxbbb| 日本aⅴ免费视频一区二区三区 | 男女视频一区二区| 欧美一区二区三区播放老司机|