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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? at24c02.#1

?? C8051F.rar
?? #1
字號:
//參考程序A:AT24C02.C   SMBUS  24C02 讀/寫  2005.12.25
//程序功能:在AT24C02的地址00---3FH中依次存入連續的數據10H--4FH
//再依次從地址00---3FH中讀出數據并通過SAA1064驅動四位數碼管顯示出來.
//第一,二位數碼管顯示地址,第三,四位數碼管顯示存入該地址內的數據.
//顯示格式:
//存儲器的地址	存儲器單元的內容
//00H---3FH	40H---4FH
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
#define  WRITE       0x00                 //  SMBUS尋址字節的寫標志位
#define  READ        0x01                 //  SMBUS尋址字節的讀標志位
// Device addresses
#define  CHIP_A        0xA0                //AT24C02器件自身的尋址字節
#define  CHIP_B        0x70                //AT24C02器件自身的尋址字節
#define  SMB_BUS_ERROR  0x0  //總線錯誤                                  
  //MT為主發送器,MR為主接收器
#define  SMB_START      0x08              // (MT & MR) 發送起始位
#define  SMB_RP_START   0x10              // (MT & MR) 重復起始位
#define  SMB_MTADDACK   0x18              // (MT) 發送從地址 + W 后收到ACK
#define  SMB_MTADDNACK  0x20              // (MT) 發送從地址 + W 后收到NACK
#define  SMB_MTDBACK    0x28              // (MT) 發送數據后收到ACK
#define  SMB_MTDBNACK   0x30              // (MT) 發送數據后收到NACK
#define  SMB_MTARBLOST  0x38              //(MT)競爭失敗
#define  SMB_MRADDACK   0x40              // (MR) 發送從地址 + R 后收到 ACK
#define  SMB_MRADDNACK  0x48              // (MR) 發送從地址 + R 后收到 NACK
#define  SMB_MRDACK     0x50              // (MR) 收到數據字節 后已發送ACK                                    
#define  SMB_MRDBNACK   0x58              // (MR) 收到數據字節 后已發送NACK      
char DATA0[6]={0x17,0x3f,0x06,0x5b,0x4f}; 
char	xdata DATA2[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
char SLAW,DATA1[64];                    // 保存從地址+ WRITE 位
char SLAR;                              // 保存從地址+ WRITE 位
char WORD,WORDADR;                      // 保存被收/發的數據字節
char xdata sendnumber;                  // 保存被收/發的數據字節的數目        
//unsigned char xdata  WORDADR;         //保存被傳送的數據在24C02中的首地址.
unsigned char xdata SENDMODE;           //SENDMODE作讀/寫控制字                       
unsigned char xdata  i,j,k,sla,n,m,p;
bit SM_BUSY;           //忙碌標志位                                        void sleep_ms( unsigned int count);       //延時
void SYSCLK_Init (void);                  //系統時鐘初始化
void DISPLAY(void);                       //通過SAA1064驅動四位數碼管顯示
void SMBUS_ISR (void);                    //中斷服務程序
char SLA_READ(char chip,char wordadr,char number);
void SLA_SEND(char chip,char wordadr, char word,char number);
void sleep_ms(unsigned int count);

void MAIN (void)
{
   unsigned char check;              // 測試用的工作變量
   WDTCN = 0xde;                          // 關閉看們狗
   WDTCN = 0xad;
   SYSCLK_Init();                         // 時鐘初始化
   XBR0 = 0x01;                           // 選交叉開關	:P0.0-->SDA,P0.1-->CLK
   XBR2 = 0x40;                           // 交叉開關使能
   SMB0CN = 0x44;                         // 允許SMBUS, 應答返回AA(低電平
   SMB0CR = 0xc9;                   // SMBus 速率= 100 kHz,系統時鐘為11.0592MHZ
   EIE1 |= 2;                             // SMBus 中斷使能
   EA = 1;                                // 開中斷
   SM_BUSY = 0;                           //  SM_BUSY是忙碌標志位
   SI = 0;                                //SM_BUSY中斷標志位
   //寫64個連續的數據到AT24C02中去并依次存放.
//64個連續的數據的存放地址:00H--3fH.第一個數為10H,最后一個數為4FH.
   i=0x10;
   sla=CHIP_A;
  for  (j=0;j<0x40;j++)            //向24C02的000地址依次寫入64個數據,
  {                                //64個數據的數值從10H---4FH   
   SLA_SEND(sla, j, i,0x01);       // 寫入AT24C02
   i++;
   }
  for  (j=0;j<0x40;j++)          //從24C02的00地址依次連續讀出64個數據,
  {                              //64個數據的數值應該是從10H---3FH(連續存放)
   check=SLA_READ(sla, j,0x01);     
   DATA1[j]=check;               //讀出來的數據依次連續存入數組DATA[]中
   }
   for  (j=0;j<0x40;j++)     //把要顯示的兩位地址和兩位數據存入DATA2[]中           
  { i=DATA1[j];              
    k=i&0x0f;
	m=DATA2[k];              //j為地址,i=DATA1[j]=check,i地址j中存放的數據
	DATA0[4]=m;
	k=i&0xf0;
	k=k>>4;
    n=DATA2[k];
	DATA0[3]=n;
    k=j&0x0f;
	m=DATA2[k];
	DATA0[2]=m;
	k=j&0xf0;
	k=k>>4;
    n=DATA2[k];
	DATA0[1]=n;
	DISPLAY();
    sleep_ms(1000);
	} 
   while(1);
 }
void  DISPLAY (void)
{
  sla=CHIP_B;
   	DATA0[0]=0x17;              //0x17是SAA1064的控制字.
  for  (p=0;p<0x5;p++)
  {i=DATA0[p];	               //向SAA1064寫入五個數:SAA1064的控制字一字節,
  SLA_SEND(sla, p, i,0x01);     // 地址2字節,數據2字節.共五字節
}
}
 void SYSCLK_Init (void)
{
   int i;                               // i 用于延時計數
   OSCXCN = 0x67;                       // 先選擇外捕振蕩器,頻率位11.0592MHZ
   for (i=0; i < 256; i++) ;            // 再延時(>1ms),
   while (!(OSCXCN & 0x80)) ;           // 等待外部晶振穩定
   OSCICN = 0x88;                       // 選擇外部晶振,允許時鐘丟失檢測
}
void SLA_SEND(char chip, char wordadr, char word,char number)
{
  SENDMODE=0x01;
   sendnumber=number+1;
   while(SM_BUSY);               // 若SMBUS忙碌就等待
   SM_BUSY = 1;                  // 置SM_BUSY位(忙碌標志位)為1                
   SLAW = (chip| WRITE);         // COMMAND = 7 個地址位 + 一位WRITE.
   WORD = word;                  // WORD中存放要送到24C02中去的數據(8位)
   WORDADR = wordadr;            // OP_CODE 中存放被傳送數據送入24C02的首地址.
   STO = 0;
   STA = 1;                         // 啟動數據傳輸
   while(SM_BUSY);                  // 等待傳輸完成
}
char SLA_READ(char chip, char wordadr,char number){
   sendnumber=number;
  SENDMODE=0;
   while(SM_BUSY);                  // 若SMBUS忙碌就等待
   SM_BUSY = 1;                     // 置SM_BUSY位(忙碌標志位)為1 
   SLAR = (chip| READ);             // COMMAND = 7 個地址位 + 一位READ
   WORDADR = wordadr;                // OP_CODE 中存放從24C02讀出數據的的首地址.
   STO = 0;
   STA = 1;                          // 啟動傳輸
   while(SM_BUSY);                   // 等待傳輸完成 
   return WORD;                      //返回讀出來的數據(一個字節)
}
void SMBUS_ISR (void) interrupt 7    //中斷服務程序
{
   switch (SMB0STA){                 // 根據中斷狀態碼跳轉
                                     //(SMB0STA 是中斷狀態寄存器)
       case SMB_START:	             //0x08, (MT & MR) 發送起始位
         SMB0DAT = SLAW ;            // 裝入被訪問的從芯片的寫地址
         STA = 0;                    // 人工清除 STA 位
         SI = 0;                     // 清除中斷標志位
         break;
       case SMB_RP_START:	         //0x10,(MT & MR) 重復發送起始位
         SMB0DAT = SLAR;             // 裝入被訪問的從芯片的讀地址
         STA = 0;                    // 人工清除 STA 位
         SI = 0;                     // 清除中斷標志位
         break;
       case SMB_MTADDACK:            //0x18 ,(MT) 發送從地址 + W 后收到ACK
         SMB0DAT = WORDADR;
         SI = 0;                     // 清除中斷標志位
         break;
       case SMB_MTADDNACK:     	    //0x20,(MT) 發送從地址 + W 后收到NACK
         STO = 1;
         STA = 1;
         SI = 0;                    // 清除中斷標志位
         break;
      case SMB_MTDBACK:		        //0x28,(MT) 發送數據后收到ACK
         switch (SENDMODE){         // 檢查低1位
       case 1:
			   sendnumber--;
			   if(sendnumber)
			   SMB0DAT = WORD;
			   else{
			   		STO=1;
				   	SM_BUSY=0;
				}
              break;             
       case 0:
			     STO = 0;
               STA = 1;
               break;            
       default:              
               STO = 1;
               SM_BUSY = 0;
               break;
         }
         SI = 0;
         break;
      case SMB_MTDBNACK:	//0x30
         STO = 1;
         STA = 1;
         SI = 0;                          // 清除中斷標志
         break;
      case SMB_MRADDACK:	//0x40
         AA = 0;                        
         SI = 0;
         break;
   	  case SMB_MRADDNACK:	//0x48
         STO = 0;
         STA = 1;
         SI = 0;
         break;
     case SMB_MRDBNACK:	    //0x58
         WORD = SMB0DAT;
         STO = 1;
         SM_BUSY = 0;
         AA = 1;                          
         SI = 0;
         break;
      default:
         STO = 1;
         SM_BUSY = 0;
         break;
      }
}
/*延時子程序*/
void sleep_ms(unsigned int count)
{
  unsigned int ii,jj;
  for(ii=0;ii<count;ii++)
    {
      for(jj=0;jj<250;jj++)
	  _nop_();	
	   _nop_();	
	    _nop_();	
		 _nop_();			
    }	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线欧美小视频| 色老汉一区二区三区| 色哟哟精品一区| 精品奇米国产一区二区三区| 亚洲精品ww久久久久久p站| 国内精品免费在线观看| 欧美日韩一区二区三区在线看 | 亚洲成人你懂的| 国产精品资源在线观看| 欧美日本一区二区三区| 亚洲欧美另类久久久精品| 风流少妇一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲福利电影网| 91九色最新地址| 亚洲色图制服诱惑| av在线不卡免费看| 国产精品网站一区| 国产主播一区二区| 久久婷婷国产综合国色天香| 日本aⅴ免费视频一区二区三区| 欧美性猛片xxxx免费看久爱| 亚洲欧洲综合另类| 91久久精品网| 午夜激情久久久| 欧美在线看片a免费观看| 精品久久久久久无| 免费高清成人在线| 日韩三级伦理片妻子的秘密按摩| 亚洲h动漫在线| 欧美性生活久久| 人妖欧美一区二区| 精品久久久久av影院| 黄一区二区三区| 国产精品三级电影| 国产成人av一区二区三区在线观看| 欧美变态口味重另类| 国产在线精品一区二区夜色| 久久久久久久久伊人| 国产一区二区三区在线观看免费| 国产免费成人在线视频| 不卡电影一区二区三区| 亚洲欧美另类图片小说| 在线免费观看成人短视频| 性欧美疯狂xxxxbbbb| 51久久夜色精品国产麻豆| 蜜臀久久久99精品久久久久久| 欧美成人一区二区三区| 日韩午夜电影av| 日本中文字幕一区| 精品国产三级电影在线观看| 国产成人在线电影| 亚洲人成7777| 日韩三级视频在线看| 国产二区国产一区在线观看| 国产精品网站一区| 在线播放视频一区| 国产成人8x视频一区二区| 亚洲视频免费看| 日韩欧美在线综合网| 国产成人av自拍| 亚洲第四色夜色| 国产亚洲va综合人人澡精品| 在线一区二区三区| 精品亚洲欧美一区| 伊人色综合久久天天人手人婷| 91精品国产免费久久综合| 成人黄色小视频在线观看| 亚洲成人免费影院| 中文字幕乱码亚洲精品一区| 6080亚洲精品一区二区| 成人午夜视频网站| 日本最新不卡在线| 亚洲激情网站免费观看| 久久九九全国免费| 51久久夜色精品国产麻豆| 99精品视频在线观看| 精品亚洲porn| 午夜精品影院在线观看| 中文字幕亚洲一区二区av在线| 91精品麻豆日日躁夜夜躁| 99国产精品视频免费观看| 激情综合五月婷婷| 视频一区欧美精品| 亚洲欧美中日韩| www.日本不卡| 日韩制服丝袜先锋影音| 欧美国产精品一区二区| 欧美精品久久天天躁| 成人av在线资源| 韩国av一区二区三区四区| 亚洲va欧美va人人爽| 亚洲美女屁股眼交| 国产精品欧美综合在线| 精品少妇一区二区三区| 欧美精选一区二区| 91福利精品第一导航| 不卡av电影在线播放| 国产成人精品在线看| 麻豆91免费观看| 青青草精品视频| 日本中文一区二区三区| 日韩黄色片在线观看| 丝袜美腿亚洲一区| 亚洲一区av在线| 亚洲大片一区二区三区| 亚洲国产aⅴ天堂久久| 亚洲影视资源网| 亚洲电影第三页| 美美哒免费高清在线观看视频一区二区| 欧美精品久久久久久久久老牛影院| av在线不卡电影| a美女胸又www黄视频久久| 成人中文字幕在线| 国产成人自拍在线| 成人免费视频免费观看| 国产凹凸在线观看一区二区| 国产麻豆欧美日韩一区| 国产福利一区二区三区视频| 国内成人自拍视频| 国产成人免费视| 91亚洲精品一区二区乱码| 91久久精品一区二区三区| 欧美年轻男男videosbes| 欧美中文一区二区三区| 欧美一区二区三区日韩视频| 日韩一级片在线播放| proumb性欧美在线观看| 欧美精品一区视频| 精品区一区二区| 国产欧美一区二区三区网站| 欧美精彩视频一区二区三区| 国产精品国产三级国产aⅴ原创| 国产精品午夜免费| 亚洲综合免费观看高清在线观看| 亚洲精品美国一| 秋霞电影网一区二区| 经典三级在线一区| 99视频精品在线| 欧美另类z0zxhd电影| 久久综合久久99| 最好看的中文字幕久久| 日韩激情在线观看| 国产一区二区三区香蕉| 一本一本大道香蕉久在线精品| 777亚洲妇女| 中文字幕成人在线观看| 丝袜美腿亚洲综合| 国产成人欧美日韩在线电影| 欧美丝袜第三区| 一本到不卡精品视频在线观看| 欧美视频在线观看一区二区| 91精品婷婷国产综合久久| 欧美一区二区免费| 日韩美女久久久| 久久精品999| 在线免费观看日韩欧美| 国产欧美视频一区二区| 亚洲自拍欧美精品| 成人丝袜18视频在线观看| 欧美猛男男办公室激情| 国产精品免费人成网站| 丝袜美腿一区二区三区| 91视频在线观看免费| 精品国产污网站| 视频在线在亚洲| 色中色一区二区| 中文字幕+乱码+中文字幕一区| 日本不卡不码高清免费观看| 日本福利一区二区| 国产欧美综合色| 日本一区中文字幕| 99re热这里只有精品免费视频| 日韩亚洲欧美中文三级| 偷拍一区二区三区四区| 色欧美片视频在线观看| 国产欧美一区二区在线观看| 日韩精品电影一区亚洲| 国产欧美日韩精品一区| 蜜臀久久久99精品久久久久久| 在线精品视频小说1| 《视频一区视频二区| 国产精品一卡二卡| 久久精品一区二区三区不卡牛牛| 天天av天天翘天天综合网| 一本到高清视频免费精品| 国产精品第13页| 成人免费av资源| 国产午夜精品一区二区三区视频| 极品尤物av久久免费看| 日韩午夜av电影| 男女性色大片免费观看一区二区| 欧美亚洲高清一区| 亚洲一区二区精品久久av| 91国在线观看| 亚洲午夜一二三区视频| 欧美老人xxxx18| 美女在线视频一区| 精品奇米国产一区二区三区| 国内外成人在线|