999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

I2C總線器件編程開發關鍵技術

2018-12-06 02:10:08黃忠良
汽車電器 2018年11期
關鍵詞:信號

黃忠良

(沙洲職業工學院,江蘇 張家港 215600)

在微機控制領域,作為外圍芯片的I2C總線器件因結構簡單,可靠性高,得到了廣泛應用。例如存儲芯片24C02,用于記錄密碼及公里數等,廣泛用于汽車儀表系統。I2C(Inter-Integrated Circuit)總線又稱IIC總線或I2C總線,是PHLIPS公司推出的一種高性能串行總線。采用I2C串行總線技術可以精簡系統硬件設計,提高系統可靠性,同時,系統也易于擴充與升級。24C02作為I2C總線接口存儲芯片,屬串行EEPROM,容量2 kbit,斷電后數據不會丟失,常用于記錄密碼及公里數等場合。

1 24C02及I2C總線接口電路

24C02引腳圖如圖1所示,24C02與51單片機接口電路如圖2所示。

圖1 24C02引腳

應用I2C總線器件進行編程時,由單片機主機完成I2C總線初始化、數據傳送、產生時鐘信號和終止發送功能,從機24C02接收主機發送的數據。I2C總線具有總線裁決功能,主要依靠從機設備地址實現。對于24C02,8位從機設備地址的高4位固定為1010,后3位為A2、A1、A0,最后1位是數據傳送的方向位 (R/W),主機將數據寫入從機為“0”,主機從從機讀出數據為“1”。

圖2 24C02與單片機接口電路

2 I2C總線的數據傳送

2.1 起始條件與停止條件

只有在起始條件滿足后才能進行數據傳送,起始條件與停止條件如圖3所示。

圖3 起始條件與停止條件

從圖3可看出,當SCL處于高電平期間,SDA從高電平向低電平跳變時產生起始條件。當SCL處于高電平期間時,SDA從低電平向高電平跳變時產生停止條件。

2.2 I2C位數據傳輸規定

位數據的有效性及應答信號時序如圖4所示。

圖4 位數據的有效性及應答信號時序

主機進行數據傳送時,從最高位開始逐位傳送,時鐘信號線為高電平期間,位數據必須保持不變。另外,每傳送8位數據 (即一個字節)后,從機都必須產生一個應答信號。

3 I2C總線接口數據讀寫時序與編程

3.1 24C02字節讀取時序

從機讀操作有3種不同的方式:讀當前地址內容、讀隨機地址內容、讀順序地址內容。圖5為24C02讀隨機地址內容操作時序。

圖5 24C02字節讀時序

隨機讀操作允許主機對存儲器的任意字節進行讀操作,主機首先通過發送起始信號、從機設備地址和它想讀取的字地址執行一個偽寫操作。在從機應答之后,主機重新發送起始信號和從機設備地址,注意此處R/W位為1,從機響應并發送應答信號,然后輸出所要求的一個8位字節數據,主機不發送應答信號但產生一個停止信號。

3.2 24C02字節寫入時序

24C02字節寫操作時序如圖6所示。

圖6 24C02字節寫時序

主機先發送起始命令,然后發送從機設備地址數據,主機在收到從機產生的應答信號后,再發送一個字的地址數據,主機再次收到從機的應答信號后,最后發送數據到相應存儲單元。從機再次應答,并在主機產生停止信號后開始內部數據的擦寫,在內部擦寫過程中,從機不再應答主機的任何請求。

3.3 24C02字節寫入編程

下列代碼完成24C02字節寫入。

void write_byte (uchar add,uchar dat )

{

void init ();//I2C總線初始化

void start (void);//起始條件

I2Cwr_byte (0xa0);//寫24C02地址

void ack (void);//從機24C02應答

I2Cwr_byte (add);//寫單元地址

void ack (void);//從機24C02應答

I2Cwr_byte (dat);//寫數據

void ack (void);//從機24C02應答

void stop (void);//結束條件

}

說明:上述用到的幾個被調用函數定義如下。

①void init ();//I2C總線初始化

{

sda=1;

scl=1;

}

