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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 340_i2c.c

?? c8051f340單片機(jī)的i2c總線程序
?? C
字號(hào):


#include <c8051f340.h> 
#define uchar unsigned char
#define uint unsiged int                     
#define  SYSCLK         12000000             // 12M內(nèi)部時(shí)鐘
#define  SMB_FREQUENCY  50000                //SMBUS目標(biāo)時(shí)鐘頻率

#define  WRITE          0x00                 // SMBus 寫(xiě)命令                          
#define  READ           0x01                 // SMBus 讀命令
#define  EEPROM_ADDR    0xA0                 // 鐵電存儲(chǔ)器的地址
#define  SMB_BUFF_SIZE  0x08                 // 定義傳輸?shù)刂?

#define  SMB_MTSTA      0xE0                 // 開(kāi)始傳輸
#define  SMB_MTDB       0xC0                 // 數(shù)據(jù)傳輸
#define  SMB_MRDB       0x80                 // 數(shù)據(jù)接收


uchar* pSMB_DATA_IN;                 // 定義全局變量
uchar SMB_SINGLEBYTE_OUT;            // 定義握手信號(hào)

uchar* pSMB_DATA_OUT;                // 數(shù)據(jù)存儲(chǔ)變量
unsigned long q;                           
uchar SMB_DATA_LEN;                  // SMBUS傳輸數(shù)據(jù)長(zhǎng)度

uchar WORD_ADDR;                     // 數(shù)據(jù)地址

uchar TARGET;                        //目標(biāo)從地址
uchar temp_char; 
uchar retval;
bit SMB_BUSY = 0;                            // 定義SMBUS忙標(biāo)志位

bit SMB_RW;                                  // 傳輸標(biāo)志

bit SMB_SENDWORDADDR;                        // 傳輸?shù)刂肺?

bit SMB_RANDOMREAD;                          // 傳輸開(kāi)始信號(hào)發(fā)出后

bit SMB_ACKPOLL;                             // 設(shè)置應(yīng)答

 

sfr16    TMR3RL   = 0x92;                    
sfr16    TMR3     = 0x94;                   

void SMBus_Init (void);						 //SMBUS初始化函數(shù)
void Timer1_Init (void);					 //定時(shí)器1初始化函數(shù)
void Timer3_Init (void);					 //定時(shí)器3初始化函數(shù)
void Port_Init (void);
void SMBus_ISR (void);
void Timer3_ISR (void);

void EEPROM_ByteWrite(uchar addr, uchar dat);
void EEPROM_WriteArray (uchar dest_addr, uchar* src_addr,
                        uchar len);
uchar EEPROM_ByteRead(uchar addr);
void EEPROM_ReadArray (uchar* dest_addr, uchar src_addr,
                       uchar len);



void main (void)
{
   char in_buff[9] ;                    
   char out_buff[8] = "ABCDEFG2";            



   PCA0MD &= ~0x40;                          // 關(guān)看門(mén)狗定時(shí)器

   OSCICN |= 0x03;                           // 初始化內(nèi)部12M系統(tǒng)時(shí)鐘
   Port_Init ();                             // 端口初始化

   Timer1_Init ();                           

   Timer3_Init ();                           

   SMBus_Init ();                            // 初始化SMBUS

   EIE1 |= 1;                                // SMBus 中斷允許
   IE |= 0x20;                               // Timer2 中斷允許
   EA = 1;                                  
   while(1){
  
   EEPROM_ByteWrite(0x25, 0xAA);			 //寫(xiě)數(shù)據(jù)0XAA到地址0X25

  
   temp_char = EEPROM_ByteRead(0x25);		 //讀數(shù)據(jù)從地址0X25			 此處設(shè)斷點(diǎn)觀察值變化

  
   EEPROM_ByteWrite(0x20, 0xBB);			 //寫(xiě)數(shù)據(jù)0Xbb到地址0X20

  
   EEPROM_ByteWrite(0x38, 0xCC);			 //寫(xiě)數(shù)據(jù)0Xcc到地址0X38

  
   temp_char = EEPROM_ByteRead(0x20);	     //讀數(shù)據(jù)從地址0X20		   此處設(shè)斷點(diǎn)觀察值變化

   
   temp_char = EEPROM_ByteRead(0x38);	     //讀數(shù)據(jù)從地址0X38		   此處設(shè)斷點(diǎn)觀察值變化

  
   EEPROM_WriteArray(0x100, out_buff, sizeof(out_buff));   	 //寫(xiě)數(shù)組數(shù)據(jù)到地址0X100

  
   EEPROM_ReadArray(in_buff, 0x100, sizeof(in_buff));}		//讀數(shù)據(jù)從地址0X100	 此處設(shè)斷點(diǎn)觀察值變化

}

