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

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

?? i2ctestmaster.c

?? pic單片機作為I2C從機的通訊程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
     delayus(10);
// start convertion and wait for interrupt
     GODONE=1;
}


void delayus(unsigned char time)
{
    time=time/2;
    while(time-->0)
    {
        NOP();
    }
    
}

void delayms(unsigned char time)
{
    unsigned char i=0;
    unsigned int j=0;
    for(i=0;i<time;i++)
    {
        for(j=0;j<1000;j++)
        {
            NOP();
            NOP();
            NOP();
            CLRWDT();
        }
    }
}

//---------name:device_initial---------//
//input: none
//output:none
//------function :initial device-------//
void device_initial(void)
{
// disable all interrupt     
     PEIE=0;
	 GIE=0;
// config rxd as digital io not a/d channel,important    
     ANSEL=0x00;
     ANSELH=0x00;
// config RC0 as led 
     PORTC=0x00;
     TRISC0=0;
     RC0=0;
     PORTA=0x00;
     //TRISA2=1;
     RABPU=0;
     SCL_Derection=0;
     SCL=1;
     SDA_Derection=0;
     SDA=1;
// watch dog and timer0 config
     timer0_initial();
     timer1_initial();
   //  Slave_I2C_Initial();
     uart_initial();
   //  ad_initial();    
// enable all interrupt     
     PEIE=1;
	 GIE=1; 
     CLRWDT();   
         
}
//---------name:timer0_initial---------//
//input: none
//output:none
//------function :initial timer0-------//
void timer0_initial(void)
{
    TMR0=0x00;
// internal instruction cycle
    T0CS=0;
//prescaler is for watch dog,1:8
    OPTION=0xDB;
    T0IE=0;
//enable watch dog,8 second reset
    WDTCON=0x15;
    CLRWDT();
} 
//---------name:timer1_initial---------//
//input: none
//output:none
//------function :initial timer1-------// 
void timer1_initial(void)
{
    TMR1IE=0;
// internal clock,8 divide,
    T1CON=0x30;
//10ms for interrupt
    TMR1L=0xD8;
    TMR1H=0xF1;
//enable interrupt
    TMR1IE=1;
    TMR1ON=1;
    CLRWDT();
}  
//---------name:uart_deal_service---------//
//input: none
//output:none
//------function :uart deal events-------// 
void uart_deal_service(void)
{
    Rx_Start=0;
    Rx_Over=0;
    CLRWDT();
    uart_send_data(Buffer2,URT_ptr); 
    ad_test();;
}
//----------name:ad_deal_service-----------//
//input: none
//output:none
//------function :a/d finish,routine-------// 
void ad_deal_service(void)
{
    Ad_Over=0;
    CLRWDT();
    uart_send_data(Ad_Buffer,2); 
    
}
//----------name:i2c_rd_deal-----------//
//input: none
//output:none
//------function :master read over-----//
void i2c_rd_deal(void)
{
    I2c_Rd_Over=0;;
}
//----------name:i2c_wr_deal-----------//
//input: none
//output:none
//-----function :master write over-----//
void i2c_wr_deal(void)
{
    I2c_Wr_Start=0;
    I2c_Wr_Over=0;
}
//------------name:pulse_test------------//
//input: none
//output:none
//---function :test the width of pulse---//
void pulse_test(void)
{
    unsigned char timer0_count[3]={0,0,0};
    unsigned int count=0;
    second10ms=0;
       
wait1:
    if(RA2==1)
    {
        if(second10ms>10)
            return;
        goto wait1;
    }  
wait2:
    if(RA2==0)
    {
        if(second10ms>10)
            return;
        TMR0=0x00;
        CLRWDT();
        goto wait2;
    }
    while(1)
    {
        if(RA2==1)
        { 
            if(T0IF==1)
            {
                T0IF=0;
                count++; 
                          
            }
        }
        else
        {
            T0IE=0;
            break;
        }
        
    }
    timer0_count[2]=TMR0;
    timer0_count[0]=(count>>8)&0xff;
    timer0_count[1]=(unsigned char)count&0xff;
    //T0IE=0;
    uart_send_data(timer0_count,3);
    return;
}
//***************************************************************************************
//函數:void I2C_Start(void)
//功能:I2C起始條件,啟動總線
//輸入:
//輸出:無
//=======================================================================================
void I2C_Start(void)
{
     SDA_Derection=0;
     //SDA_Derection=1;//
     NOP();
     NOP();
     SDA=1;
    // SDA_Derection=1;//
     NOP();
     SCL=1;
     //SCL_Derection=1;//
     NOP();
     NOP();
     NOP();
     NOP();
     NOP();
     SDA=0;
     //SDA_Derection=0;//
     NOP();
     NOP();
     NOP();
     NOP();
     NOP();
     SCL=0;
     //SCL_Derection=0;//
     NOP();
     NOP();
}
//***************************************************************************************
//函數:void I2C_Stop(void)
//功能:結束I2C總線信號
//輸入:
//      
//輸出:無
//=======================================================================================
void I2C_Stop(void)
{
    SDA_Derection=0;
    NOP();
    NOP();
    SDA=0;
    NOP();
    SCL=1;
   // SCL_Derection=1;//
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();
    SDA=1;
   // SDA_Derection=1;//
    NOP();
    NOP();
    NOP();
    NOP();
    SDA_Derection=1;
}
//***************************************************************************************
//函數:unsigned char I2C_CheckAcK(void)
//功能:檢驗I2C總線應答信號,有應答返回1,否則返回0
//輸入:
//
//輸出:0,失敗;1,成功
//=======================================================================================
unsigned char I2C_CheckAcK(void)
{
    unsigned char Err_time=255;
    SDA_Derection=0;
    SDA=1;
    SDA_Derection=1;
    NOP();
    NOP();
    NOP();
    SCL=1;
    //SCL_Derection=1;//
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();
    while(SDA)
    {
        Err_time--;
        if(Err_time==0)
        {
            I2C_Stop();
            return 0x00;
        }
    }
    SCL=0;
    //SCL_Derection=0;//
    NOP();
    NOP();
    return 0x01;
}

