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

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

?? i2c.c

?? 430學習書籍,好東西,希望大家下載
?? C
字號:

#include "I2C.h"

void I2C_Initial( void )
{
    P1DIR |= BIT2;		//將SCL管腳(P1.2)設置為輸出管腳
    I2C_Set_sck_low();
    I2C_STOP();
    Delay_ms(10);
    return;
}
void I2C_Set_sda_high( void )
{
    P1DIR |= SDA;		//將SDA設置為輸出模式
    P1OUT |= SDA;		//SDA管腳輸出為高電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sda_low ( void )
{
    P1DIR |= SDA;		//將SDA設置為輸出模式
    P1OUT &= ~(SDA);		//SDA管腳輸出為低電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sck_high( void )
{
    P1DIR |= SCL;		//將SCL設置為輸出模式
    P1OUT |= SCL;		//SCL管腳輸出為高電平
    
    _NOP();
    _NOP();
    return;
}
void I2C_Set_sck_low ( void )
{
    P1DIR |= SCL;		//將SCL設置為輸出模式
    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設置為輸入方向
    I2C_Set_sck_high();
    
    for(j = 30;j > 0;j--);
    nTemp = (int)(P1IN & SDA);	//獲得數據
    
    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管腳設置為輸入方向
    _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();			// 啟動數據總線
    
    I2C_TxHToL(0x65);			// 發送讀時間信息命令
    
    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();			// 啟動數據總線
    
    I2C_TxHToL(0x64);			// 發送寫時間信息命令
    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();			// 啟動數據總線
    
    I2C_TxHToL(0x60);			// 發送復位命令
    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();			// 啟動數據總線
    
    I2C_TxHToL(nVal);			// 發送復位命令
    nTemp = I2C_GetACK();		// 等待 ACK
    
    I2C_STOP();				// 停止總線
    
    return;
}
int  I2C_ReadSta(void)
{
    unsigned char nTemp = 0;
    
    I2C_START();			// 啟動數據總線
    
    I2C_TxHToL(0x63);			// 發送讀狀態寄存器命令
    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();			// 啟動數據總線
    
    I2C_TxHToL(0x62);			// 發送寫時間信息命令
    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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频中文字幕| 国产精品久久久久精k8| 久久久777精品电影网影网 | 丝袜脚交一区二区| 高清在线成人网| 日韩午夜在线观看| 亚洲影视在线观看| 成人av在线资源网站| 久久久亚洲综合| 蜜臀a∨国产成人精品| 欧美日韩国产综合视频在线观看 | 国产婷婷色一区二区三区在线| 亚洲综合免费观看高清完整版| 韩国视频一区二区| 欧美一个色资源| 丝袜诱惑制服诱惑色一区在线观看| 91蝌蚪porny| 国产精品麻豆欧美日韩ww| 狠狠色狠狠色综合系列| 日韩一区二区免费电影| 午夜精品久久久久久久久| 欧美综合久久久| 一区二区高清视频在线观看| 99精品视频一区二区| 国产精品精品国产色婷婷| 国产精品白丝jk白祙喷水网站| 日韩女优av电影| 久久99精品久久久久久| 日韩一级视频免费观看在线| 日韩和的一区二区| 欧美一激情一区二区三区| 免费观看一级欧美片| 日韩一区和二区| 韩国精品久久久| 久久影院午夜论| 国产精品1024| 国产精品狼人久久影院观看方式| 成人免费观看av| 亚洲免费伊人电影| 精品视频123区在线观看| 天天色天天操综合| 精品久久一区二区三区| 丁香婷婷深情五月亚洲| 亚洲视频精选在线| 欧美日韩电影在线播放| 久久精品国产精品亚洲红杏| 久久久久久久国产精品影院| aa级大片欧美| 亚洲国产美国国产综合一区二区| 91精品国产综合久久精品| 久久精品国产亚洲高清剧情介绍 | 午夜视频在线观看一区二区三区 | 国产亚洲一区二区三区| 成人精品一区二区三区四区| 亚洲欧美国产三级| 欧美日韩大陆一区二区| 国产一区二三区| 亚洲色图欧洲色图婷婷| 日韩一区二区免费高清| 成人午夜激情在线| 午夜欧美2019年伦理 | 日韩天堂在线观看| 国产成人精品影视| 亚洲一区二区三区四区五区黄| 日韩免费高清av| 一本久道中文字幕精品亚洲嫩| 五月天中文字幕一区二区| 久久亚洲私人国产精品va媚药| 91免费看`日韩一区二区| 三级在线观看一区二区| 中文字幕av一区二区三区免费看 | 色婷婷久久一区二区三区麻豆| 日韩不卡一二三区| 国产精品久线观看视频| 欧美日韩另类国产亚洲欧美一级| 国产又粗又猛又爽又黄91精品| 一区二区三区高清不卡| 久久久久久黄色| 在线成人免费视频| 91免费视频网址| 国产久卡久卡久卡久卡视频精品| 一区二区三区国产精品| 久久久精品国产免大香伊| 欧美日韩二区三区| 成人av免费在线观看| 国产综合久久久久影院| 午夜激情久久久| 亚洲精品美国一| 日本一区二区三区在线不卡| 91精品久久久久久久99蜜桃| www.欧美.com| 国产酒店精品激情| 久久aⅴ国产欧美74aaa| 天堂在线亚洲视频| 亚洲国产精品二十页| 久久亚洲精精品中文字幕早川悠里| 欧美午夜电影在线播放| 色综合久久综合网欧美综合网| 国产乱码精品一区二区三区忘忧草 | 亚洲欧洲一区二区三区| 精品日韩欧美在线| 91精品国产色综合久久不卡蜜臀| 91豆麻精品91久久久久久| 大胆亚洲人体视频| 国产a久久麻豆| 国产精品一区二区在线观看不卡 | 色综合久久66| av影院午夜一区| 99精品黄色片免费大全| 91亚洲永久精品| 一本久久精品一区二区| 91福利国产精品| 91久久精品一区二区三| 在线观看日产精品| 在线观看日韩国产| 欧美久久久久久蜜桃| 欧美理论电影在线| 日韩欧美一区二区不卡| 91麻豆精品91久久久久久清纯| 日本道精品一区二区三区| 欧美日韩美少妇| 日韩一区二区电影在线| 久久综合色播五月| 国产精品毛片高清在线完整版| 亚洲欧洲国产日韩| 亚洲精品福利视频网站| 日韩精彩视频在线观看| 韩国女主播一区| 成人avav在线| 色综合激情五月| 91精选在线观看| 国产日韩欧美不卡在线| 亚洲欧洲成人av每日更新| 一区二区三区毛片| 视频在线观看一区| 国产在线播精品第三| 99久久夜色精品国产网站| 欧美这里有精品| 日韩一区二区中文字幕| 欧美国产欧美亚州国产日韩mv天天看完整 | 91蜜桃网址入口| 欧美日本免费一区二区三区| 精品美女一区二区| 亚洲精选免费视频| 美女在线视频一区| 欧美裸体bbwbbwbbw| 久久久久久电影| 亚洲一线二线三线久久久| 国产麻豆一精品一av一免费 | 精品国产乱码久久久久久夜甘婷婷 | 精品国产一区二区三区不卡| 国产日韩欧美电影| 亚洲成在线观看| 成人激情免费电影网址| 7777精品久久久大香线蕉| 国产欧美精品一区| 日韩经典一区二区| av网站一区二区三区| 日韩免费一区二区| 亚洲乱码国产乱码精品精的特点| 精品亚洲免费视频| 欧美日韩精品一区二区三区四区 | 久久尤物电影视频在线观看| 亚洲综合色区另类av| 国产成人免费9x9x人网站视频| 欧美日本一区二区三区四区| 亚洲国产高清aⅴ视频| 美女免费视频一区二区| 色狠狠色狠狠综合| 国产精品欧美极品| 国产一区二区成人久久免费影院 | 男女视频一区二区| av在线不卡网| 久久久久久久网| 麻豆一区二区在线| 欧美日韩一区二区三区四区五区 | 精品国产1区2区3区| 午夜精品aaa| 欧美日韩一二区| 亚洲精品视频在线| eeuss鲁片一区二区三区| 国产亚洲女人久久久久毛片| 男女男精品视频网| 欧美猛男gaygay网站| 亚洲一区在线电影| 91麻豆文化传媒在线观看| 中文字幕 久热精品 视频在线| 裸体一区二区三区| 日韩欧美国产一区二区三区| 日本一不卡视频| 日韩一级视频免费观看在线| 日韩电影免费在线观看网站| 欧美丝袜自拍制服另类| 亚洲国产aⅴ天堂久久| 在线观看91视频| 天天综合天天做天天综合| 欧美人成免费网站| 秋霞午夜av一区二区三区| 欧美精品国产精品| 日本一区中文字幕 |