/*******************************************************************************
鐵電存儲(chǔ)器寫(xiě)字節(jié)函數(shù)
參數(shù):addr 目標(biāo)地址
     dat  要寫(xiě)數(shù)據(jù)
*******************************************************************************/
void EEPROM_ByteWrite( uchar addr, uchar dat )
{
   while (SMB_BUSY);                         
   SMB_BUSY = 1;                            
         
   TARGET = EEPROM_ADDR;                     
   SMB_RW = WRITE;                          
   SMB_SENDWORDADDR = 1;                    
   SMB_RANDOMREAD = 0;                      
                                  
   SMB_ACKPOLL = 1;                          
                                   
   WORD_ADDR = addr;                         

   SMB_SINGLEBYTE_OUT = dat;               

   pSMB_DATA_OUT = &SMB_SINGLEBYTE_OUT;      

   SMB_DATA_LEN = 1;                         
   STA = 1;

}
/**********************************************************************
連續(xù)向鐵電存儲(chǔ)器寫(xiě)入多個(gè)字節(jié)
參數(shù):
 dest_addr  目標(biāo)地址
 src_addr   目標(biāo)數(shù)據(jù)
 len		數(shù)據(jù)長(zhǎng)度
***********************************************************************/
void EEPROM_WriteArray (uchar dest_addr, uchar* src_addr,
                        uchar len)
{
   uchar i;
   uchar* pData = (uchar*) src_addr;
   for( i = 0; i <= len; i++ )
   {
    EEPROM_ByteWrite(dest_addr++, *pData++);
   }

}

/**************************************************************************
函數(shù)功能:從目標(biāo)地址讀數(shù)據(jù)
參數(shù):addr 目標(biāo)地址
***************************************************************************/
uchar EEPROM_ByteRead( uchar addr)
{
   while (SMB_BUSY);                         
   SMB_BUSY = 1;                            
   TARGET = EEPROM_ADDR;                   
   SMB_RW = WRITE;                          
   SMB_SENDWORDADDR = 1;                     
   SMB_RANDOMREAD = 1;                       
   SMB_ACKPOLL = 1;                          
   WORD_ADDR = addr;                         
   pSMB_DATA_IN = &retval;                  
   SMB_DATA_LEN = 1;                      
   STA = 1;
   while(SMB_BUSY);                         
   return retval;

}

/***************************************************************************
函數(shù)功能:從目標(biāo)地址連續(xù)讀出數(shù)據(jù)
參數(shù): dest_addr	保存數(shù)據(jù)的數(shù)組
      src_addr	目標(biāo)地址
	  len		數(shù)據(jù)長(zhǎng)度
****************************************************************************/
void EEPROM_ReadArray (uchar* dest_addr, uchar src_addr,
                       uchar len)
{
   while (SMB_BUSY);                         
   SMB_BUSY = 1;                             
   TARGET = EEPROM_ADDR;                   
   SMB_RW = WRITE;                         
   SMB_SENDWORDADDR = 1;                    
   SMB_RANDOMREAD = 1;                       
   SMB_ACKPOLL = 1;                         
   WORD_ADDR = src_addr;                     
    pSMB_DATA_IN = (unsigned char*) dest_addr;

   SMB_DATA_LEN = len;                      
   STA = 1;
   while(SMB_BUSY);                         
}
/*******************************************************************************
函數(shù)功能:SMBUS初始化
*******************************************************************************/
void SMBus_Init (void)
{
   SMB0CF = 0x5D;                           
                            

   SMB0CF |= 0x80;                           
}

/*******************************************************************************
函數(shù)功能:定時(shí)器3初始化
*******************************************************************************/
void Timer3_Init (void)
{
   TMR3CN = 0x00;                           
   TMR3 = -(SYSCLK/12/40);                  
   TMR3RL = -(SYSCLK/12/40);                
   CKCON &= ~0x40;                         
   TMR3 |= 0x04;                             
}

/*******************************************************************************
函數(shù)功能:定時(shí)器1初始化
*******************************************************************************/
void Timer1_Init (void)
{
   CKCON &= ~0x0B;                          
   TMOD = 0x20;                             

   TH1 = -(SYSCLK/SMB_FREQUENCY/12/3);      

   TL1 = -(SYSCLK/SMB_FREQUENCY/12/3);      

   TR1 = 1;                                 
}

/*******************************************************************************
函數(shù)功能:端口初始化
*******************************************************************************/
void Port_Init (void)
{  P0SKIP    = 0xff;
   P1SKIP    =0x07;
   XBR0 = 0x04;                
   XBR1 = 0x40;                              

   P0MDIN = 0xFF;                            

   P0MDOUT = 0x00;                          
   P0 = 0xFF;                                

   P1MDOUT = 0x00;                         

}