//***************************************************************************************
//函數:void I2C_SendB(unsigned char c)
//功能:向I2C總線發送一個字節
//輸入:要發送的數據字節
//
//輸出:無
//=======================================================================================
void I2C_SendB(unsigned char c)
{
    unsigned char i,j;
    SDA_Derection=0;
    for(i=0;i<8;i++)
    {
        if((c<<i)&0x80)
        {
            SDA=1;
            //SDA_Derection=1;
        }
        else 
        {
            SDA=0;
            //SDA_Derection=0;
        }
        NOP();
        NOP();
        SCL=1;
        //SCL_Derection=1;//
        NOP();
        NOP();
        NOP();
        NOP();
        NOP();
        
        SCL=0;
        //SCL_Derection=0;//
    }
    NOP();
    NOP();
    I2C_Ack=I2C_CheckAcK();
    NOP();
    NOP();
}

//***************************************************************************************
//函數:unsigned char I2C_RceB(void)
//功能:從I2C總線上接收1個字節
//輸入:無
//      
//輸出:所接收的1個字節數據
//=======================================================================================
unsigned char I2C_RceB(void)
{
    unsigned char i,Rcdata;
    Rcdata=0;
    SDA_Derection=1;
    //delayus(8);//
    //SCL_Derection=1;//
    delayus(20);//
    //while(!SCL);
   // SCL_Derection=0;
   // SCL=1;
    for(i=0;i<8;i++)
    {
        NOP();
        SCL=0;
        //SCL_Derection=0;//
        NOP();
        NOP();
        NOP();
        NOP();
        SCL=1;
        //SCL_Derection=1;//
        NOP();
        NOP();
        Rcdata=Rcdata<<1;
        if(SDA==1)
        {
            Rcdata=Rcdata+1;
        }
        NOP();
        NOP();
    }
    SCL=0;
   // SCL_Derection=0;//
    NOP();
    NOP();
    return (Rcdata);
}

//***************************************************************************************
//函數:void I2C_Ackn(unsigned char a)
//功能:接收數據后向I2C總線發送應答或非應答信號
//輸入:0 發送應答信號,數據接收未完成
//      1 發送非應答信號,數據接收完畢
//輸出:無
//=======================================================================================
void I2C_Ackn(unsigned char a)
{
    SDA_Derection=0;
    
    if(a==0)
    {
        SDA=0;
        //SDA_Derection=0;//
    }
    else 
    {
        SDA=1;
        //SDA_Derection=1;//
    }
    NOP();
    NOP();
    NOP();
    SCL=1;
   // SCL_Derection=1;//
    NOP();
    NOP();
    NOP();
    NOP();
    NOP();
    SCL=0;
    //SCL_Derection=0;//
    NOP();
    NOP();
}


