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

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

?? i2c.c

?? MSP430系列單片機(jī)資料-7冊-46.3M-pdf.zip
?? C
字號:

#include "I2C.h"

void I2C_Initial( void )
{
    P1DIR |= BIT2;		//將SCL管腳(P1.2)設(shè)置為輸出管腳
    I2C_Set_sck_low();
    I2C_STOP();
    Delay_ms(10);
    return;
}
void I2C_Set_sda_high( void )
{
    P1DIR |= SDA;		//將SDA設(shè)置為輸出模式
    P1OUT |= SDA;		//SDA管腳輸出為高電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sda_low ( void )
{
    P1DIR |= SDA;		//將SDA設(shè)置為輸出模式
    P1OUT &= ~(SDA);		//SDA管腳輸出為低電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sck_high( void )
{
    P1DIR |= SCL;		//將SCL設(shè)置為輸出模式
    P1OUT |= SCL;		//SCL管腳輸出為高電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sck_low ( void )
{
    P1DIR |= SCL;		//將SCL設(shè)置為輸出模式
    P1OUT &= ~(SCL);		//SCL管腳輸出為低電平
    
    _NOP();
    _NOP();
    return;
}
int  I2C_GetACK(void)
{
    int nTemp = 0;
    int j;
    
    _NOP();
    _NOP();
    I2C_Set_sck_low();
    for(j = 30;j > 0;j--);
    P1DIR &= ~(SDA);		//將SDA設(shè)置為輸入方向
    I2C_Set_sck_high();
    
    for(j = 30;j > 0;j--);
    nTemp = (int)(P1IN & SDA);	//獲得數(shù)據(jù)
    
    I2C_Set_sck_low();
    
    return (nTemp & SDA);
}
void I2C_SetACK(void)
{   
    I2C_Set_sck_low();
    I2C_Set_sda_low();
    I2C_Set_sck_high();
    I2C_Set_sck_low();
    return;
}
void I2C_SetNAk(void)
{
    I2C_Set_sck_low();
    I2C_Set_sda_high();
    I2C_Set_sck_high();
    I2C_Set_sck_low();
    return;
}
void I2C_START(void)
{
    int i;
    
    I2C_Set_sda_high();
    for(i = 5;i > 0;i--);
    I2C_Set_sck_high();
    for(i = 5;i > 0;i--);
    I2C_Set_sda_low();
    for(i = 5;i > 0;i--);
    I2C_Set_sck_low();
    return;
}
void I2C_STOP(void)
{
    int i;
    
    I2C_Set_sda_low();
    for(i = 5;i > 0;i--);
    I2C_Set_sck_low();
    for(i = 5;i > 0;i--);
    I2C_Set_sck_high();
    for(i = 5;i > 0;i--);
    I2C_Set_sda_high();
    for(i = 5;i > 0;i--);
    I2C_Set_sck_low();
    Delay_ms(10);		//延遲一點時間
    
    return;
}
void I2C_TxHToL(int nValue)
{
    int i;
    int j;
  
    for(i = 0;i < 8;i++)
    {
    	if(nValue & 0x80)
    	    I2C_Set_sda_high();
    	else
    	    I2C_Set_sda_low();
    	for(j = 30;j > 0;j--);
    	I2C_Set_sck_high();
    	nValue <<= 1;
    	for(j = 30;j > 0;j--);
    	I2C_Set_sck_low();
    }
    
    return;
}
void I2C_TxLToH(int nValue)
{
    int i;
    int j;
    for(i = 0;i < 8;i++)
    {
    	if(nValue & 0x01)
    	    I2C_Set_sda_high();
    	else
    	    I2C_Set_sda_low();
    	for(j = 30;j > 0;j--);
    	I2C_Set_sck_high();
    	nValue >>= 1;
    	for(j = 30;j > 0;j--);
    	I2C_Set_sck_low();
    }
    
    return;
}
/////////////////////////////////////////////
// 接收是從 LSB 到 MSB 的順序
int  I2C_RxByte(void)
{
    int nTemp = 0;
    int i;
    int j;
    
    I2C_Set_sda_high();
    
    P1DIR &= ~(SDA);			//將SDA管腳設(shè)置為輸入方向
    _NOP();
    _NOP();
    _NOP();
    _NOP();
    for(i = 0;i < 8;i++)
    {
    	I2C_Set_sck_high();
    	
    	if(P1IN & SDA)
    	{
    	    nTemp |= (0x01 << i);
    	}
    	for(j = 30;j > 0;j--);
    	I2C_Set_sck_low();
    }
    
    return nTemp;
}
///////////////////////////////////////////
// 獲取時間信息,成功返回 1,錯誤返回 0
int  I2C_Read (char *pBuf)
{
    int nTemp = 0;
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(0x65);			// 發(fā)送讀時間信息命令
    
    nTemp = I2C_GetACK();		// 等待 ACK
    
    pBuf[0] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[1] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[2] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[3] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[4] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[5] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[6] = I2C_RxByte();
    I2C_SetACK();
    
    pBuf[7] = I2C_RxByte();
    I2C_SetACK();
    
    I2C_STOP();				// 停止總線
    return nTemp;
}
///////////////////////////////////////
// 寫時間信息,成功返回 1,錯誤返回 0
int  I2C_Write(char *pBuf)
{
    int nTemp = 0;
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(0x64);			// 發(fā)送寫時間信息命令
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[0]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[1]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[2]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[3]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[4]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[5]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_TxLToH(pBuf[6]);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return 0;
    
    I2C_STOP();				// 停止總線
    return (nTemp & SDA);
}
int  I2C_Reset(void)
{
    int nTemp = 0;
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(0x60);			// 發(fā)送復(fù)位命令
    nTemp = I2C_GetACK();		// 等待 ACK
    
    I2C_STOP();				// 停止總線
    return (nTemp & SDA);
}
void Delay_ms(unsigned long nValue)//毫秒為單位,8MHz為主時鐘
{
    unsigned long nCount;
    int i;
    unsigned long j;
    nCount = 2667;
    for(i = nValue;i > 0;i--)
    {
    	for(j = nCount;j > 0;j--);
    }
    return;
}
void Delay_us(unsigned long nValue)//微秒為單位,8MHz為主時鐘
{
    int nCount;
    int i;
    int j;
    nCount = 3;
    for(i = nValue;i > 0;i--)
    {
    	for(j = nCount;j > 0;j--);
    }
    return;
}
void Test(unsigned char nVal)
{
    int nTemp = 0;
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(nVal);			// 發(fā)送復(fù)位命令
    nTemp = I2C_GetACK();		// 等待 ACK
    
    I2C_STOP();				// 停止總線
    
    return;
}
int  I2C_ReadSta(void)
{
    unsigned char nTemp = 0;
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(0x63);			// 發(fā)送讀狀態(tài)寄存器命令
    nTemp = I2C_GetACK();		// 等待 ACK
    
    nTemp = I2C_RxByte();
    I2C_SetACK();
    
    
    I2C_STOP();				// 停止總線
    
    return nTemp;
}
void I2C_WriteSta(int nValue)
{
    int nTemp = 0;
    char chrTemp = 0;
    chrTemp = (char)(nValue & 0x00ff);
    
    I2C_START();			// 啟動數(shù)據(jù)總線
    
    I2C_TxHToL(0x62);			// 發(fā)送寫時間信息命令
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return;
    
    I2C_TxLToH(chrTemp);
    nTemp = I2C_GetACK();		// 等待 ACK
    if(nTemp & BIT3) return;
    
    I2C_STOP();				// 停止總線
    
    return;
}
void Set24TimeMode(void)
{
    int nTemp;
    
    nTemp = 0;
    
    nTemp = I2C_ReadSta();
    nTemp |= BIT6;
    I2C_WriteSta(nTemp);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合久久久久影院| 欧美日韩一区中文字幕| 成人高清免费在线播放| 激情综合色丁香一区二区| 精品一区二区三区免费毛片爱| 日韩av中文字幕一区二区三区| 日本午夜一区二区| 日韩精品在线网站| 国产在线精品一区在线观看麻豆| 亚洲成av人片在线观看| 午夜精品免费在线观看| 日本亚洲免费观看| 国产成人亚洲综合色影视| 一本色道亚洲精品aⅴ| 91精品午夜视频| 日本一区二区三区电影| 一区二区三区四区蜜桃| 久久超碰97人人做人人爱| 国产精品一区二区在线看| 色综合色综合色综合 | 欧美人伦禁忌dvd放荡欲情| 欧美一区二区三区喷汁尤物| 国产精品网站在线| 婷婷久久综合九色国产成人| 成人av影视在线观看| 日韩免费看网站| 午夜婷婷国产麻豆精品| 99免费精品在线观看| 久久久久久日产精品| 奇米亚洲午夜久久精品| 欧美三级中文字| 亚洲另类色综合网站| 懂色一区二区三区免费观看| 91精品黄色片免费大全| 亚洲精品中文字幕在线观看| 国产精品18久久久久久vr| 日韩精品一区二区三区四区| 性做久久久久久免费观看| 色综合久久久网| 中文字幕欧美一区| 成人一级视频在线观看| 国产精品美女久久久久久久久| 久久99精品国产| 国产欧美日韩不卡| jvid福利写真一区二区三区| 亚洲欧洲韩国日本视频| 91丨porny丨国产入口| 亚洲一级二级在线| 久久欧美中文字幕| 国产精品香蕉一区二区三区| 国产午夜一区二区三区| 成人美女视频在线观看| 一区二区三区免费看视频| 欧美日韩精品专区| 美洲天堂一区二卡三卡四卡视频| 国产女人18毛片水真多成人如厕 | 五月天国产精品| 日韩视频在线观看一区二区| 国产专区欧美精品| 亚洲免费大片在线观看| 91精品国产综合久久福利软件| 国产在线一区二区| 亚洲成人激情自拍| 国产午夜精品一区二区| 欧美综合一区二区| 国产一区二区在线电影| 夜色激情一区二区| 精品91自产拍在线观看一区| 不卡一卡二卡三乱码免费网站| 亚洲一区二区三区四区不卡| 国产视频911| 欧美一级二级在线观看| 成人av网在线| 91久久国产综合久久| 婷婷久久综合九色综合伊人色| 中文字幕av资源一区| 欧美成人精品3d动漫h| 欧美欧美欧美欧美| 欧美日韩免费电影| 91麻豆6部合集magnet| jiyouzz国产精品久久| 国产成人精品免费一区二区| 国产一区在线视频| 久久精品国产一区二区| 舔着乳尖日韩一区| 一区二区三区av电影| 伊人开心综合网| 日韩黄色小视频| 久久黄色级2电影| 一本色道久久综合亚洲精品按摩| 久久精品国产一区二区三| 欧美亚洲动漫精品| 成人激情文学综合网| 丰满亚洲少妇av| 豆国产96在线|亚洲| 91网站视频在线观看| 欧美日韩国产免费一区二区| 欧美久久久一区| 久久久综合精品| ...av二区三区久久精品| 午夜精品久久久久久久久久久| 亚洲成a人片综合在线| 久久成人免费网| 91免费在线播放| 精品久久人人做人人爰| 日本一区二区三区国色天香| 国产精品视频麻豆| 亚洲高清免费一级二级三级| 国产米奇在线777精品观看| 精品少妇一区二区三区视频免付费| 一区二区三区在线视频观看58| 婷婷综合五月天| 欧美一级生活片| 国产日韩欧美制服另类| 国产精品国产自产拍在线| 一区二区三区在线不卡| 蜜桃视频免费观看一区| 97se狠狠狠综合亚洲狠狠| 精品国产精品网麻豆系列 | 国产网站一区二区三区| 亚洲高清免费视频| 国内成人自拍视频| 欧美日韩电影一区| 怡红院av一区二区三区| 成人黄色软件下载| 8x福利精品第一导航| 樱花影视一区二区| 欧美视频日韩视频| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美激情一区二区三区四区| 美女在线一区二区| 51精品久久久久久久蜜臀| 日韩成人伦理电影在线观看| 91福利视频网站| 久久嫩草精品久久久久| 国产精品热久久久久夜色精品三区| 国产91精品在线观看| 国产精品午夜电影| 丁香六月综合激情| 亚洲男帅同性gay1069| 91久久精品国产91性色tv| 天天综合日日夜夜精品| 日韩精品最新网址| 岛国av在线一区| 伊人夜夜躁av伊人久久| 欧美一级高清片| av一区二区三区四区| 五月婷婷综合在线| 久久久久久久久久久99999| 91视频国产资源| 日欧美一区二区| 久久女同性恋中文字幕| 国产aⅴ综合色| 精品欧美一区二区久久| 亚洲美女精品一区| 欧美色视频一区| 国产精品一区久久久久| 婷婷开心激情综合| 国产精品久久毛片| 91精品国模一区二区三区| 国产91在线观看丝袜| 免费在线观看一区二区三区| 国产精品无人区| 久久九九全国免费| 在线综合视频播放| 欧美在线视频你懂得| 国产激情视频一区二区在线观看| 午夜一区二区三区视频| 亚洲欧美日韩系列| 亚洲综合成人在线| 欧美精品少妇一区二区三区| 亚洲成a人片综合在线| 色综合欧美在线视频区| 美国十次综合导航| 免费观看一级特黄欧美大片| 亚洲午夜精品一区二区三区他趣| 国产欧美一区二区精品性| 久久精品一二三| 国产蜜臀97一区二区三区| 国产亚洲一区二区在线观看| 日韩精品一区二区三区视频播放| 欧美一区二区三区视频在线观看 | 久久久久久久久一| 久久女同精品一区二区| 国产欧美综合色| 国产精品久久久久一区二区三区| 中文字幕+乱码+中文字幕一区| 色婷婷综合久久久中文字幕| 极品少妇xxxx精品少妇| 国产乱子伦视频一区二区三区| 国内精品国产成人| 91色在线porny| 91麻豆精品国产91久久久 | 亚洲bt欧美bt精品777| 午夜精品久久久久久久99水蜜桃| 蜜桃传媒麻豆第一区在线观看| 国产资源在线一区| 在线观看日韩高清av| 制服.丝袜.亚洲.中文.综合| 国产午夜精品一区二区三区视频|