/*******************************************************************************
函數(shù)功能:SMBUS處理函數(shù),這部分函數(shù)按照SMBUS通訊協(xié)議進(jìn)行判斷處理.具體請(qǐng)參見(jiàn)F340數(shù)
         據(jù)手冊(cè)SMBUS通訊部分.
*******************************************************************************/
void SMBus_ISR (void) interrupt 7
{
   bit FAIL = 0;                           
   static char i;                           

   static bit SEND_START = 0;                
   switch (SMB0CN & 0xF0)                   
   {
     
      case SMB_MTSTA:

         SMB0DAT = TARGET;                  
         SMB0DAT |= SMB_RW;                  
         STA = 0;                            
         i = 0; 

	              
         break;

       case SMB_MTDB:
         if (ACK)                            
         {                                   
            if (SEND_START)
            {
               STA = 1;
               SEND_START = 0;
               break;
            }
            if(SMB_SENDWORDADDR)            
            {
               SMB_SENDWORDADDR = 0;         
               SMB0DAT = WORD_ADDR;         

               if (SMB_RANDOMREAD)
               {
                  SEND_START = 1;           
                  SMB_RW = READ;
               }

               break;
            }

            if (SMB_RW==WRITE)               
            {

               if (i < SMB_DATA_LEN)         
               {
                  SMB0DAT = *pSMB_DATA_OUT;  
                  pSMB_DATA_OUT++;           
                  i++;                       
               }
               else
               {
                 STO = 1;                    
                 SMB_BUSY = 0;               
               }
            }
            else {}                         
         }
         else                                
         {
            if(SMB_ACKPOLL)
            {
               STA = 1;                      
            }
            else
            {
               FAIL = 1;                     
            }                                
         }
         break;

    
      case SMB_MRDB:
         if ( i < SMB_DATA_LEN )             
         {
            *pSMB_DATA_IN = SMB0DAT;         
            pSMB_DATA_IN++;                  
            i++;                             
            ACK = 1;                         
                                             

         }

         if (i == SMB_DATA_LEN)             
         {
            SMB_BUSY = 0;                  
            ACK = 0;                        
            STO = 1;                         
         }

         break;

      default:
         FAIL = 1;                           
                                             
         break;
   }

   if (FAIL)                                 
   {
      SMB0CN &= ~0x40;                       
      SMB0CN |= 0x40;
      SMB_BUSY = 0;                          
   }

   SI=0;                                     
}

