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

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

?? hi2c_c51.c

?? LPC900單片機(jī)設(shè)計(jì)方案--自動(dòng)響鈴實(shí)驗(yàn)系統(tǒng)
?? C
字號(hào):
/*******************************************************************
*				P89LPC932硬件I2C軟件包(主)
* 1  使用I2C總線軟件包時(shí)P1.2,P1.3切勿寫(xiě)為0,并要設(shè)置為開(kāi)漏輸出。
* 2  總線定義為P1.2=SCL,P1.3=SDA,需外接上拉電阻2-10k。
* 3  相應(yīng)寄存器:
*    地址寄存器  I2ADR   用于存放自身從地址(從方式時(shí)才有用)
*    數(shù)據(jù)寄存器  I2DAT   接收/發(fā)送數(shù)據(jù)用
*    控制寄存器  I2CON   用于硬件I2C的設(shè)置、使能、啟動(dòng)、結(jié)束,
*                       應(yīng)答控制,中斷標(biāo)志等。
*    狀態(tài)寄存器  I2STAT  指示I2C總線的操作狀態(tài)碼,高5位有效,
*                       若I2C中斷志置位,可查詢此寄存器判斷
*                        總線情況。
*    SCL占空比寄存器  I2SCLH、I2SCLL  設(shè)置SCL的頻率發(fā)生。
*                        
*    此軟件包是以查詢方式完成各種總線操作的,在使用前應(yīng)對(duì)總線進(jìn)行檢查,并
* 使用看門(mén)狗,以防等待總線而造成死機(jī)。
*	 文件名:HI2C_C51.C
*                                  更新時(shí)間:2002.11.05
*******************************************************************/

/* 定義LPC932的I2C相關(guān)寄存器的定義 */
sfr		I2ADR  = 0xDB;
sfr  	I2DAT  = 0xDA;
sfr		I2CON  = 0xD8;
sfr		I2STAT = 0xD9;
sfr		I2SCLH = 0xDD;
sfr		I2SCLL = 0xDC;
sbit	STA	   = I2CON^5;
sbit	SI	   = I2CON^3;

#define uchar 	unsigned char
#define GENERATE_STOP        0x54     /* 置位 STO, 復(fù)位 STA 、 SI          */
#define RELEASE_BUS_ACK      0x44     /* 復(fù)位 STO,STA,SI 并置位  AA (ack)  */
#define RELEASE_BUS_NOACK    0x40     /* 復(fù)位 STO,STA,SI 并置位 AA (noack) */
#define RELEASE_BUS_STA      0x64     /* 起動(dòng)總線/重新起動(dòng)總線, 置位 STA   */


/*******************************************************************
*                  申請(qǐng)總線
* 功能:進(jìn)行I2C總線的初始化--包括時(shí)鐘選擇,I2C使能,發(fā)送起始信號(hào)等等。
*       I2EN為1,設(shè)置為主機(jī);CRSEL位為0,使用內(nèi)部SCL發(fā)生器。
*******************************************************************/
void GetBus()
{ I2SCLH = 15;				/* 設(shè)置SCL高電平的PCLK周期數(shù) 				    */
  I2SCLL = 15;              /* 設(shè)置SCL低電平的PCLK周期數(shù),6MHz時(shí)為100Kbit/S */
  /* 申請(qǐng)成為主機(jī),起動(dòng)總線。使用內(nèi)部SCL發(fā)生器,I2EN和AA置位。              */
  I2CON = RELEASE_BUS_STA; 	
  while( SI==0 );        	/* 等待起始位的發(fā)送                             */
}


/*******************************************************************
*                    發(fā)送數(shù)據(jù)函數(shù)
* 功能:用于向總線發(fā)送數(shù)據(jù) 
* 入口參數(shù):ACC   待發(fā)送的數(shù)據(jù)                   
*******************************************************************/
void SendByte(uchar c)
{ I2DAT = c;
  I2CON = RELEASE_BUS_ACK;    	/* 清除SI位等等   		*/
  while( SI==0 );        		/* 等待數(shù)據(jù)的發(fā)送 		*/
}



