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

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

?? iic_51.c

?? 我寫的stv2248 芯片的驅動程序
?? C
字號:
/********************************************************************
   2               liuyouheng20040709
   3              注意:函數是采用軟件延時的方法產生SCL脈沖,固對高晶振頻率要作
   4          一定的修改....(本例是1us機器周期,即晶振頻率要小于12MHZ)
   5
   6          *******************************************************************/

#include"REG78e65.h"              //頭文件的包含//
#include <intrins.h>
#include"define.h"
//#include<IIC_c51.H>

//#define         BYTE unsigned char      //宏定義//
//#define         WORD  unsigned int

//#define BYTE unsigned char
//#define uchar unsigned char

BYTE	idata	IIC_buf[8];

//bit USendByte(BYTE sla,BYTE c);
//bit USendStr(BYTE sla,BYTE *str,BYTE num);
//bit ISendStr(BYTE sla,BYTE suba,BYTE *str,BYTE num);

//bit URcvByte(BYTE sla);
//bit URcvStr(BYTE sla,BYTE *str,BYTE num);
//bit IRcvStr(BYTE sla,BYTE suba,BYTE *str,BYTE num);



// 常,變量定義區 //

//端口位定義//
sbit            SDA=P1^4;               //模擬I2C數據傳送位//
sbit            SCL=P1^3;               //模擬I2C時鐘控制位//

//狀態標志//
bit             ack;                    //應答標志位//


void init_IIC(void)
{
   SDA=1;
   SCL=1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
   SCL=0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
   SCL=1;
}

/*****************************************************
                     起動總線函數
函數原型: void  Start_I2c();
功能:       啟動I2C總線,即發送I2C起始條件.

****************************************************/
void Start_I2c()
{
        SDA=1;          //發送起始條件的數據信號//
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        SCL=1;
        _nop_();                //起始條件建立時間大于4.7us,延時//
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        SDA=0;          //發送起始信號*/
        _nop_();        // 起始條件鎖定時間大于4μs//
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        SCL=0;          //鉗住I2C總線,準備發送或接收數據 //
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
}

/****************************************************
                      結束總線函數
函數原型: void  Stop_I2c();
功能:       結束I2C總線,即發送I2C結束條件.

****************************************************/
void Stop_I2c()
{
        SDA=0;  //發送結束條件的數據信號//
        _nop_();   //發送結束條件的時鐘信號//
        SCL=1;  //結束條件建立時間大于4μs//
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        SDA=1;  //發送I2C總線結束信號//
        _nop_();
        _nop_();
        _nop_();
        _nop_();
}



/****************************************************
                 字節數據傳送函數
數原型: void  SendByte(BYTE c);
能:  將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
     此狀態位進行操作.(不應答或非應答都使ack=0 假)
     發送數據正常,ack=1; ack=0表示被控器無應答或損壞。
************************************************************/
void  SendByte(BYTE c)
{
        BYTE BitCnt;

        for(BitCnt=0;BitCnt<8;BitCnt++)  //要傳送的數據長度為8位//
        {
                if((c<<BitCnt)&0x80)
                SDA=1;   //判斷發送位//
                else
                SDA=0;
                SCL=1;               //置時鐘線為高,通知被控器開
                _nop_();
                _nop_();               //保證時鐘高電平周期大于4μ
                _nop_();
                SCL=0;
        }
        SDA=1;               //8位發送完后釋放數據線,準備接收應
        SCL=1;
        if(SDA==1)ack=0;
        else ack=1;        //判斷是否接收到應答信號//
        SCL=0;
}
/****************************************************
                 字節數據傳送函數
函數原型: BYTE  RcvByte();
功能:  用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),
     發完后請用應答函數。
*************************************************************/
BYTE  RcvByte()
{
        BYTE retc;
        BYTE BitCnt;

        retc=0;
        SDA=1;             //置數據線為輸入方式//
        for(BitCnt=0;BitCnt<8;BitCnt++)
        {
                _nop_();
                SCL=0;       //置時鐘線為低,準備接收數據位//
                _nop_();
                _nop_();         //時鐘低電平周期大于4.7μs//
                _nop_();
                _nop_();
                _nop_();
                SCL=1;       //置時鐘線為高使數據線上數據有效//
                _nop_();
                _nop_();
                retc=retc<<1;
                if(SDA==1)
                retc=retc+1; //讀數據位,接收的數據位放入retc中 //
                _nop_();
                _nop_();
        }
        SCL=0;
        _nop_();
        return(retc);
        _nop_();
}