②void start (void);//起始條件

{

scl=0;//拉低SCL再改SDA以防誤操作

delay ();

sda=1;

delay ();

scl=1;

delay ();

sda=0;

delay ();

}

③I2Cwr_byte(uchar dat) /*單字節傳送操作*/

{

uchar i;

scl=0;//時鐘線上的信號為低電平期間,數據線上電平狀態允許變化

for (i=0;i<8;i++) //采用逐位傳送方式

{

if (dat&0x80);//為先傳最高位狀態作準備

{

sda=1;

}

else

{

sda=0;

}

dat=dat<<1;//準備傳送后面一位

delay ();

scl=1;//總線數據傳送

delay ();

scl=0;

delay ();

}

sda=1;//主機釋放總線

delay ();

}

④void stop (void);//停止條件

{

scl=0;//先拉低SCL,再改變SDA

delay ();

sda=0;

delay ();

scl=1;

delay ();

sda=1;

delay ();

}

⑤void ack (void) //從機應答

{

uchar I;

scl=1;

delay ();

while ((sda==1) && (i<200)) i++;//等待接收應答或作超時處理

scl=0;

delay ();

}

另外,有關24C02字節的讀取編程見圖5。

4 結束語

24CXX芯片目前已廣泛應用在斷電后仍然需要保持存儲數據的場合。上述I2C總線存儲單元讀寫編程方法已在Proteus上仿真調試成功。就I2C總線器件編程開發而言,正確理解操作時序至關重要,否則會導致通信失敗。

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 69av免费视频| 欧美色视频网站| 麻豆AV网站免费进入| 成人福利免费在线观看| 毛片网站免费在线观看| 综合久久久久久久综合网| 国产成人综合久久| 米奇精品一区二区三区| 欧美国产中文| 免费在线一区| 免费人成又黄又爽的视频网站| 欧美不卡在线视频| 她的性爱视频| 国产在线观看第二页| 国产精品污污在线观看网站| 十八禁美女裸体网站| 久久人妻xunleige无码| 成年免费在线观看| 国产精品亚洲五月天高清| 国产一区在线视频观看| 国产亚洲精| 日韩欧美国产三级| 国产草草影院18成年视频| 亚洲综合一区国产精品| 专干老肥熟女视频网站| 99无码中文字幕视频| 一级成人a毛片免费播放| 91精品视频网站| 久久男人资源站| 免费国产小视频在线观看| 在线观看av永久| 亚洲日韩AV无码精品| 在线另类稀缺国产呦| 女同久久精品国产99国| 国产乱码精品一区二区三区中文| 一本久道久综合久久鬼色| 一级毛片在线免费视频| 99偷拍视频精品一区二区| 欧美在线综合视频| 色色中文字幕| 在线色综合| 欧美a在线看| 91年精品国产福利线观看久久| 国产一区二区三区在线观看视频| 一级黄色欧美| 亚洲福利视频网址| 国产成人禁片在线观看| 九九这里只有精品视频| 欧美精品不卡| 久久国产拍爱| 69精品在线观看| 中文字幕亚洲电影| 亚洲不卡网| 亚洲一级毛片在线播放| 蜜芽一区二区国产精品| 毛片卡一卡二| 久久久精品国产SM调教网站| 国产全黄a一级毛片| 久久不卡国产精品无码| 亚洲天堂视频在线观看免费| 亚洲综合婷婷激情| 日韩精品欧美国产在线| 国产精品免费入口视频| 欧美丝袜高跟鞋一区二区| 亚洲区第一页| 国产日韩欧美精品区性色| 亚洲AV人人澡人人双人| 老色鬼久久亚洲AV综合| 无码精油按摩潮喷在线播放| 狼友视频国产精品首页| 一级一级一片免费| 在线免费a视频| 熟妇无码人妻| 欧美区一区| 91精品视频在线播放| 国产呦精品一区二区三区下载| 中文字幕精品一区二区三区视频| 黄色a一级视频| aaa国产一级毛片| 视频二区中文无码| 亚洲V日韩V无码一区二区| 一级毛片免费观看不卡视频|