• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于proteus的C51單片機I2C總線的實現(xiàn)

      2017-09-03 07:58:08王九龍鄭貴金
      綏化學(xué)院學(xué)報 2017年8期
      關(guān)鍵詞:綏化字節(jié)時序

      王九龍 鄭貴金

      (綏化學(xué)院電氣工程學(xué)院 黑龍江綏化 152061)

      基于proteus的C51單片機I2C總線的實現(xiàn)

      王九龍 鄭貴金

      (綏化學(xué)院電氣工程學(xué)院 黑龍江綏化 152061)

      I2C總線是由Philips公司設(shè)計的一款具有兩根接口的總線,其中一個接口為SCL,為時鐘信號,另一個接口為SDA,是數(shù)據(jù)信號,這種總線具有很多有優(yōu)點,如:接口線的數(shù)量少,通信速度比較快等。由于80C51系列單片機并沒有配置I2C總線接口,給I2C總線的使用帶來了不便。文章分別通過C語言與匯編語言分別對I2C時序進行編程,模擬了I2C總線在芯片間的通信。并在proteus軟件上進行了讀寫仿真驗證。

      I2C 總線;proteus;數(shù)據(jù)傳輸;AT24C04

      一、I2C總線的架構(gòu)

      I2C總線是能夠自動找尋從器件的地址、使得較高速率設(shè)備與較低速率的設(shè)備之間實現(xiàn)同步傳輸和優(yōu)化的挑選需要的從器件進行高性能數(shù)據(jù)傳送的總線。這種總線是以串行的方式在主期間與從器件之間進行數(shù)據(jù)傳送的。I2C總線有兩根可以進行雙向數(shù)據(jù)傳送的端口,一個端口是SDA,另一個端口是SCL[1-2]。其中,SCL負責時鐘信號的輸入,用來控制數(shù)據(jù)雙向傳送的時間順序,SDA負責數(shù)據(jù)的串行輸入,互相連接設(shè)備的所有數(shù)據(jù)端口均懸掛在此線上。圖1為所示I2C的架構(gòu)。

      圖1 I2C總線的架構(gòu)

      二、I2C總線的時序及程序?qū)崿F(xiàn)

      (一)I2C總線的典型信號及實現(xiàn)。I2C總線的數(shù)據(jù)傳輸有嚴格的時序要求,但主要包括以下四種典型信號:1)起始信號 S,2)終止信號 P,3)發(fā)送應(yīng)答信號(0),4)發(fā)送非應(yīng)答信號(1)[3-4]。如圖2所示。

      圖2 起始信號、終止信號、發(fā)送應(yīng)答信號、發(fā)送非應(yīng)答信號時序

      1.起始信號S。起始信號是用來啟動該總線的,為了保證起始信號有效,需要嚴格按照圖2所示的時間順序進行,其中兩種信號的持續(xù)時間,均不能低于圖中所標示的時間。實現(xiàn)程序如下:

      2.終止信號P。終止信號是用來釋放該總線的,為了保證終止信號有效,需要嚴格按照圖2所示的時間順序進行,其中兩種信號的持續(xù)時間,均不能低于圖中所標示的時間。實現(xiàn)程序如下:

      3.發(fā)送應(yīng)答信號(0)。從器件通過接受應(yīng)答信號通知主器件,一個字節(jié)的數(shù)據(jù)已被成功接受。只有嚴格按照圖中所標示的時間順序進行且兩種信號的持續(xù)時間均不低于所標注的時間,發(fā)送應(yīng)答信號才有效。實現(xiàn)程序如下:

      4.發(fā)送非應(yīng)答信號(1)。從器件通過接受非應(yīng)答信號通知主器件,一個字節(jié)的數(shù)據(jù)接受失敗。只有嚴格按照圖中所標示的時間順序進行且兩種信號的持續(xù)時間均不低于所標注的時間,發(fā)送非應(yīng)答信號才有效。實現(xiàn)程序如下:

      (二)I2C總線的讀寫傳輸格式。

      1.主機的寫操作格式。首先,主機會先發(fā)出起始信號S,從而使得I2C總線啟動;之后進行從器件的選擇,會下發(fā)一個控制字節(jié);剛才被選中的從器件在進行確認地址后,會在SDA線上發(fā)送一個應(yīng)答信號,以回復(fù)主器件。主機接收到應(yīng)答信號后開始數(shù)據(jù)傳送。傳送數(shù)據(jù)開始后,主機發(fā)送一個字節(jié)內(nèi)容以確認寫入地址,當主機接收到從器件發(fā)送回來的應(yīng)答信號之后,主機開始一個個發(fā)送需要傳送的字節(jié)的每一位(從高位到低位)。每完成一個數(shù)據(jù)需等待一個回答。當主機發(fā)送了P信號后,總線的控制權(quán)將被交出,終止操作[5]。如圖3。

      圖3 主機寫操作格式

      2.主機的讀操作格式。對從機進行讀出時,主機須先發(fā)送一個對該從器件的控制字節(jié)即“偽寫”。偽寫的目的是選擇讀出從器件,從器件確認是自己的地址后,在總線上產(chǎn)生一個應(yīng)答信號作為響應(yīng)。隨后,主機發(fā)送一個字節(jié)數(shù)據(jù)以確定讀出首地址,主機收到從器件的應(yīng)答信號后,重復(fù)一次起始信號,并將數(shù)據(jù)傳送方向確定為“讀出”。收到應(yīng)答信號后開始讀取各字節(jié)。每讀取一個字節(jié),主機都要回復(fù)應(yīng)答信號。直到所有的數(shù)據(jù)讀取完后,主機將返回一個“非應(yīng)答信號(0)”,以通知從器件所有的數(shù)據(jù)均以讀取完畢,隨后,主機將會發(fā)出一個P信號,總線的控制權(quán)將被交出,結(jié)束操作[6]。如圖4。

      圖4 主機讀操作格式

      三、89C51單片機的I2C總線硬件搭建

      為了模擬I2C總線在89C51系列單片機背景下芯片間的通信。本文在proteus上搭建了AT89C51單片機與AT24C04C的通信模型[7]。AT24C04 E2PROM是典型的I2C總線接口器件,容量為512B[8-9]。仿真電路模型如圖5所示。

      圖5 AT89C51與AT24C04C通信仿真電路

      仿真電路包含復(fù)位電路、晶振電路、I2C通訊部分電路與輸出電路四部分。利用P1.4口輸出SCL時鐘信號,利用P1.5口輸出SDA數(shù)據(jù)信號[10-11]。

      四、AT89C51單片機模擬I2C的仿真運行

      在上文給出的通信仿真電路上,模擬AT89C51與AT24C04C通信[12-13]。

      (一)模擬AT89C51單片機向AT24C04C內(nèi)寫入數(shù)據(jù)。通過控制SCL時鐘線與SDA信號線,預(yù)將16個十六進制數(shù)分別寫入AT24C04C的0x00~0x0f單元中。對應(yīng)單元的內(nèi)容見表1。

      表1 16個單元內(nèi)的16個數(shù)據(jù)對照表

      仿真運行后,AT24C04C0x00~0x0f單元的數(shù)據(jù)見圖6。

      圖6 仿真后AT24C04C中0x00~0x0f單元的數(shù)據(jù)

      由此可見,AT24C04C的0x00~0x0f單元內(nèi)的數(shù)據(jù)與預(yù)寫入數(shù)據(jù)內(nèi)容一致,AT89C51單片機向AT24C04C內(nèi)寫入數(shù)據(jù)仿真成功。

      (二)模擬AT89C51單片機從AT24C04C內(nèi)讀出數(shù)據(jù)。將剛剛寫入的16個數(shù)據(jù)從AT24C04C內(nèi)部讀入89C51單片機[14],并由P2.0口輸出,驅(qū)動共陽極的8個LED等閃爍,根據(jù)讀出數(shù)據(jù)可知,將產(chǎn)生流水燈的效果。P2口的字節(jié)地址為0xa0,當然,也可從C51的特殊功能寄存器(SFR)內(nèi)讀該數(shù)據(jù)。如圖7、如圖8所示。

      圖7 P2口輸出0x04時,對應(yīng)的仿真現(xiàn)象

      圖8 89C51單片機SFR的0xa0中同一時刻數(shù)據(jù)

      經(jīng)過仿真驗證,89C51單片機所讀數(shù)據(jù)與所寫數(shù)據(jù)一致,AT89C51單片機向AT24C04C內(nèi)讀出數(shù)據(jù)仿真成功。

      五、總結(jié)

      本文通過proteus搭建了AT89C51單片機與AT24C04C芯片進行I2C通信的仿真電路,經(jīng)proteus仿真通信模型驗證后,表明數(shù)據(jù)的寫入與讀取均能順利完成。在C51系列單片機沒有I2C總線的情況下,成功模擬出I2C總線在芯片間的通信。并使用C語言與匯編語言編寫出I2C的4種典型時序及其數(shù)據(jù)的讀寫格式。經(jīng)驗證,程序簡潔有效。

      [1]李全利.單片機原理及接口技術(shù)[M].北京:高等教育出版社,2009.

      [2]李朝青.單片機原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.

      [3]馬忠梅,等.單片機的C語言應(yīng)用程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2007.

      [4]伍馮潔.Proteus虛擬仿真技術(shù)在I2C總線通信中的應(yīng)用[J].太赫茲科學(xué)與電子信息學(xué)報,2015(4):675-678.

      [5]黃鑫,王玉林,謝靜.基于I2C總線的單片機系統(tǒng)設(shè)計與虛擬仿真[J].儀器儀表用戶,2010(4):44-46.

      [6]劉文光,張銘銘.51單片機I2C總線接口仿真研究[J].電子制作,2012(10):1-2.

      [7]張遠輝,張鼎,許昌,等.基于Proteus的XY數(shù)控工作臺仿真模型設(shè)計[J].實驗技術(shù)與管理,2015(3):133-136.

      [8]趙輝,董德存.I2C總線技術(shù)及其應(yīng)用實例[J].微型電腦應(yīng)用,2005(4):61-63+66.

      [9]石宗義.I2C總線時序分析及其模擬[J].太原理工大學(xué)學(xué)報,2004(1):53-56.

      [10]劉心紅,郭福田,孫振興,等.Proteus仿真技術(shù)在單片機教學(xué)中的應(yīng)用[J].實驗技術(shù)與管理,2007(3):96-98+102.

      [11]汪寧.Proteus軟件的單片機仿真方法[J].山東輕工業(yè)學(xué)院學(xué)報(自然科學(xué)版),2007(1):24-27.

      [12]周靈彬,張靖武.PROTEUS的單片機教學(xué)與應(yīng)用仿真[J].單片機與嵌入式系統(tǒng)應(yīng)用,2008(1):76-79.

      [13]葉建波,朱雙東.基于Proteus的單片機電路的虛擬仿真[J].電子工程師,2008(11):23-24+67.

      [14]陳知紅,王錦蘭.Proteus仿真軟件在電工學(xué)中的應(yīng)用[J].實驗技術(shù)與管理,2014(2):93-95+128.

      [責任編輯 鄭麗娟]

      TP273

      A

      2095-0438(2017)08-0151-05

      2017-02-02

      王九龍(1988-),男,陜西寶雞人,綏化學(xué)院電氣工程學(xué)院助教,碩士,研究方向:嵌入式開發(fā)設(shè)計。

      猜你喜歡
      綏化字節(jié)時序
      時序坐標
      何藩紀實攝影創(chuàng)作中的主觀因素研究
      基于Sentinel-2時序NDVI的麥冬識別研究
      No.8 字節(jié)跳動將推出獨立出口電商APP
      綏化天氣雷達系統(tǒng)建設(shè)實施過程的關(guān)鍵點回顧
      黑龍江氣象(2021年2期)2021-11-05 07:07:08
      No.10 “字節(jié)跳動手機”要來了?
      新聞評論應(yīng)注意在“度”和“點”上著力——《綏化日報》加強輿論引導(dǎo)能力的實踐與思考
      新聞傳播(2018年5期)2018-05-30 07:03:01
      簡談MC7字節(jié)碼
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      綏化三館兒
      婦女之友(2014年4期)2014-06-12 04:04:28
      如皋市| 洪洞县| 东安县| 平遥县| 灌阳县| 黄冈市| 廉江市| 恩平市| 双辽市| 明星| 晴隆县| 新竹市| 贵溪市| 大石桥市| 湘潭县| 澳门| 龙胜| 汾阳市| 南京市| 永寿县| 洞口县| 永嘉县| 明光市| 松溪县| 高雄县| 肇东市| 西乡县| 皮山县| 寿宁县| 德兴市| 十堰市| 大同市| 陈巴尔虎旗| 建平县| 秦安县| 二手房| 西乌珠穆沁旗| 敦煌市| 永州市| 耿马| 枝江市|