熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > I2C總線在8051單片機系統中的應用

I2C總線在8051單片機系統中的應用

時間:2008-03-14 17:16:00來源:ronggang

導語:?I2C總線是PHILIPS公司推出的一種具備多主機系統所需的包括裁決和高低速設備同步等功能的高性能串行總線
I2C總線是PHILIPS公司推出的一種具備多主機系統所需的包括裁決和高低速設備同步等功能的高性能串行總線。它使用兩條線:串行數據線(SDA)和串行時鐘線(SCL),使連接到該總線上可訪問的器件之間傳送信息,屬于多主控制總線。總線上的每個器件都有唯一的地址識別,而且都可以作為一個發送器或接收器。由于I2C總線的使用可以簡化電路,省掉了很多常規電路中的接口器件,提高產品的可靠性,在許多領域尤其在目前使用的IC卡獲得了廣泛的應用。   現今,8051系列的單片機應用很廣,但是它們都沒有I2C總線接口。但是分析I2C總線的時序可知, I2C總線規定其時鐘線(SCL線)和和數據線(SDA線)是各設備對應輸出狀態相“與”的結果,任一設備都可以用輸出低電平的方法延長SCL低電平時間,迫使高速設備進入等待狀態,實現不同速度設備間的時鐘同步。因此,即使時鐘脈沖的高、低電平時間長短不一,也能實現數據的可靠傳送,因此我們可以通過軟件控制單片機的普通I/O口做I2C接口,實現I2C總線功能。本文以ATMEL公司的具有I2C總線的AT24C256為例介紹I2C總線在8051單片機系統中的應用并給出C語言的軟件實現。 I2C總線構成及時序   I2C總線組成   I2C總線是一個多主機總線,即可以連接多于一個能控制總線的器件到總線。I2C串行總線有兩根信號線:一根雙向的數據線SDA;另一根是時鐘線SCL。SDA和SCL都是雙向I/O口線,當總線空閑時這兩條線路都是高電平。所有接到I2C總線上的器件的串行數據線都接到總線的SDA線,各器件的時鐘線都接到SCL總線上。其結構如圖一所示。
I2C總線時序   所有主機在SCL線上產生自己的時鐘來傳輸I2C總線上的數據,數據只在時鐘的高電平周期有效,每傳輸一個數據位就產生一個時鐘脈沖,數據線的高或低電平狀態只有在SCL線的時鐘信號是低電平時才能改變,當SCL為高電平時,SDA的改變表示“開始”和“停止”狀態,即SDA由高電平轉入低電平表示開始,該命令必須在其它命令前執行;SDA由低電平轉入高電平表示停止狀態,該命令可終止所有通訊。在開始條件后,SCL低電平期間,SDA允許變化,每位數據需一個時鐘脈沖,當SCL為高時,SDA必須穩定,主控器在應答時鐘脈沖高電平期間釋放SDA線,轉由接收器控制。相同總線上的設備在收到數據后,以置SDA為低電平的方式對其確認。總線不忙時,數據線和時鐘線保持為高電平。I2C的時序如圖二所示。
8051單片機系統中I2C總線的實現   8051系列單片機上并不帶I2C總線,因此必須根據I2C總線的時序用單片機上的I/O口模擬I2C總線時序實現其功能。現以單片機應用系統中較為常見的E2PROM中AT24C256為例,介紹在8051上利用普通I/O口實現I2C串行總線的方法和軟件設計。   AT24C256是ATMEL公司256kbit串行電可擦的可編程存儲器,8引腳雙排直插式封裝,具有結構緊湊、存儲容量大等特點,其引腳排列如圖三所示。
其中A0、A1為地址選擇輸入端。A0、A1用來區分各芯片地址,地址分布從0到3。A0、A1懸空時為0。SCL為串行時鐘輸入,上升沿將SDA上的數據寫入存儲器,下降沿從存儲器讀出數據送SDA上。SDA是雙向串行數據輸入輸出口,用于存儲器與單片機之間的數據交換。WP為寫保護輸入。此引腳與地相連時,允許寫操作;與VCC相連時,所有的寫存儲器操作被禁止。如果不連,芯片內部下拉到地;VCC接+5V電源;GND接地;NC懸空。   AT24C256在開始狀態后需緊接一個8位器件地址,以進行相應的讀寫操作。設備尋址碼的高4位為1、0、1、0,尋址碼高4位后面的三位是器件尋址碼,與它們的硬連線管腳相對應。最低應是讀寫選擇位,置0時可激發寫操作,置1激發讀操作。器件的具體的格式為:1010A2A1A0R/W,其中當R/W為0時,為寫AT24C256,當為1時為讀操作。   因為AT24C256片內地址是以8位為單元的,其總存儲容量為256K,所以其片內地址為從0到32767的任意數值。因此在編寫軟件時設置其片內地址數據類型時要設置為unsigned int型,而不能為unsigned char型。   圖四所示為AT89S51單片機和AT24C256的接口圖,分別用I/O口P1.6、P1.7連接SDA和SCL總線。通過控制P1.7口的高低電平得到I2C的虛擬時鐘,P1.6口作為數據傳輸的雙向端口,作為單片機和AT24C256之間的數據線。
圖四 虛擬I2C總線軟件結構
  對于虛擬I2C總線來說要實現其功能主要是要軟件要注意I2C器件的操作時序,總線的運行由主機控制。所謂主機即啟動數據的傳送即發出啟動信號,發出時鐘信號,傳送結束時發出停止信號的設備,通常主機是微處理器。被主機尋訪的設備都稱為從機。為了進行通訊,每個接到I2C總線的設備都有一個唯一的地址,以便于主機尋訪。主機和從機的數據傳送,可以由主機發送數據到從機,也可以是從機發到主機。凡是發送數據到總線的設備稱為發送器,從總線上接收數據的設備被稱為接受器。根據I2C的時序,軟件分為開始、停止、應答、檢查應答、不產生應答、讀操作、寫操作。以下為C程序清單調試成功。

標簽:

點贊

分享到:

上一篇:丹佛斯變頻器替代水箱式拉絲...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 红安县| 云龙县| 乌兰浩特市| 金阳县| 开平市| 蒲城县| 屏东市| 黔东| 峨山| 龙口市| 潍坊市| 安平县| 理塘县| 尚义县| 怀集县| 马龙县| 西贡区| 宜宾市| 金塔县| 瓮安县| 共和县| 沧州市| 珲春市| 保山市| 天峨县| 温宿县| 县级市| 益阳市| 天长市| 榆林市| 阳新县| 漳州市| 霸州市| 泰安市| 麻栗坡县| 临江市| 鄂托克前旗| 鹰潭市| 和平县| 宜州市| 乐昌市|