/*******************************************************************
*                    向無(wú)子地址器件發(fā)送字節(jié)數(shù)據(jù)函數(shù)               
* 功能:從啟動(dòng)總線到發(fā)送地址,數(shù)據(jù),結(jié)束總線的全過(guò)程。
* 入口參數(shù):sla		從器件地址
*           c		待發(fā)送的數(shù)據(jù)
* 出口參數(shù):返回1表示操作成功,否則操作有誤。
********************************************************************/
bit ISendByte(uchar sla, uchar c)
{ GetBus();                 	/* 啟動(dòng)總線                    */
  SendByte(sla);            	/* 發(fā)送器件地址,并接收應(yīng)答位  */
  if( I2STAT!=0X18 )			/* 無(wú)從機(jī)應(yīng)答則退出操作        */
  { I2CON = GENERATE_STOP;
    return(0);
  }

  SendByte(c);              	/* 發(fā)送數(shù)據(jù)                    */
  if( I2STAT!=0X28 )
  { I2CON = GENERATE_STOP;
    return(0);
  }
  I2CON = GENERATE_STOP;        /* 結(jié)束總線                    */ 
  return(1);
}



/*******************************************************************
*                    向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)函數(shù)                 
* 功能:從啟動(dòng)總線到發(fā)送地址,子地址,數(shù)據(jù),結(jié)束總線的全過(guò)程。
* 入口參數(shù);sla		從器件地址
*           suba    子地址
*           s       發(fā)送內(nèi)容的指針
*           no      發(fā)送字節(jié)數(shù)
* 出口參數(shù):返回1表示操作成功,否則操作有誤。
********************************************************************/
bit ISendStr(uchar sla, uchar suba, uchar *s, uchar no)
{ uchar i;

  GetBus();                 /* 啟動(dòng)總線               	*/
  SendByte(sla);            /* 發(fā)送器件地址           	*/
  if( I2STAT!=0X18 )
  { I2CON = GENERATE_STOP;
    return(0);
  }

  SendByte(suba);           /* 發(fā)送器件子地址 			*/
  if( I2STAT!=0X28 )
  { I2CON = GENERATE_STOP;
    return(0);
  }
     
  for(i=0; i<no; i++)
  { SendByte(*s);           /* 發(fā)送數(shù)據(jù)					*/
    if( I2STAT!=0X28 )
	{ I2CON = GENERATE_STOP;
	  return(0);
	}
    s++;
  } 

  I2CON = GENERATE_STOP;    /* 結(jié)束總線					*/ 
  return(1);
}



/*******************************************************************
*                    向無(wú)子地址器件讀字節(jié)數(shù)據(jù)函數(shù)                
*功能:從啟動(dòng)總線到發(fā)送地址,讀數(shù)據(jù),結(jié)束總線的全過(guò)程。
*入口參數(shù):sla		從器件地址
*          c        讀出的數(shù)據(jù)(地址傳送)
* 出口參數(shù):函數(shù)返回1表示操作成功,否則操作有誤。
********************************************************************/
bit IRcvByte(uchar sla, uchar *c)
{ GetBus();              	/* 啟動(dòng)總線					     */
  SendByte(sla+1);        	/* 發(fā)送器件地址				     */   
  if( I2STAT!=0X40 )
  { I2CON = GENERATE_STOP;
    return(0);
  }
  I2CON = RELEASE_BUS_NOACK; /* 接收一字節(jié)數(shù)據(jù)即發(fā)送非應(yīng)答位 */
  while( SI==0 );            /* 等待接收數(shù)據(jù)				 */  
  if( I2STAT!=0X58 )
  { I2CON = GENERATE_STOP;
    return(0);
  }
  *c = I2DAT;                /* 讀取數(shù)據(jù)					 */
  I2CON = GENERATE_STOP;     /* 結(jié)束總線					 */   
  return(1);
}



