單片機(jī)之間數(shù)據(jù)傳輸?shù)能浻布O(shè)計(jì)
陸軍航空兵學(xué)院 信息技術(shù)教研室 徐剛 魏琴 2014/4/1 10:19:53
(接上頁(yè))器件還在繼續(xù)發(fā)送的話,不會(huì)自動(dòng)轉(zhuǎn)到下一頁(yè),而是從該頁(yè)的頭地址開始繼續(xù)寫入,覆蓋該頁(yè)的原有數(shù)據(jù),而造成數(shù)據(jù)丟失。
3.2 AT24C64與 AT89C2051硬件接口電路
AT89C2051單片機(jī)內(nèi)部沒有I2C總線,將2片AT24C64作為上片和下片接到AT89C2051不同的I/O口,從而可以實(shí)現(xiàn)從其中任意一片AT24C64讀出數(shù)據(jù)寫到另一片AT24C64中的功能,實(shí)現(xiàn)數(shù)據(jù)通過I2C總線在非I2C總線的單片機(jī)上任意傳輸?shù)墓δ埽娐啡鐖D1所示。其中每一片AT24C64芯片的三位地址端A2、A1和A0全部接地(當(dāng)A2、A1、A0接成不同的8種方式時(shí),表示片選不同的I2C器件)。上片的SDA線連到了P3.5,SCL線連到了P3.4,下片的SDA線連到了P1.2,SCL線連到了P1.1(注意,I2C總線的SDA和SCL都是要求加上拉電阻的,在這里的原理圖中卻沒有加上拉電阻,這是因?yàn)锳T89C2051的I/O口內(nèi)部已經(jīng)自帶上拉電阻了。但是,讀者請(qǐng)注意,在設(shè)計(jì)中應(yīng)用別的單片機(jī)時(shí)應(yīng)注意區(qū)別對(duì)待,看是否需要加上拉電阻。)。P1.0和P3.7分別接了一個(gè)按鍵,其中K1用于控制從上片讀向下片寫;K2用于控制從下片讀向上片寫。P1.5 、P1.6和P1.7分別接了一個(gè)發(fā)光二極管,其中LED1是電源指示燈,LED2指示從下片讀向上片寫,LED3指示從上片讀向下片寫。
圖1 89C2051與AT24C64接口電路圖
4 系統(tǒng)軟件設(shè)計(jì)思想
整個(gè)程序采用查詢方式讀取控制鍵的狀態(tài),以便做出相應(yīng)的傳送過程,如果有命令,使對(duì)應(yīng)的指示燈亮或者滅,并進(jìn)行相應(yīng)的數(shù)據(jù)傳送 。程序框圖如圖2所示。
.....
5 結(jié)束語(yǔ)
在單片機(jī)應(yīng)用中,I2C總線電路結(jié)構(gòu)簡(jiǎn)單,通信時(shí)只需要2根線且無(wú)需片選信號(hào)線,可以占用較少的單片機(jī)接口資源,另外,具有這種總線的器件的價(jià)格比較便宜,因而得到了更廣泛的應(yīng)用。但目前應(yīng)用很廣的MCS51系列、68HC05系列、AT89系列的單片機(jī)都不具有這種總線的接口,很大程度上限制了它們的應(yīng)用范圍。本文介紹了軟件模擬I2C總線的程序并給出了在AT89C2051上利用P1口實(shí)現(xiàn)I2C總線的方法,很好地解決了這一實(shí)際限制問題,在移動(dòng)通信的系統(tǒng)設(shè)計(jì)中應(yīng)用效果良好,具有較高的實(shí)際應(yīng)用價(jià)值。
6 參考文獻(xiàn)
[1] 尤一鳴等著 單片機(jī)總線擴(kuò)展技術(shù) 1993.11(第1版) 北京航空航天大學(xué)出版社
[2]何立民 I2C總線應(yīng)用系統(tǒng)設(shè)計(jì) 1995.2 (第1版) 北京航空航天大學(xué)出版社
[3] 盧有杰 等著 C語(yǔ)言高級(jí)程序設(shè)計(jì) 清華大學(xué)出版社
[4][美]Mark Nelson著 串行通信開發(fā)指南 中國(guó)水利水電出版社
作者簡(jiǎn)介:
徐剛,男,1974年生,研究生,主要從事單片機(jī)開發(fā)研究和電子實(shí)驗(yàn)室建設(shè)。
附件下載:點(diǎn)擊下載全部文件
|