/*****************************************************
                     應答子函數

COMPILER V7.06   IIC_C51                                                               :37 PAGE 4

原型:  void Ack_I2c(bit a);

功能:主控器進行應答信號,(可以是應答或非應答信號)
*************************************************************/
void Ack_I2c(bit a)
{
        if(a==0)SDA=0;          //在此發出應答或非應答信號 //
        else SDA=1;
        _nop_();
        _nop_();
        _nop_();
        SCL=1;
        _nop_();
        _nop_();                        //時鐘低電平周期大于4μs//
        _nop_();
        _nop_();
        _nop_();
        SCL=0;                  //清時鐘線,鉗住I2C總線以便繼續接
        _nop_();
        _nop_();
}

/****************************************************
                    向無子地址器件發送單字節數據函數
函數原型: bit  ISendByte(BYTE sla,ucahr c,BYTE num);
功能:     從啟動總線到發送地址,數據,結束總線的全過程,從器件地址節
          發送內容是s指向的內容 , 如果返回1表示操作成功,否則操
注意:    使用前必須已結束總線。
**************************************************************/
bit USendByte(BYTE sla,BYTE c)
{

        Start_I2c();               //啟動總線//
        SendByte(sla);            //發送器件地址//
        if(ack==0)      {Stop_I2c();return(0);}
        SendByte(c);
        if(ack==0)      {Stop_I2c();return(0);}
        Stop_I2c();                 //結束總線//
        return(1);
}
/****************************************************
                    向無子地址器件發送多字節數據函數
函數原型: bit  ISendByte(BYTE sla,ucahr c,BYTE num);
功能:     從啟動總線到發送地址,數據,結束總線的全過程,從器件地址節
          發送內容是s指向的內容 , 如果返回1表示操作成功,否則操
注意:    使用前必須已結束總線。
**************************************************************/
bit USendStr(BYTE sla,BYTE *str,BYTE num)
{
        BYTE i;
        Start_I2c();               //啟動總線//
        SendByte(sla);            //發送器件地址//
        if(ack == 0)
        {
                Stop_I2c();
                return(0);
        }
        for(i=0;i<num;i++)
    {
        SendByte(*str);       //發送數據//
        if(ack == 0)
        {
                Stop_I2c();
                return(0);
        }
        str++;
    }
   Stop_I2c();           //結束總線//
   return(1);
}
/****************************************************
                    向有子地址器件發送多字節數據函數
函數原型: bit  ISendStr(BYTE sla,BYTE suba,ucahr *str,BYTE num);
功能:     從啟動總線到發送地址,子地址,數據,結束總線的全過程,從器
          地址sla,子地址suba,發送內容是s指向的內容,發送num個
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
**************************************************************/
bit ISendStr(BYTE sla,BYTE suba,BYTE *str,BYTE num)
{
        BYTE i;
        Start_I2c();               //啟動總線//
        SendByte(sla);            //發送器件地址//
        if(ack==0)      {Stop_I2c();return(0);}
        SendByte(suba);            //發送器件子地址//
        if(ack==0)      {Stop_I2c();return(0);}

        for(i=0;i<num;i++)
        {
                SendByte(*str);               //發送數據//
                if(ack==0)      {Stop_I2c();return(0);}
                str++;
        }
        Stop_I2c();                 //結束總線//
        return(1);
}
/****************************************************
                    向無子地址器件讀字節數據函數
函數原型: bit  IRcvByte(BYTE sla,ucahr *c);
功能:     從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
          址sla,返回值在c.
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
**************************************************************/

bit URcvByte(BYTE sla)
{
        Start_I2c();                    //啟動總線//
        SendByte(sla+1);                //發送器件地址//
        if(ack==0)return(0);
        IIC_buf[0]=RcvByte();                   //讀取數據//
        Ack_I2c(1);                     //發送非就答位//
        Stop_I2c();                     //結束總線//
        return(1);
}