/*******************************************************************
*                    向有子地址器件讀取多字節(jié)數(shù)據(jù)函數(shù)                
*功能:從啟動(dòng)總線到發(fā)送地址,子地址,讀數(shù)據(jù),結(jié)束總線的全過(guò)程。
*入口參數(shù):sla 		從器件地址
*          suba		子地址
*		   s	    讀出的內(nèi)容存儲(chǔ)區(qū)的指針
*          no		讀no個(gè)字節(jié)。
*出口參數(shù):函數(shù)返回1表示操作成功,否則操作有誤。
********************************************************************/
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
{ uchar i;

  GetBus();                	/* 啟動(dòng)總線						*/
  SendByte(sla);            /* 發(fā)送器件地址					*/
  if( I2STAT!=0X18)
  { I2CON = GENERATE_STOP;
    return(0);
  }
  SendByte(suba);           /* 發(fā)送器件子地址				*/
  if( I2STAT!=0X28 )
  { I2CON = GENERATE_STOP;
    return(0);
  }

  I2CON = RELEASE_BUS_STA;  /* 重新啟動(dòng)總線					*/
  while( SI==0 );
  SendByte(sla+1);
  if( I2STAT!=0X40 )
  { I2CON = GENERATE_STOP;
    return(0);
  } 
   
  for(i=0; i<no-1; i++)
  { I2CON = RELEASE_BUS_ACK;   /* 接收一字節(jié)數(shù)據(jù)并發(fā)送應(yīng)答位		*/
    while( SI==0 );            /* 等待接收數(shù)據(jù)						*/  
    if( I2STAT!=0X50 )
	{ I2CON = GENERATE_STOP;
	  return(0);
	}
    *s = I2DAT;                /* 讀取數(shù)據(jù)							*/ 
    s++;
  } 
  I2CON = RELEASE_BUS_NOACK;   /* 接收最后一字節(jié)數(shù)據(jù)并發(fā)送非應(yīng)答位	*/
  while( SI==0 );  
  *s = I2DAT;
  I2CON = GENERATE_STOP;       /* 結(jié)束總線							*/ 
  return(1);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本一区二区三区四区| 337p日本欧洲亚洲大胆精品 | 亚洲成av人片在线| 久久免费午夜影院| 欧美男女性生活在线直播观看| 韩国女主播成人在线观看| 洋洋成人永久网站入口| 国产欧美一区二区精品性色| 欧美精品 国产精品| aaa欧美色吧激情视频| 国产在线视频不卡二| 亚洲成a人片综合在线| 综合网在线视频| 久久免费看少妇高潮| 日韩一区二区三区精品视频| 在线精品亚洲一区二区不卡| 不卡一区中文字幕| 黄色资源网久久资源365| 天堂va蜜桃一区二区三区 | 欧美xxxx老人做受| 欧美三级韩国三级日本三斤| 91一区二区在线观看| 高清不卡一区二区在线| 久久99深爱久久99精品| 午夜精彩视频在线观看不卡| 亚洲婷婷在线视频| 日本一区二区三区高清不卡| 欧美一级黄色大片| 欧美日韩亚洲综合在线 | 国产偷v国产偷v亚洲高清| 日韩欧美自拍偷拍| 欧美精品高清视频| 欧美日产在线观看| 欧美伦理影视网| 在线精品视频小说1| 欧美午夜精品久久久久久超碰| 色综合久久久久| 色嗨嗨av一区二区三区| 91免费观看视频在线| 99天天综合性| 色婷婷狠狠综合| 99久久久无码国产精品| 不卡视频一二三四| www.在线欧美| 99riav一区二区三区| 色www精品视频在线观看| 欧洲精品一区二区| 欧美体内she精视频| 欧美美女一区二区在线观看| 欧美群妇大交群中文字幕| 欧美日韩1区2区| 欧美电影免费观看高清完整版在线观看 | 裸体一区二区三区| 久久精品国产久精国产| 经典三级在线一区| 国产成人8x视频一区二区| 国产91精品免费| 91美女视频网站| 欧美午夜电影网| 91精品国产综合久久久久久久| 日韩精品中午字幕| 国产精品青草久久| 亚洲激情网站免费观看| 日本女人一区二区三区| 国产精品亚洲成人| 日本乱人伦aⅴ精品| 在线电影院国产精品| 精品国产污网站| 中文字幕亚洲在| 日韩精品电影一区亚洲| 国产激情视频一区二区在线观看| eeuss影院一区二区三区| 欧美偷拍一区二区| 久久―日本道色综合久久| 亚洲欧美日韩在线| 老司机精品视频一区二区三区| 成人影视亚洲图片在线| 在线视频你懂得一区二区三区| 91麻豆精品国产91久久久久久久久 | 欧美久久一区二区| 久久女同性恋中文字幕| 亚洲精品欧美在线| 美国一区二区三区在线播放| 国产成人高清在线| 欧美性色综合网| 亚洲精品一区二区三区蜜桃下载| 中文字幕欧美一| 麻豆成人在线观看| 色婷婷av一区二区三区之一色屋| 欧美一区二区三区免费| 国产精品久久久久久久岛一牛影视| 国产福利不卡视频| 欧美日韩在线播放一区| 国产亚洲一二三区| 日韩高清不卡在线| 91丨九色丨尤物| 久久综合久久鬼色| 亚洲成人动漫av| www.久久久久久久久| 日韩一区二区高清| 亚洲综合视频在线观看| 国产成人h网站| 日韩三级.com| 亚洲国产综合91精品麻豆| 国产成人午夜精品影院观看视频 | 久久av资源站| 欧美剧情电影在线观看完整版免费励志电影| 久久九九久精品国产免费直播| 亚洲一区二区欧美| 成人黄色国产精品网站大全在线免费观看| 欧美人与z0zoxxxx视频| 亚洲精品中文字幕乱码三区| 国产精品综合视频| 欧美变态tickle挠乳网站| 亚洲网友自拍偷拍| 91视频精品在这里| 国产女同性恋一区二区| 久久草av在线| 日韩色视频在线观看| 婷婷开心激情综合| 欧美亚一区二区| 亚洲伊人色欲综合网| 97精品视频在线观看自产线路二| 国产欧美日韩不卡免费| 国产一区视频网站| 精品毛片乱码1区2区3区| 日本美女视频一区二区| 欧美精品国产精品| 三级欧美在线一区| 欧美乱妇15p| 石原莉奈在线亚洲三区| 这里只有精品电影| 免费观看在线综合色| 欧美精品1区2区3区| 石原莉奈在线亚洲二区| 91精品久久久久久蜜臀| 日本中文字幕不卡| 欧美一级电影网站| 免费成人你懂的| 337p粉嫩大胆色噜噜噜噜亚洲| 久久99国产精品成人| www国产亚洲精品久久麻豆| 久草精品在线观看| 久久精品欧美日韩精品| 成人小视频在线| 亚洲欧美韩国综合色| 色噜噜狠狠色综合中国| 亚洲aⅴ怡春院| 日韩欧美一级二级三级| 国产一区视频导航| 国产精品久久久久久久久果冻传媒| 成人av一区二区三区| 亚洲日本一区二区| 一本到三区不卡视频| 午夜私人影院久久久久| 欧美一区二区播放| 国产精品一区二区久久不卡| 日本一区二区电影| 成人成人成人在线视频| 亚洲免费av高清| 91精品国产91综合久久蜜臀| 国产精品一区一区三区| 亚洲视频在线观看一区| 欧美日韩一区二区三区四区| 免费高清成人在线| 国产精品免费视频一区| 在线免费av一区| 美女一区二区三区| 国产精品视频免费看| 欧美系列一区二区| 国产一区在线看| 亚洲人吸女人奶水| 欧美成人综合网站| 92精品国产成人观看免费| 日韩国产一区二| 日本一区二区在线不卡| 欧美午夜理伦三级在线观看| 久久99久久99| 亚洲精品一二三四区| 91精品国产免费| 粉嫩av一区二区三区| 午夜私人影院久久久久| 日本一区二区三区四区| 欧美精品v国产精品v日韩精品 | 色噜噜狠狠成人中文综合| 玖玖九九国产精品| 亚洲蜜臀av乱码久久精品| 欧美mv日韩mv国产网站app| 91在线国产福利| 九色porny丨国产精品| 亚洲精品一二三| 国产午夜精品一区二区| 欧美疯狂性受xxxxx喷水图片| 国产jizzjizz一区二区| 视频一区二区三区中文字幕| 国产精品成人免费| 欧美va亚洲va在线观看蝴蝶网| 在线影院国内精品| 国产99久久久久| 青青草原综合久久大伊人精品 |