/*******************************************************************************
函數(shù)功能:25MS后對(duì)SMBUS重新初始化
*******************************************************************************/
void Timer3_ISR (void) interrupt 14
{  
   SMB0CN &= ~0x40;                          
   SMB0CN |= 0x40;                          
   TMR3CN &= ~0x80;                          
   

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
972aa.com艺术欧美| 国产一区二区三区四区五区入口| 天堂va蜜桃一区二区三区漫画版| 免费黄网站欧美| 国产91精品免费| 欧美性xxxxxxxx| 精品久久人人做人人爰| 亚洲国产成人自拍| 天天影视网天天综合色在线播放| 激情欧美日韩一区二区| 99久久精品久久久久久清纯| 在线综合亚洲欧美在线视频| 中文字幕乱码亚洲精品一区| 亚洲成人av一区二区| 韩国av一区二区三区| 95精品视频在线| 精品人伦一区二区色婷婷| 亚洲欧洲另类国产综合| 日韩国产欧美在线播放| 福利视频网站一区二区三区| 欧美日韩三级一区| 中文字幕成人在线观看| 日本美女一区二区| 色综合一个色综合| 国产网红主播福利一区二区| 亚洲电影第三页| 不卡的看片网站| 欧美一二三四在线| 亚洲宅男天堂在线观看无病毒| 国产一区二区三区在线观看免费 | 欧美xxxx老人做受| 亚洲精品久久嫩草网站秘色| 国产美女视频91| 欧美高清dvd| 国产精品国产a级| 极品少妇xxxx精品少妇| 欧美中文字幕一区二区三区| 久久久91精品国产一区二区精品| 午夜精品视频一区| 色婷婷综合久久久久中文一区二区 | 国产日韩欧美在线一区| 日韩黄色免费电影| 在线观看日韩国产| 国产精品久久毛片| 国产呦萝稀缺另类资源| 欧美久久久久久久久中文字幕| 亚洲欧洲日本在线| 粉嫩绯色av一区二区在线观看| 日韩一区二区三区免费看| 一区二区高清免费观看影视大全| 国产精品亚洲综合一区在线观看| 日韩午夜精品视频| 日韩激情一二三区| 欧美日韩aaaaaa| 香蕉加勒比综合久久| 日本韩国精品在线| 亚洲免费观看高清完整| av在线免费不卡| 国产精品免费网站在线观看| 国产一区日韩二区欧美三区| 精品理论电影在线| 免费观看一级特黄欧美大片| 3d动漫精品啪啪1区2区免费| 亚洲成人av一区二区| 欧美三电影在线| 亚洲成人tv网| 91精品欧美福利在线观看 | 欧美一区二区三区视频免费| 亚洲国产精品一区二区www在线| 色综合中文字幕| 一区二区高清视频在线观看| 色94色欧美sute亚洲线路一久 | 在线视频一区二区三区| 亚洲视频精选在线| 不卡av电影在线播放| 中文字幕一区av| 色综合网站在线| 亚洲一区二区三区不卡国产欧美| 欧美探花视频资源| 亚洲午夜私人影院| 91麻豆精品国产自产在线观看一区| 天天操天天综合网| 日韩精品一区二区三区视频播放| 男男gaygay亚洲| 精品sm捆绑视频| 国产91精品免费| 亚洲精品国产一区二区三区四区在线| 色屁屁一区二区| 日韩中文字幕一区二区三区| 欧美一区二区网站| 国产精一区二区三区| 国产精品午夜免费| 色婷婷综合久久| 日韩激情视频网站| 久久久久久9999| 97se狠狠狠综合亚洲狠狠| 亚洲一区在线播放| 日韩欧美激情在线| 成人污污视频在线观看| 亚洲精品国产视频| 91精品国产aⅴ一区二区| 国产综合久久久久久久久久久久| 国产精品人人做人人爽人人添| 色一情一乱一乱一91av| 午夜精品福利一区二区三区av| 精品国产欧美一区二区| 成人18视频在线播放| 亚洲国产精品久久人人爱| 欧美一区二区三区色| 懂色中文一区二区在线播放| 亚洲人成亚洲人成在线观看图片 | 麻豆成人综合网| 国产精品美女久久久久久久久 | 亚洲精品美国一| 欧美不卡在线视频| 99精品视频一区二区三区| 亚洲午夜私人影院| 国产欧美在线观看一区| 欧美亚洲高清一区| 激情五月婷婷综合网| 综合在线观看色| 欧美一区二区性放荡片| av激情亚洲男人天堂| 日本特黄久久久高潮| 国产精品久久久久影院老司| 777奇米成人网| www.亚洲色图| 日本免费新一区视频| 亚洲欧美日韩在线播放| 日韩免费福利电影在线观看| 91美女蜜桃在线| 狠狠色丁香婷综合久久| 亚洲最色的网站| 国产日产亚洲精品系列| 欧美伦理电影网| 91网站黄www| 黄网站免费久久| 石原莉奈在线亚洲二区| 亚洲欧洲另类国产综合| 精品国产成人系列| 欧美色倩网站大全免费| 成人一区二区三区中文字幕| 免费在线看一区| 亚洲综合久久久久| 国产精品国产成人国产三级| 337p日本欧洲亚洲大胆精品| 欧美色倩网站大全免费| 91看片淫黄大片一级在线观看| 国产一区免费电影| 美腿丝袜在线亚洲一区| 亚洲成a人片在线观看中文| 国产精品超碰97尤物18| 日韩欧美一二三四区| 欧美裸体一区二区三区| 色婷婷综合视频在线观看| av成人老司机| 国产成人免费在线观看不卡| 麻豆免费精品视频| 日韩综合在线视频| 亚洲宅男天堂在线观看无病毒| 国产精品久久久久影视| 久久久国产一区二区三区四区小说| 日韩视频一区二区三区在线播放| 在线观看不卡视频| 一本久久综合亚洲鲁鲁五月天| 国产白丝网站精品污在线入口| 精品一区二区三区视频在线观看| 亚洲成人av在线电影| 亚洲自拍与偷拍| 一区二区三区中文字幕精品精品| |精品福利一区二区三区| 国产精品女同一区二区三区| 日本一区二区久久| 国产性做久久久久久| 久久精品无码一区二区三区| 久久精品免视看| 久久精品亚洲国产奇米99| 久久久久久久久一| 久久久美女毛片| 欧美经典一区二区三区| 久久久久久免费毛片精品| 国产亚洲制服色| 欧美国产欧美亚州国产日韩mv天天看完整| 久久欧美中文字幕| 久久久国产精品午夜一区ai换脸| 国产午夜三级一区二区三| 亚洲国产精品成人综合色在线婷婷| 欧美国产精品v| 亚洲欧美综合网| 亚洲精品免费电影| 亚洲国产精品麻豆| 免费成人美女在线观看.| 老司机精品视频线观看86| 极品美女销魂一区二区三区免费| 国产一区二区三区av电影 | 亚洲欧美一区二区视频| 亚洲精品国产无套在线观| 亚洲国产精品视频| 秋霞成人午夜伦在线观看| 国产自产v一区二区三区c|