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

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

?? at24c02.#2

?? C8051F.rar
?? #2
字號:
//參考程序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一区二区三区免费野_久草精品视频
在线观看91视频| 日韩激情在线观看| 国产欧美一区二区三区网站 | 欧美中文字幕不卡| 日本精品视频一区二区| 日本精品免费观看高清观看| 色先锋久久av资源部| 91激情在线视频| 欧美午夜精品久久久久久超碰| 色狠狠av一区二区三区| 在线观看日韩电影| 欧美日韩一区二区欧美激情| 欧美三级电影一区| 欧美裸体bbwbbwbbw| 在线播放欧美女士性生活| 3d动漫精品啪啪一区二区竹菊| 日韩一区二区精品在线观看| 日韩欧美视频在线| 久久综合给合久久狠狠狠97色69| 国产亚洲欧洲一区高清在线观看| 国产女人18毛片水真多成人如厕| 国产精品视频第一区| 日韩理论在线观看| 亚洲一区av在线| 日本特黄久久久高潮| 寂寞少妇一区二区三区| 国产aⅴ综合色| 在线这里只有精品| 日韩欧美久久一区| 欧美极品另类videosde| 亚洲青青青在线视频| 日本视频中文字幕一区二区三区| 久久99久久99精品免视看婷婷| 国产九九视频一区二区三区| av在线不卡电影| 91精品国产综合久久福利软件 | 亚洲欧洲在线观看av| 亚洲成av人在线观看| 青青草视频一区| 国产精品99久久久久| 色综合欧美在线| 日韩欧美国产不卡| 中文字幕不卡一区| 婷婷国产v国产偷v亚洲高清| 国产九色精品成人porny| 色播五月激情综合网| 日韩视频在线你懂得| 国产精品短视频| 奇米影视一区二区三区| 成人a免费在线看| 欧美精品乱人伦久久久久久| 国产日韩高清在线| 亚洲成av人在线观看| 成人免费视频免费观看| 欧美精三区欧美精三区| 亚洲国产成人私人影院tom| 午夜伦理一区二区| 成人av第一页| 日韩欧美一级在线播放| 一区二区三区中文免费| 国产精品一卡二卡在线观看| 欧美丝袜自拍制服另类| 国产嫩草影院久久久久| 日韩激情av在线| 91一区二区三区在线播放| 精品国产乱码91久久久久久网站| 亚洲精品中文字幕乱码三区| 激情综合色丁香一区二区| 在线观看国产91| 国产精品久久久久一区| 久久99精品久久久久久动态图| 91精品福利视频| 国产精品免费aⅴ片在线观看| 免费的成人av| 欧美午夜影院一区| 亚洲欧美一区二区视频| 韩国欧美一区二区| 日韩一级黄色片| 亚洲亚洲精品在线观看| 99久久伊人网影院| 中文字幕欧美区| 国产精品亚洲第一| 欧美电影免费观看完整版| 亚洲国产日韩综合久久精品| bt7086福利一区国产| 久久久久久久久久美女| 美女久久久精品| 欧美一区二区三区爱爱| 亚洲成人精品在线观看| 91国模大尺度私拍在线视频| 17c精品麻豆一区二区免费| 国产不卡一区视频| 久久久不卡影院| 国内精品视频666| 精品国产91久久久久久久妲己| 国产一区亚洲一区| 精品久久免费看| 久久国产婷婷国产香蕉| 日韩视频免费观看高清完整版 | 日韩va欧美va亚洲va久久| 欧美亚洲综合另类| 亚洲免费三区一区二区| 一本一道综合狠狠老| 亚洲欧美另类综合偷拍| 91丝袜美女网| 国产成人小视频| 国产亚洲一区二区在线观看| 国产一区二区伦理| 中文字幕av在线一区二区三区| 国产成人免费在线视频| 欧美国产一区在线| 丁香亚洲综合激情啪啪综合| 国产精品三级在线观看| 成人av在线影院| 亚洲少妇最新在线视频| 日本韩国一区二区三区视频| 一区二区三区在线观看网站| 欧美午夜视频网站| 美脚の诱脚舐め脚责91| 国产亚洲欧美日韩俺去了| 国产+成+人+亚洲欧洲自线| 国产精品国产a| 色吊一区二区三区| 日本在线不卡一区| 日韩精品一区二区三区四区| 国产曰批免费观看久久久| 国产日韩v精品一区二区| 不卡一区二区中文字幕| 亚洲免费观看视频| 91精品国产一区二区三区| 久久电影网电视剧免费观看| 欧美国产国产综合| 91黄色在线观看| 免费久久99精品国产| 国产日产亚洲精品系列| 色综合色狠狠综合色| 视频一区视频二区中文| 久久嫩草精品久久久精品| zzijzzij亚洲日本少妇熟睡| 亚洲国产欧美一区二区三区丁香婷| 欧美肥妇free| 国产ts人妖一区二区| 一区二区三区免费| 日韩免费性生活视频播放| 国产成人午夜精品5599| 夜夜揉揉日日人人青青一国产精品| 91精品欧美综合在线观看最新| 国产白丝精品91爽爽久久| 亚洲一区影音先锋| 国产亚洲欧美中文| 欧美视频在线观看一区二区| 久久爱www久久做| 亚洲精品视频在线看| 日韩精品一区二区三区老鸭窝| 99久久综合精品| 极品销魂美女一区二区三区| 亚洲欧美aⅴ...| 久久综合色婷婷| 欧美日韩一区二区三区四区| 国产一区二区三区电影在线观看| 亚洲综合区在线| 久久久精品综合| 欧美日韩dvd在线观看| 国产盗摄女厕一区二区三区| 香蕉乱码成人久久天堂爱免费| 久久久五月婷婷| 欧美肥妇bbw| 色婷婷亚洲婷婷| 国产成人免费在线观看| 日韩精品每日更新| 亚洲精品日韩一| 国产亚洲精品福利| 日韩一级高清毛片| 欧美性大战久久| 色综合天天视频在线观看| 国产一区二区中文字幕| 日韩在线一区二区三区| 亚洲男人的天堂一区二区| 久久久精品免费网站| 日韩小视频在线观看专区| 91福利在线观看| caoporn国产一区二区| 精品一区免费av| 青青国产91久久久久久| 亚洲一区视频在线| 亚洲精品五月天| 一区二区中文字幕在线| 国产欧美精品区一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美日韩中文另类| 色成人在线视频| 色综合久久66| 91浏览器在线视频| 成人国产精品免费观看视频| 国产精品一区二区在线观看不卡 | 一区二区三区欧美在线观看| 亚洲国产精品成人综合色在线婷婷 | 香蕉av福利精品导航| 亚洲精品写真福利| 亚洲欧美日韩久久精品|