//***************************************************************************************
//函數:unsigned char Send_Nbyte(unsigned char len,unsigned char *p)
//功能:向I2C總線發送N個字節
//輸入:len:寫入數據的字節長度
//      p:數組的指針
//輸出:0,發送失敗;1,發送成功
//=======================================================================================
unsigned char Send_Nbyte(unsigned char len,unsigned char *p)
{
    unsigned char i;
    I2C_Start();
    I2C_SendB(0x02);
    for(i=0;i<len;i++)
    {
        I2C_SendB(*(p+i));
        if(!I2C_Ack)
        {
            //RC0=1;
            return 0;
        }
        
    }
    //RC0=1;
    I2C_Stop();
    return 1;
}
//***************************************************************************************
//函數:unsigned char Read_RTC(unsigned char*timeptr)
//功能:從時鐘芯片讀時鐘
//輸入:接收時鐘區指針,接收長度為7字節,分別為秒,分,時,星期,日,月,年
//
//輸出:0 表示讀取失敗;1 表示讀取成功;
//=======================================================================================
unsigned char Read_Nbyte(unsigned char num)
{
    unsigned char i;
    I2C_Start();
    I2C_SendB(0x03);
    if(!I2C_Ack)
    {
        RC0=0;
        return 0;
    }
    else 
        RC0=1;
    //delayus(8);
    for(i=0;i<num;i++)
    {
        *(I2C_Buff+i)=I2C_RceB();
        if(i<num-1)
        {
            I2C_Ackn(0);
        }
        else 
        {
            I2C_Ackn(1);
        }
        //delayus(24);//18
    }
    I2C_Stop();
    return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情五月婷婷综合| 欧美肥大bbwbbw高潮| 色噜噜狠狠成人网p站| 日韩美女主播在线视频一区二区三区| 国产精品入口麻豆九色| 亚洲va欧美va人人爽| 成人美女视频在线观看| 欧美一区二区三区免费在线看 | 91麻豆精品国产91久久久久久 | 性做久久久久久免费观看| 美女mm1313爽爽久久久蜜臀| 成人av中文字幕| 日韩视频一区二区三区| 亚洲理论在线观看| 国产aⅴ综合色| 久久综合久久鬼色| 日本视频中文字幕一区二区三区| 色综合久久久久| 国产精品三级av在线播放| 久久国产福利国产秒拍| 在线成人午夜影院| 一区二区三区日韩精品视频| www.亚洲在线| 国产亚洲人成网站| 黄一区二区三区| 欧美r级在线观看| 麻豆一区二区三| 欧美一区二区播放| 日本不卡中文字幕| 在线播放亚洲一区| 日韩制服丝袜先锋影音| 欧美精品123区| 一卡二卡三卡日韩欧美| 欧美最猛黑人xxxxx猛交| 亚洲欧美激情视频在线观看一区二区三区 | 国产日韩欧美精品一区| 激情欧美一区二区三区在线观看| 日韩欧美一二区| 91精品一区二区三区久久久久久 | 亚洲三级在线免费| 91免费小视频| 一区二区三区国产| 在线亚洲人成电影网站色www| 亚洲免费在线视频| 在线一区二区三区四区五区| 亚洲精品成人少妇| 欧美亚洲国产一区在线观看网站| 亚洲一区免费视频| 日韩欧美国产综合在线一区二区三区| 精品一区二区三区在线视频| 国产日产欧产精品推荐色| youjizz久久| 亚洲综合网站在线观看| 69堂精品视频| 国产成人av一区二区三区在线| 国产精品久久久久一区二区三区共| 久久综合久色欧美综合狠狠| 国产91精品一区二区| 亚洲精品成a人| 日韩欧美精品三级| eeuss影院一区二区三区| 亚洲电影视频在线| 久久久久成人黄色影片| 色一区在线观看| 久久99精品视频| 亚洲免费av高清| 精品久久久久香蕉网| 成人黄色小视频| 人人狠狠综合久久亚洲| 国产精品三级视频| 欧美精品v国产精品v日韩精品| 国产成人在线免费观看| 天天操天天综合网| 中文字幕不卡在线播放| 777午夜精品视频在线播放| 国产成人免费视频网站高清观看视频| 亚洲最快最全在线视频| 2欧美一区二区三区在线观看视频| 99久久国产免费看| 日韩av电影天堂| 亚洲色图视频网站| 久久婷婷综合激情| 欧美日韩高清影院| 91香蕉视频黄| 丁香婷婷深情五月亚洲| 日日摸夜夜添夜夜添国产精品| 日韩毛片视频在线看| 26uuu久久天堂性欧美| 欧美肥胖老妇做爰| 一本大道av一区二区在线播放| 国产成人免费高清| 久久国产精品第一页| 午夜精品福利视频网站| 亚洲日本成人在线观看| 国产精品久久一级| 久久久久久**毛片大全| 日韩精品一区二区三区四区视频| 欧美日精品一区视频| 99国产精品久| 成熟亚洲日本毛茸茸凸凹| 国产一区二三区| 精品中文字幕一区二区小辣椒| 爽好多水快深点欧美视频| 一区二区三区四区不卡视频| 日韩一级免费一区| 国产精品黄色在线观看| 在线观看免费视频综合| 丝袜美腿亚洲综合| 欧美色电影在线| 日韩免费观看高清完整版在线观看| 5月丁香婷婷综合| www成人在线观看| 日本午夜精品视频在线观看| 日韩vs国产vs欧美| 国产精品高清亚洲| 亚洲二区视频在线| 韩国av一区二区| 一本到三区不卡视频| 日韩精品一区在线观看| 国产精品不卡视频| 免费久久精品视频| 99精品在线免费| 26uuu精品一区二区| 中文字幕字幕中文在线中不卡视频| 日精品一区二区| 成人av高清在线| 欧美一区二区在线不卡| 国产精品国产三级国产普通话99 | 青青草国产精品97视觉盛宴| 成人免费毛片a| 欧美一区国产二区| 亚洲人吸女人奶水| 国内一区二区视频| 4438成人网| 洋洋成人永久网站入口| 丁香激情综合国产| 日韩精品最新网址| 亚洲一卡二卡三卡四卡五卡| 丁香婷婷综合五月| www久久久久| 麻豆极品一区二区三区| 欧美视频日韩视频在线观看| 国产精品久久久久aaaa樱花| 精品在线一区二区三区| 欧美夫妻性生活| 亚洲成a人片在线观看中文| 成人精品gif动图一区| 久久久影视传媒| 久草中文综合在线| 777午夜精品视频在线播放| 亚洲一区二区欧美| 色域天天综合网| 亚洲欧美国产高清| 99精品一区二区| 国产精品电影院| 成人av免费在线观看| 欧美国产日本视频| 成人激情av网| 综合色天天鬼久久鬼色| 成人免费观看av| 国产精品每日更新| www.久久精品| 国产精品久久毛片a| 粉嫩嫩av羞羞动漫久久久 | 亚洲国产视频在线| 在线一区二区观看| 一级中文字幕一区二区| 在线这里只有精品| 亚洲高清三级视频| 制服丝袜激情欧洲亚洲| 免费的成人av| 精品播放一区二区| 国产剧情一区在线| 亚洲国产成人午夜在线一区| 成人一区二区视频| 综合久久一区二区三区| 91免费视频网| 午夜精品久久久久久| 91精品国产综合久久久蜜臀图片| 久久精品久久精品| 久久久国产综合精品女国产盗摄| 国产v日产∨综合v精品视频| 国产精品国产自产拍高清av王其| gogo大胆日本视频一区| 一区二区三区在线播| 欧美高清精品3d| 激情图区综合网| 最新日韩av在线| 欧美日韩www| 国产一区二区视频在线播放| 欧美激情中文字幕一区二区| 91久久线看在观草草青青| 午夜精品一区二区三区电影天堂| 日韩一区二区在线看片| 国产91丝袜在线播放九色| 亚洲一区二区综合| 日韩欧美激情一区| 99re成人精品视频| 免费的国产精品| 亚洲欧美怡红院|