浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 測試測量

MSP430與I2C總線接口技術(shù)的研究

發(fā)布時間:2008/5/27 0:00:00 訪問次數(shù):831

        

    

    引言

    msp430單片機(jī)自從2000年問世以來,就以其功能完善、超低功耗、開發(fā)簡便的特點(diǎn)得到了許多設(shè)計(jì)人員的青睞。msp430與傳統(tǒng)的51單片機(jī)在結(jié)構(gòu)上有很大的區(qū)別。其中之一就是:在msp430的外圍接口電路中,沒有提供像51那樣控制外設(shè)讀、寫、地址鎖存信號的硬件電路。與這種接口電路相適應(yīng),msp430更傾向使用i2c總線以及isp等基于串行接口的外圍器件。另一方面,隨著i2c技術(shù)的發(fā)展和成熟,其硬件結(jié)構(gòu)簡單、高速傳輸、器件豐富等特點(diǎn)使該類器件的應(yīng)用越來越廣泛。因此研究新型單片機(jī)msp430與i2c總線接口技術(shù)有著重要的意義。本文針對這一問題進(jìn)行研究,分析研究了msp430與i2c總線接口的原理和方法,提出了高效的接口方法,介紹了優(yōu)化的程序。

    1 msp430單片機(jī)i/o端口控制特點(diǎn)

    與8031單片機(jī)相比,msp430的i/o端口的功能要強(qiáng)大的多,其控制的方法也更為復(fù)雜。msp430的i/o端口可以實(shí)現(xiàn)雙向的輸入、輸出;完成一些特殊功能如:驅(qū)動lcd、a/d轉(zhuǎn)換、捕獲比較等;實(shí)現(xiàn)i/o各種中斷。msp430采用了傳統(tǒng)的8位端口方式保證其兼容性,即每個i/o端口控制8個i/o引腳。為了實(shí)現(xiàn)對i/o端口每一個引腳的復(fù)雜控制,msp430中的每個i/o口都對應(yīng)一組8位的控制寄存器(如圖1)。寄存器中的每一位對應(yīng)一個i/o引腳,實(shí)現(xiàn)對該引腳的獨(dú)立控制。寄存器的功能和數(shù)目是由該i/o口所能完成的功能以及類型確定的。[2]

    圖1為msp430的一個i/o端口的控制結(jié)構(gòu)示意圖。對于最基本的只能完成輸入、輸出功能的i/o端口其控制寄存器只有3個。其中,輸入寄存器保存輸入狀態(tài);輸出寄存器保存輸出的狀態(tài),方向寄存器控制對應(yīng)引腳的輸入、輸出狀態(tài)。本文中用來實(shí)現(xiàn)i2c總線接口的p6.6、p6.7都屬于這類的端口。此外,有些i/o端口不但可以用作基本的輸入輸出,而且可以用作其他用途,比如可以作為lcd的驅(qū)動控制引腳。這類端口的控制功能寄存器實(shí)現(xiàn)引腳功能狀態(tài)的切換。再者,有一類端口不但可以完成上述兩種端口的功能,而且可以實(shí)現(xiàn)中斷功能。該類端口擁有圖1中所有的寄存器,中斷觸發(fā)的方式以及中斷的屏蔽性都可以通過相應(yīng)的寄存器控制。本文中使用的p2.0就屬于該類端口,利用它來接收lm92發(fā)出的中斷。

    

    

    

    通過上述的控制結(jié)構(gòu),msp430的i/o端口可以實(shí)現(xiàn)很豐富的功能。不僅如此,其中一些i/o口還可以與msp430中的特殊模塊相結(jié)合完成更為復(fù)雜的工作。如與捕獲比較模塊相結(jié)合可以實(shí)現(xiàn)串行通信,與a/d模塊結(jié)合實(shí)現(xiàn)a/d轉(zhuǎn)換等。此外,msp430 i/o端口的電器特性也十分突出,幾乎所有的i/o口都有20ma的驅(qū)動能力,對于一般的led、蜂鳴器可以直接驅(qū)動無需輔助電路。許多端口內(nèi)部都集成了上拉電阻,可以方便與外圍器件的接口。

    2 msp430與i2c總線器件接口

    通過上述的介紹了解了msp430中i/o口的一些控制特點(diǎn)。以下介紹如何利用這些特點(diǎn)實(shí)現(xiàn)i2c總線的接口。如圖2所示,使用41系列單片機(jī)的p6.6產(chǎn)生i2c總線的時序同步信號;使用p6.7完成i2c總線的串行數(shù)據(jù)輸入輸出;利用p2.0接收lm92產(chǎn)生的中斷信號;趇2c總線規(guī)范,通過對lm92的a0、a1和at240的a0、a1、a2設(shè)定不同的器件地址,兩個器件可以共用scl、sda。

    

    

    

    2.1 i/o端口引腳控制

    與8031不同,msp430沒有位空間,也沒有專門執(zhí)行位操作的控制電路。那么對于一個指定的i/o端它是如何進(jìn)行控制的呢?msp430中有關(guān)位操作的指令都是通過邏輯運(yùn)算實(shí)現(xiàn)的。[3]例如:

    bisb #01000010b,p1out ; 將p1.6和p1.1置位xorb #01000010b,p1out ; 邏輯或運(yùn)算

    該例中的置位指令bisb是用原操作數(shù)(01000010)與目的操作數(shù)(p1out)做邏輯或運(yùn)算得到的。因此該命令與第二行的指令是等效的。雖然,這樣的控制方法比起8031略顯復(fù)雜,但它的控制能力有所增強(qiáng)。從例子中不難看出,這種方式可以同時控制多個端口位。

    2.2 簡化i2c接口的方法

    眾所周知,實(shí)現(xiàn)i2c總線協(xié)議主要是控制sda、scl使其產(chǎn)生協(xié)議所規(guī)定的各種時序。要控制p6.7、p6.6產(chǎn)生i2c總線要求的各種時序,就要頻繁使用到輸入、輸出以及方向寄存器。而要減少代碼的量,簡化接口控制,最直接的方法就是減少有關(guān)寄存器操作次數(shù)。要實(shí)現(xiàn)這一想法需要軟硬件結(jié)合,充分利用i/o口的特點(diǎn)以

        

    

    引言

    msp430單片機(jī)自從2000年問世以來,就以其功能完善、超低功耗、開發(fā)簡便的特點(diǎn)得到了許多設(shè)計(jì)人員的青睞。msp430與傳統(tǒng)的51單片機(jī)在結(jié)構(gòu)上有很大的區(qū)別。其中之一就是:在msp430的外圍接口電路中,沒有提供像51那樣控制外設(shè)讀、寫、地址鎖存信號的硬件電路。與這種接口電路相適應(yīng),msp430更傾向使用i2c總線以及isp等基于串行接口的外圍器件。另一方面,隨著i2c技術(shù)的發(fā)展和成熟,其硬件結(jié)構(gòu)簡單、高速傳輸、器件豐富等特點(diǎn)使該類器件的應(yīng)用越來越廣泛。因此研究新型單片機(jī)msp430與i2c總線接口技術(shù)有著重要的意義。本文針對這一問題進(jìn)行研究,分析研究了msp430與i2c總線接口的原理和方法,提出了高效的接口方法,介紹了優(yōu)化的程序。

    1 msp430單片機(jī)i/o端口控制特點(diǎn)

    與8031單片機(jī)相比,msp430的i/o端口的功能要強(qiáng)大的多,其控制的方法也更為復(fù)雜。msp430的i/o端口可以實(shí)現(xiàn)雙向的輸入、輸出;完成一些特殊功能如:驅(qū)動lcd、a/d轉(zhuǎn)換、捕獲比較等;實(shí)現(xiàn)i/o各種中斷。msp430采用了傳統(tǒng)的8位端口方式保證其兼容性,即每個i/o端口控制8個i/o引腳。為了實(shí)現(xiàn)對i/o端口每一個引腳的復(fù)雜控制,msp430中的每個i/o口都對應(yīng)一組8位的控制寄存器(如圖1)。寄存器中的每一位對應(yīng)一個i/o引腳,實(shí)現(xiàn)對該引腳的獨(dú)立控制。寄存器的功能和數(shù)目是由該i/o口所能完成的功能以及類型確定的。[2]

    圖1為msp430的一個i/o端口的控制結(jié)構(gòu)示意圖。對于最基本的只能完成輸入、輸出功能的i/o端口其控制寄存器只有3個。其中,輸入寄存器保存輸入狀態(tài);輸出寄存器保存輸出的狀態(tài),方向寄存器控制對應(yīng)引腳的輸入、輸出狀態(tài)。本文中用來實(shí)現(xiàn)i2c總線接口的p6.6、p6.7都屬于這類的端口。此外,有些i/o端口不但可以用作基本的輸入輸出,而且可以用作其他用途,比如可以作為lcd的驅(qū)動控制引腳。這類端口的控制功能寄存器實(shí)現(xiàn)引腳功能狀態(tài)的切換。再者,有一類端口不但可以完成上述兩種端口的功能,而且可以實(shí)現(xiàn)中斷功能。該類端口擁有圖1中所有的寄存器,中斷觸發(fā)的方式以及中斷的屏蔽性都可以通過相應(yīng)的寄存器控制。本文中使用的p2.0就屬于該類端口,利用它來接收lm92發(fā)出的中斷。

    

    

    

    通過上述的控制結(jié)構(gòu),msp430的i/o端口可以實(shí)現(xiàn)很豐富的功能。不僅如此,其中一些i/o口還可以與msp430中的特殊模塊相結(jié)合完成更為復(fù)雜的工作。如與捕獲比較模塊相結(jié)合可以實(shí)現(xiàn)串行通信,與a/d模塊結(jié)合實(shí)現(xiàn)a/d轉(zhuǎn)換等。此外,msp430 i/o端口的電器特性也十分突出,幾乎所有的i/o口都有20ma的驅(qū)動能力,對于一般的led、蜂鳴器可以直接驅(qū)動無需輔助電路。許多端口內(nèi)部都集成了上拉電阻,可以方便與外圍器件的接口。

    2 msp430與i2c總線器件接口

    通過上述的介紹了解了msp430中i/o口的一些控制特點(diǎn)。以下介紹如何利用這些特點(diǎn)實(shí)現(xiàn)i2c總線的接口。如圖2所示,使用41系列單片機(jī)的p6.6產(chǎn)生i2c總線的時序同步信號;使用p6.7完成i2c總線的串行數(shù)據(jù)輸入輸出;利用p2.0接收lm92產(chǎn)生的中斷信號;趇2c總線規(guī)范,通過對lm92的a0、a1和at240的a0、a1、a2設(shè)定不同的器件地址,兩個器件可以共用scl、sda。

    

    

    

    2.1 i/o端口引腳控制

    與8031不同,msp430沒有位空間,也沒有專門執(zhí)行位操作的控制電路。那么對于一個指定的i/o端它是如何進(jìn)行控制的呢?msp430中有關(guān)位操作的指令都是通過邏輯運(yùn)算實(shí)現(xiàn)的。[3]例如:

    bisb #01000010b,p1out ; 將p1.6和p1.1置位xorb #01000010b,p1out ; 邏輯或運(yùn)算

    該例中的置位指令bisb是用原操作數(shù)(01000010)與目的操作數(shù)(p1out)做邏輯或運(yùn)算得到的。因此該命令與第二行的指令是等效的。雖然,這樣的控制方法比起8031略顯復(fù)雜,但它的控制能力有所增強(qiáng)。從例子中不難看出,這種方式可以同時控制多個端口位。

    2.2 簡化i2c接口的方法

    眾所周知,實(shí)現(xiàn)i2c總線協(xié)議主要是控制sda、scl使其產(chǎn)生協(xié)議所規(guī)定的各種時序。要控制p6.7、p6.6產(chǎn)生i2c總線要求的各種時序,就要頻繁使用到輸入、輸出以及方向寄存器。而要減少代碼的量,簡化接口控制,最直接的方法就是減少有關(guān)寄存器操作次數(shù)。要實(shí)現(xiàn)這一想法需要軟硬件結(jié)合,充分利用i/o口的特點(diǎn)以

相關(guān)IC型號

熱門點(diǎn)擊

 

推薦技術(shù)資料

音頻變壓器DIY
    筆者在本刊今年第六期上著重介紹了“四夾三”音頻變壓器的... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!