/****************************************************
                    向無子地址器件讀多字節數據函數
函數原型: bit  IRcvByte(BYTE sla,ucahr *c);
功能:     從啟動總線到發送地址,讀數據,結束總線的全過程,從器件地
          址sla,返回值在c.
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
**************************************************************/
bit URcvStr(BYTE sla,BYTE *str,BYTE num)
{
        BYTE i;
        Start_I2c();        //啟動總線//
        SendByte(sla);            //發送器件地址//
        if(ack==0){Start_I2c();return(0);}

        Start_I2c();
        SendByte(sla+1);
        if(ack==0){Start_I2c();return(0);}

        for(i=0;i<num-1;i++)
        {
                *str=RcvByte();               //發送數據//
                Ack_I2c(0);                //發送就答位//
                str++;
        }
        *str=RcvByte();
        Ack_I2c(1);                 //發送非應位//
        Stop_I2c();                    //結束總線//
        return(1);
}
/****************************************************
                    向有子地址器件讀取多字節數據函數
函數原型: bit  ISendStr(BYTE sla,BYTE suba,ucahr *str,BYTE num);
功能:     從啟動總線到發送地址,子地址,讀數據,結束總線的全過程,從
          地址sla,子地址suba,讀出的內容放入s指向的存儲區,讀no
           如果返回1表示操作成功,否則操作有誤。
注意:    使用前必須已結束總線。
**************************************************************/
bit IRcvStr(BYTE sla,BYTE suba,BYTE *str,BYTE num)
{
        BYTE i;

        Start_I2c();               //啟動總線//
        SendByte(sla);            //發送器件地址//
        if(ack==0)return(0);
        SendByte(suba);            //發送器件子地址//
        if(ack==0)return(0);

        Start_I2c();
        SendByte(sla+1);
        if(ack==0)return(0);

        for(i=0;i<num-1;i++)
        {
                *str=RcvByte();               //發送數據//
                Ack_I2c(0);                //發送就答位//
                str++;
        }
        *str=RcvByte();
        Ack_I2c(1);                 //發送非應位//
        Stop_I2c();                    //結束總線//
        return(1);
}
                        //    完畢      //

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合国产精品| 亚洲欧洲日本在线| 91丨九色porny丨蝌蚪| 午夜精品福利久久久| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美日韩小视频| 国产精品亚洲综合一区在线观看| 亚洲午夜免费视频| 中文字幕精品一区二区精品绿巨人 | 一级中文字幕一区二区| 久久综合色婷婷| 91精品国产综合久久精品| 成人动漫中文字幕| 精品写真视频在线观看| 亚洲一级片在线观看| 国产精品美女久久久久aⅴ国产馆| 91精品蜜臀在线一区尤物| 91麻豆免费看| 成人黄色一级视频| 国产成人av电影在线| 久久国产人妖系列| 蜜桃精品视频在线| 日本va欧美va瓶| 日日摸夜夜添夜夜添精品视频| 亚洲美女区一区| 中国色在线观看另类| 国产无遮挡一区二区三区毛片日本| 日韩女同互慰一区二区| 这里只有精品电影| 这里只有精品99re| 欧美一区二区三区免费在线看| 欧美色精品在线视频| 在线观看网站黄不卡| 色综合天天狠狠| 一本到不卡免费一区二区| 99精品久久只有精品| 99久久精品一区| 日本精品裸体写真集在线观看| 91在线观看地址| 91毛片在线观看| 欧美撒尿777hd撒尿| 欧美日韩国产一级二级| 欧美日韩一区高清| 欧美福利电影网| 欧美大片在线观看一区| 欧美成人性福生活免费看| 久久综合久久99| 中文字幕乱码一区二区免费| 国产精品视频九色porn| 国产精品九色蝌蚪自拍| 亚洲精品视频一区二区| 亚洲成人一二三| 另类小说视频一区二区| 国产伦精一区二区三区| 99热这里都是精品| 色综合久久综合网97色综合| 在线视频一区二区三| 欧美日韩精品一区视频| 6080国产精品一区二区| 精品少妇一区二区三区日产乱码 | 欧美一区二区在线视频| 欧美成人video| 欧美激情一区二区三区| 亚洲视频电影在线| 性久久久久久久| 国产做a爰片久久毛片| 成人免费毛片高清视频| 91麻豆国产香蕉久久精品| 在线观看国产日韩| 欧美不卡视频一区| 日韩美女视频一区| 午夜精品久久久久久不卡8050| 久久国产视频网| 色香蕉久久蜜桃| 欧美一级艳片视频免费观看| 国产午夜亚洲精品羞羞网站| 一区二区三区久久久| 美脚の诱脚舐め脚责91| 99久久精品国产麻豆演员表| 欧美日韩在线观看一区二区| 2021国产精品久久精品| 一区二区欧美国产| 国产一区二区三区日韩| 91官网在线观看| 国产亚洲综合性久久久影院| 亚洲一区在线观看视频| 国产成人免费在线| 欧美日韩一二三区| 国产精品色哟哟| 日本vs亚洲vs韩国一区三区二区| 99久久国产综合精品女不卡| 日韩一区二区在线看片| 亚洲欧美日本韩国| 国产黄色成人av| 日韩一区二区三区高清免费看看| 国产精品久久毛片a| 六月婷婷色综合| 精品视频一区 二区 三区| 国产欧美一区二区三区在线看蜜臀| 亚洲123区在线观看| www.亚洲免费av| 久久久久久夜精品精品免费| 日韩国产精品久久久| 91热门视频在线观看| 国产亚洲欧美日韩在线一区| 人人精品人人爱| 欧美日韩在线播放三区| 日韩伦理电影网| 国产成人av影院| www激情久久| 日本免费新一区视频| 日本高清免费不卡视频| 日本一区二区三区电影| 狠狠色丁香婷综合久久| 欧美乱妇一区二区三区不卡视频| 中文字幕亚洲综合久久菠萝蜜| 国产一区二区免费视频| 日韩一区二区精品在线观看| 亚洲成人777| 欧美日韩一区二区不卡| 亚洲欧美电影一区二区| 成年人国产精品| 日本一区二区三区四区| 国产风韵犹存在线视精品| 精品盗摄一区二区三区| 裸体健美xxxx欧美裸体表演| 欧美一区二区久久| 美日韩黄色大片| 日韩你懂的电影在线观看| 青青草国产成人99久久| 欧美一区二区视频网站| 亚洲一区二区三区爽爽爽爽爽| 91精彩视频在线观看| 伊人开心综合网| 欧美色爱综合网| 丝袜美腿亚洲一区| 日韩免费观看2025年上映的电影| 免费人成黄页网站在线一区二区 | 精品污污网站免费看| 一区二区三区在线免费播放| 色哟哟国产精品| 亚洲成人在线观看视频| 91超碰这里只有精品国产| 日本aⅴ亚洲精品中文乱码| 欧美一区二区三区喷汁尤物| 麻豆国产欧美一区二区三区| 精品日本一线二线三线不卡| 国产一区二区影院| 国产精品国产三级国产a | 欧美精品亚洲一区二区在线播放| 亚洲小少妇裸体bbw| 欧美性xxxxx极品少妇| 日韩精品一区第一页| 日韩视频免费观看高清完整版在线观看 | 亚洲国产精品av| 成人av电影在线网| 一区二区视频在线看| 欧美日韩精品一区视频| 久草这里只有精品视频| 国产欧美视频在线观看| 一本色道久久综合亚洲91 | 成人性生交大片免费看中文网站| 亚洲女子a中天字幕| 欧美日韩情趣电影| 精品在线你懂的| 国产精品美女久久久久久| 欧美亚洲丝袜传媒另类| 美洲天堂一区二卡三卡四卡视频| 欧美国产丝袜视频| 欧美日韩免费高清一区色橹橹| 麻豆91免费看| ㊣最新国产の精品bt伙计久久| 精品视频一区二区三区免费| 国产在线视视频有精品| 亚洲乱码精品一二三四区日韩在线| 欧美一二区视频| 99久久777色| 精品一区二区三区久久久| 成人欧美一区二区三区小说| 91精品国产高清一区二区三区| 丁香激情综合国产| 蜜桃视频在线一区| 亚洲日韩欧美一区二区在线| 欧美美女激情18p| caoporm超碰国产精品| 免费观看一级欧美片| 亚洲视频资源在线| 久久久美女艺术照精彩视频福利播放| 91电影在线观看| 国产a视频精品免费观看| 五月激情综合色| 专区另类欧美日韩| 精品久久久久久久久久久院品网| 色婷婷av一区| 国产成都精品91一区二区三| 日本美女视频一区二区| 一区二区三区高清在线| 国产亚洲精久久久久久| 日韩欧美视频在线| 欧美日韩一卡二卡|