




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第10章 串行輸入/輸出端口的使用 微控制器芯片之間通信的實(shí)現(xiàn)目標(biāo)通過本章的學(xué)習(xí),應(yīng)掌握以下知識 MSP430系列微控制器內(nèi)部的串行數(shù)據(jù)傳輸模塊 通用串行接口(Universal Serial Interface,USI)的使用 串行外圍接口(Serial Peripheral Interface,SPI)工作模式 I2C接口(Inter Integrated Circuit,I2C)工作模式 I2C總線的組成結(jié)構(gòu)和技術(shù)術(shù)語 I2C總線上數(shù)據(jù)傳送的時(shí)序引言在第5章,利用軟件的方法實(shí)現(xiàn)了同步串行方式的數(shù)據(jù)傳輸,驅(qū)動(dòng)同步移位寄存器74164芯片,最后實(shí)現(xiàn)數(shù)碼管的數(shù)據(jù)顯示。MSP430系列微控制器內(nèi)
2、部具有多種串行數(shù)據(jù)傳輸模塊,使用這些模塊可以降低軟件開發(fā)的要求,同時(shí)還可以提高數(shù)據(jù)傳輸?shù)乃俾?。MSP430x2xx芯片內(nèi)部串行數(shù)據(jù)傳輸模塊的基本組成單元是一個(gè)移位寄存器。第5章中介紹的74164芯片也是一種移位寄存器,該芯片用來將串行格式的數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)格式。當(dāng)時(shí)鐘上跳邊沿到來時(shí),74164芯片串行輸入數(shù)據(jù)將被送到并行輸出管腳Q0對應(yīng)的觸發(fā)器、同時(shí)并行輸出管腳Q0對應(yīng)觸發(fā)器原有的數(shù)據(jù)移到并行輸出管腳Q1對應(yīng)的觸發(fā)器、并行輸出管腳Q1對應(yīng)觸發(fā)器原有的數(shù)據(jù)移到并行輸出管腳Q2對應(yīng)的觸發(fā)器、并行輸出管腳Q6對應(yīng)觸發(fā)器原有的數(shù)據(jù)移到并行輸出管腳Q7對應(yīng)的觸發(fā)器。并行輸出管腳Q7對應(yīng)觸發(fā)器的數(shù)據(jù)將被
3、移出,或者丟棄。在數(shù)據(jù)接收時(shí),MSP430x2xx芯片內(nèi)部串行數(shù)據(jù)傳輸模塊的移位寄存器工作與74164芯片類似,當(dāng)數(shù)據(jù)全部移入移位寄存器就能夠讀這個(gè)數(shù)據(jù);在數(shù)據(jù)發(fā)送時(shí),先以并行輸入的方式向移位寄存器寫數(shù)據(jù),然后將它逐位移出。盡管基于微控制器進(jìn)行電路功能的實(shí)現(xiàn)是通過編寫程序完成的,但是硬件功能是編寫程序的基礎(chǔ)。充分地了解芯片的硬件組成和工作原理將對它的完美使用提供扎實(shí)的支持。描述數(shù)字系統(tǒng)和數(shù)字電路的方法和用來實(shí)現(xiàn)這些方法的技術(shù)不斷變化,但是作為理論基礎(chǔ)的基本原理并沒有改變,理解74164移位寄存器芯片的工作將對本章涉及的MSP430x2xx微控制器內(nèi)部串行數(shù)據(jù)傳輸模塊的工作帶來方便。10.1 M
4、SP430x2xx微控制器的串行接口數(shù)字技術(shù)已經(jīng)滲透到人類生活的眾多領(lǐng)域,其中數(shù)字計(jì)算機(jī)是最著名和應(yīng)用最廣泛的。盡管數(shù)字計(jì)算機(jī)影響,并改變了我們生活的許多方面,不過許多人并不能準(zhǔn)確地說出它的主要特點(diǎn)。簡單地說,計(jì)算機(jī)就是一個(gè)能夠完成數(shù)字信號的算術(shù)運(yùn)算、邏輯運(yùn)算、比較判斷等處理功能的數(shù)字系統(tǒng)。計(jì)算機(jī)要處理數(shù)字信號,這就需要設(shè)法將數(shù)字信號輸入計(jì)算機(jī),完成處理的信號還需要從計(jì)算機(jī)中輸出。常用的數(shù)字信號的傳送方式分并行方式和串行方式。數(shù)字信號的并行傳送方式的優(yōu)點(diǎn)為數(shù)據(jù)傳送速率快,但是這種方式需要占用較多的器件管腳,同時(shí)也不適用進(jìn)行遠(yuǎn)距離的數(shù)據(jù)傳送。數(shù)字信號的串行傳送方式雖然數(shù)據(jù)傳送速率慢,不過這種方式
5、占用器件的管腳數(shù)量較少,同時(shí)也適用進(jìn)行遠(yuǎn)距離的數(shù)據(jù)傳送。本書就是采用同步串行傳送方式從MSP430微控制器芯片向數(shù)碼管顯示電路傳送信息。串行傳送方式使用較少數(shù)量傳輸線的特點(diǎn)也使得對放大器、調(diào)制器等硬件電路的需求小,因此適用進(jìn)行遠(yuǎn)距離的數(shù)據(jù)傳送。MSP430x2xx微控制器提供串行接口支持芯片之間的數(shù)據(jù)傳送。為滿足不同的應(yīng)用需要,這里的串行接口具有多種類型:通用串行接口(Universal Serial Interface,USI)、通用串行通信接口(Universal Serial Communication Interface,USCI)以及通用的同步/異步、接收/發(fā)送串行接口(Univer
6、sal Synchronous/Asynchronous Receive/Transmit Peripheral Interface,USART)。并不是每種芯片內(nèi)部存在所有這些接口,通常是一種芯片只具有一種類型的串行接口。了解這些接口的工作原理和使用特點(diǎn)將支持選擇合適的芯片類型,更方便地完成應(yīng)用系統(tǒng)的開發(fā)。TI公司提供的MSP430微控制器芯片選型手冊給出了所有型號芯片包含的接口類型和接口數(shù)量。通用串行接口(USI)模塊存在于部分MSP430G2xx1和全部MSP430G2xx2芯片之中,MSP430G2231芯片之中具有USI接口模塊。這是一種同步串行通信接口模塊,它具有2種工作模式,串行
7、外圍接口(Serial Peripheral Interface,SPI)和I2C接口(Inter Integrated Circuit,I2C)。鑒于篇幅關(guān)系,本章只以USI接口模塊的串行外圍接口(SPI)工作模式和I2C接口工作模式為例,分別介紹這兩種接口模式下的電路組成、工作過程、相關(guān)寄存器,并給出演示程序等內(nèi)容。串行外圍接口(SPI)適合在2個(gè)芯片之間進(jìn)行數(shù)據(jù)通信;I2C接口適合在多個(gè)芯片之間進(jìn)行數(shù)據(jù)通信,當(dāng)然它也能夠在2個(gè)芯片之間進(jìn)行數(shù)據(jù)通信。包括MSP430F2619芯片在內(nèi)的其它大部分MSP430x2xx微控制器芯片內(nèi)部具有通用串行通信接口(USCI)模塊。這種模塊也支持串行外圍
8、接口(SPI)和I2C接口這兩種工作模式,因此本章所介紹的內(nèi)容也會對這部分電路的工作提供支持。不過需要注意,不同型號芯片的具體使用存在一些差別。對通用串行通信接口(USCI)模塊中所包含的其它工作模式相關(guān)內(nèi)容有興趣的讀者可以參考TI公司的數(shù)據(jù)手冊,MSP430x2xx Family Users Guide。10.2 通用串行接口(Universal Serial Interface,USI)MSP430微控制器的通用串行接口(USI)模塊能夠支持?jǐn)?shù)字電路芯片之間的同步串行通信。通用串行接口模塊具有2種工作模式,串行外圍接口(Serial Peripheral Interface,SPI)模式和
9、I2C接口(Inter Integrated Circuit,I2C)模式。兩種工作模式由寄存器位“USII2C”選擇。無論工作在哪種模式,移位寄存器,USISR(USI Shift Register),都是該外圍模塊的最基本組成單元。移位寄存器可以利用軟件寫入數(shù)據(jù),再進(jìn)行數(shù)據(jù)的串行發(fā)送;接收的串行傳輸數(shù)據(jù)也將進(jìn)入這個(gè)寄存器,然后由軟件進(jìn)行讀取。10.2.1 串行外圍接口(SPI)通用串行接口(USI)模塊工作在串行外圍接口(SPI)模式下的方框圖如圖10.1所示。圖10.1 USI工作在SPI模式下的方框圖串行外圍接口(SPI)是一種3線同步串行通信接口。圖10.1中的管腳“SDO”為串行數(shù)
10、據(jù)輸出管腳、管腳“SDI”為串行數(shù)據(jù)輸入管腳、管腳“SCLK”為串行時(shí)鐘管腳。串行時(shí)鐘管腳“SCLK”是一個(gè)雙向管腳。當(dāng)工作在主模式狀態(tài),管腳“SCLK”為輸出管腳,它輸出串行外圍模塊產(chǎn)生的時(shí)鐘信號;當(dāng)工作在從模式狀態(tài),管腳“SCLK”為輸入管腳,它接收外部電路提供的時(shí)鐘信號。圖10.1中的“USISR”方框就是通用串行接口的移位寄存器。在完成相關(guān)配置,向移位寄存器寫入數(shù)據(jù)就可以完成數(shù)據(jù)的串行同步發(fā)送,接收過程結(jié)束以后從該移位寄存器可以讀取數(shù)據(jù)。利用控制信號“USI16B”,移位寄存器可以配置為8位,或者16位;利用控制信號“USILSB”,移位寄存器中的內(nèi)容可以配置為數(shù)據(jù)的高位在前,或者低位
11、在前。移位寄存器的數(shù)據(jù)移位工作由移位時(shí)鐘信號“Shift Clock”和“Bit Counter”位計(jì)數(shù)器方框的輸出信號“USICNTx”聯(lián)合進(jìn)行控制。位計(jì)數(shù)器是一個(gè)減法計(jì)數(shù)器,它對移位寄存器移入,或者移出,的數(shù)據(jù)位進(jìn)行計(jì)數(shù)。每完成一次移位,計(jì)數(shù)器內(nèi)容減1。當(dāng)計(jì)數(shù)器的內(nèi)容減到0的時(shí)候,它將停止計(jì)數(shù),并置位計(jì)數(shù)器中斷標(biāo)志“USIIFG”。置位的計(jì)數(shù)器中斷標(biāo)志“USIIFG”將停止串行時(shí)鐘信號,進(jìn)而停止移位寄存器的移位工作。當(dāng)清零控制信號“USIIFGCC”,向計(jì)數(shù)器“Bit Counter”寫入大于0的“USICNTx”數(shù)值能自動(dòng)清除計(jì)數(shù)器中斷標(biāo)志“USIIFG”。移位時(shí)鐘信號“Shift Cl
12、ock”同時(shí)控制移位寄存器和計(jì)數(shù)器的工作。在該信號上升邊沿的驅(qū)動(dòng)下,計(jì)數(shù)器內(nèi)容減1,移位寄存器中的數(shù)據(jù)移動(dòng)1位。當(dāng)工作在主模式下,信號“USIMST”使得串行時(shí)鐘信號“USICLK”能夠輸出。該信號可以用來產(chǎn)生移位時(shí)鐘信號“Shift Clock”,同時(shí)通過管腳“SCLK”輸出。當(dāng)工作在從模式下,管腳“SCLK”作為輸入管腳使用,接收外部的時(shí)鐘信號來產(chǎn)生移位時(shí)鐘信號“Shift Clock”。串行時(shí)鐘信號“USICLK”的驅(qū)動(dòng)源可以在多個(gè)信號源之中選擇。在信號“USISSELx”的控制下,在管腳“SCLK”輸入信號;MSP430的系統(tǒng)時(shí)鐘信號ACLK或者SMCLK;定時(shí)器Timer_A捕捉/比
13、較模塊的輸出信號TA0、TA1或者TA2;由軟件置位和清零寄存器位“USISWCLK”產(chǎn)生的信號之中選擇一個(gè)。選擇的信號能夠通過“Clock Divider”方框在信號“USIDIVx”的控制下實(shí)現(xiàn)分頻。計(jì)數(shù)器中斷標(biāo)志“USIIFG”能夠停止串行時(shí)鐘信號“USICLK”的輸出。串行外圍接口(SPI)的數(shù)據(jù)與時(shí)鐘之間能夠選擇多種時(shí)間關(guān)系,選擇由信號“USICKPH”和“USICKPL”進(jìn)行控制。數(shù)據(jù)與時(shí)鐘之間的所有時(shí)間關(guān)系如圖10.2所示。這里移位寄存器的寬度選擇8位,數(shù)據(jù)的MSB位在先。圖10.2 SPI模式數(shù)據(jù)與時(shí)鐘之間的時(shí)間關(guān)系圖MSP430微控制器的串行外圍接口(SPI)提供多種數(shù)據(jù)與時(shí)
14、鐘的時(shí)間關(guān)系使得它能與許多種類的數(shù)字芯片進(jìn)行數(shù)據(jù)交換。例如選擇USICKPH=1和USICKPL=0,這時(shí)串行時(shí)鐘波形如圖10.2所示的第3行波形;串行數(shù)據(jù)波形如第6行波形。這樣的時(shí)鐘與數(shù)據(jù)之間的時(shí)間關(guān)系將滿足8位移位寄存器(串行輸入,并行輸出)74164所需要的時(shí)間關(guān)系。程序示例10.1將利用這種工作狀態(tài)完成對1位數(shù)碼管的顯示驅(qū)動(dòng)。圖10.2也給出串行外圍接口在主模式下的工作過程。數(shù)據(jù)發(fā)送時(shí),首先由軟件向移位寄存器寫入待傳送的數(shù)據(jù);接著向移位計(jì)數(shù)器裝入移位個(gè)數(shù)數(shù)據(jù)來啟動(dòng)串行數(shù)據(jù)輸出的工作過程;移位計(jì)數(shù)器內(nèi)容減到0將置位中斷標(biāo)志“USIIFG”,該標(biāo)志停止時(shí)鐘“USICLK”輸出,停止串行傳輸
15、過程。數(shù)據(jù)接收時(shí),首先向移位計(jì)數(shù)器裝入移位個(gè)數(shù)數(shù)據(jù)來啟動(dòng)串行數(shù)據(jù)輸入的工作過程;移位計(jì)數(shù)器內(nèi)容減到0將置位中斷標(biāo)志“USIIFG”,停止串行傳輸過程;當(dāng)中斷標(biāo)志“USIIFG”置位,這時(shí)就能夠從移位計(jì)數(shù)器中讀取數(shù)據(jù)。 使用MSP430芯片管腳傳輸串行信號還需要用信號“USIPEx”使能相關(guān)管腳。這些相關(guān)管腳可以配置為并行數(shù)據(jù)輸入/輸出管腳,這并不影響串行外圍接口信號的傳輸,同時(shí)還可以將并行數(shù)據(jù)輸入/輸出管腳的中斷功能用在串行數(shù)據(jù)的接收時(shí)應(yīng)用。信號“USIGE”和“USIOE”用于使能串行數(shù)據(jù)的輸出。串行外圍接口(SPI)的軟件復(fù)位控制位“USISWRST”置位能夠清零計(jì)數(shù)器中斷標(biāo)志“USIIF
16、G”,但同時(shí)阻止時(shí)鐘信號進(jìn)入移位寄存器和計(jì)數(shù)器,不過這時(shí)不影響移位寄存器和計(jì)數(shù)器中的內(nèi)容。10.2.2 I2C接口(Inter Integrated Circuit,I2C)I2C接口,也稱為I2C總線,是一種專門設(shè)計(jì)來支持?jǐn)?shù)字集成電路芯片之間通信的接口協(xié)議。這是一種2線同步串行通信接口,包括串行數(shù)據(jù)線,SDA,和串行時(shí)鐘線,SCL。這種接口能夠支持多個(gè)芯片之間的通信,即可以由所連接的多個(gè)器件控制總線。表10.1給出了一些相關(guān)的技術(shù)術(shù)語。表10.1 I2C總線技術(shù)術(shù)語的定義技術(shù)術(shù)語說明發(fā)送器件把數(shù)據(jù)發(fā)送到總線的器件接收器件從總線上接收數(shù)據(jù)的器件主器件啟動(dòng)數(shù)據(jù)傳送、產(chǎn)生時(shí)鐘信號以及終止數(shù)據(jù)傳送的
17、器件,即控制總線工作的器件從器件被主器件尋址的器件多主器件多個(gè)主器件可以同時(shí)企圖控制總線而不破壞總線信息仲裁多個(gè)主器件可以同時(shí)企圖控制總線時(shí)只允許一個(gè)主器件控制總線并不破壞總線信息同步2個(gè)以上器件時(shí)鐘信號同步過程圖10.3給出連接到I2C總線上多個(gè)器件的連接示意圖。連接到I2C總線上的這些器件能夠顯示表10.1列出技術(shù)術(shù)語的特征,例如主器件和從器件、發(fā)送和接收關(guān)系的特征。需要注意,這些關(guān)系不是永久的,器件所扮演的角色取決總線當(dāng)時(shí)數(shù)據(jù)的傳送狀態(tài)。圖10.3 I2C總線結(jié)構(gòu)圖以微控制器A與微控制器B之間的通信為例,這里設(shè)定微控制器A為主器件。當(dāng)微控制器A要把信息傳送到微控制器B時(shí),微控制器A(主器
18、件)尋址微控制器B(從器件);微控制器A(主發(fā)送)發(fā)送數(shù)據(jù)到微控制器B(從接收);微控制器A(主器件)終止傳送過程。當(dāng)微控制器A要從微控制器B接收時(shí),微控制器A(主器件)尋址微控制器B(從器件);微控制器A(主接收)接收微控制器B(從發(fā)送)發(fā)送的數(shù)據(jù);微控制器A(主器件)終止傳送過程。I2C總線屬于多主機(jī)總線,也就是說可能同時(shí)有多個(gè)主器件企圖控制總線的數(shù)據(jù)傳送過程。為了避免出現(xiàn)這種情況而引起的混亂,需要進(jìn)行總線仲裁,也就是將總線的控制權(quán)賦予某1個(gè)主器件。只能存在1個(gè)主器件控制總線的數(shù)據(jù)傳送過程。串行時(shí)鐘線,SCL,上的時(shí)鐘信號由主器件產(chǎn)生,主器件每傳送1位數(shù)據(jù)產(chǎn)生1個(gè)時(shí)鐘。時(shí)鐘同步是由連接在串
19、行時(shí)鐘線上的所有器件的“線與”完成的。一旦1個(gè)器件的時(shí)鐘變?yōu)榈碗娖剑瑢⑹勾袝r(shí)鐘線的狀態(tài)保持為低電平,只有全部器件的時(shí)鐘都達(dá)到高電平,串行時(shí)鐘線的狀態(tài)才能成為高電平。只要有1個(gè)器件的時(shí)鐘狀態(tài)處于低電平,其它器件時(shí)鐘從低到高的變化將不會影響串行時(shí)鐘線的狀態(tài)。只有全部器件時(shí)鐘處于高電平狀態(tài),串行時(shí)鐘線的狀態(tài)才能為高電平。這樣就實(shí)現(xiàn)了時(shí)鐘同步。同步時(shí)鐘控制所有器件,無論速度快慢,之間的協(xié)調(diào)工作。串行數(shù)據(jù)線,SDA,上的數(shù)據(jù)僅在串行時(shí)鐘線處于高電平期間有效,并且在時(shí)鐘的高電平期間數(shù)據(jù)還必須保持穩(wěn)定。只有串行時(shí)鐘線的狀態(tài)為低電平時(shí),串行數(shù)據(jù)線上的數(shù)據(jù)才允許發(fā)生改變。串行數(shù)據(jù)線上的所有器件的連接關(guān)系也為“
20、線與”方式。I2C總線進(jìn)行數(shù)據(jù)傳送的過程具有專門的開始信號和結(jié)束信號。這個(gè)開始信號和結(jié)束信號由主器件產(chǎn)生。當(dāng)串行時(shí)鐘線處于高電平狀態(tài),串行數(shù)據(jù)線發(fā)生從高電平到低電平的跳變,即為數(shù)據(jù)傳輸過程的開始信號;當(dāng)串行時(shí)鐘線處于高電平狀態(tài),串行數(shù)據(jù)線發(fā)生從低電平到高電平的跳變,即為數(shù)據(jù)傳輸過程的結(jié)束信號。I2C總線上數(shù)據(jù)傳送的時(shí)序圖如圖10.4所示。圖10.4 I2C總線上數(shù)據(jù)傳送的時(shí)序圖圖10.4所示的時(shí)序圖為I2C總線處于主發(fā)送/從接收狀態(tài)。圖中第1行波形為主發(fā)送器件輸出的時(shí)鐘波形,也為I2C總線的時(shí)鐘線SCL上的信號波形;第2行波形為主發(fā)送器件輸出的數(shù)據(jù)波形;第3行波形為從接收器件輸出的數(shù)據(jù)波形;第
21、4行波形為I2C總線的數(shù)據(jù)線SDA上的信號波形。按照時(shí)間關(guān)系,首先主發(fā)送器件的數(shù)據(jù)管腳輸出一個(gè)下降邊沿。由于I2C總線的所有器件的數(shù)據(jù)管腳采用“線與”方式連接,這時(shí)從接收器件的數(shù)據(jù)管腳應(yīng)處于高電平狀態(tài),I2C總線的數(shù)據(jù)線SDA上信號波形將與主發(fā)送器件的數(shù)據(jù)管腳輸出信號一致。在I2C總線的時(shí)鐘線SCL處于高電平狀態(tài),數(shù)據(jù)線SDA上的下降邊沿為數(shù)據(jù)傳輸過程的開始信號。數(shù)據(jù)傳送以字節(jié)為單位,每個(gè)字節(jié)具有8位,數(shù)據(jù)傳送時(shí)首先傳送數(shù)據(jù)的最高位。每次傳輸過程傳輸?shù)淖止?jié)數(shù)量是不受限制的。在主發(fā)送數(shù)據(jù)過程中,從接收器件的數(shù)據(jù)管腳仍應(yīng)處于高電平狀態(tài),這樣I2C總線的數(shù)據(jù)線SDA上信號波形將與主發(fā)送器件的數(shù)據(jù)管腳
22、輸出信號一致。發(fā)送數(shù)據(jù)的器件每完成1個(gè)字節(jié)8位數(shù)據(jù)的發(fā)送以后,它將釋放數(shù)據(jù)線,即它的數(shù)據(jù)輸出管腳維持高電平狀態(tài)。接收器件將使它的數(shù)據(jù)管腳處于低電平。主器件這時(shí)還將產(chǎn)生1個(gè)時(shí)鐘,即第9個(gè)時(shí)鐘,接收器件在這個(gè)時(shí)鐘的高電平期間將維持低電平狀態(tài)。接收器件輸出的這個(gè)低電平為它接收1個(gè)字節(jié)以后產(chǎn)生的認(rèn)可信號(響應(yīng))。每個(gè)字節(jié)后面必須跟這樣1個(gè)響應(yīng)位。完成所有數(shù)據(jù)字節(jié)的傳送以后,主器件停止輸出時(shí)鐘信號,并使時(shí)鐘線SCL維持在高電平狀態(tài)。主器件的數(shù)據(jù)輸出管腳產(chǎn)生一個(gè)上升邊沿。數(shù)據(jù)線SDA上的上升邊沿為數(shù)據(jù)傳輸過程的結(jié)束信號。通用串行接口(USI)工作在I2C模式下的方框圖如圖10.5所示。圖10.5 USI工
23、作在I2C模式下的方框圖通用串行接口(USI)工作在I2C模式不僅要置位“USII2C”,還必須完成一些別的設(shè)置,如圖10.5左上角的配置要求所示。位“USICKPL”置位和位“USICKPH”清零是由于這時(shí)數(shù)據(jù)位與時(shí)鐘只能保持這種時(shí)間關(guān)系;位“USILSB”清零是由于這時(shí)數(shù)據(jù)傳送只能是高位在前;位“USI16B”清零是由于這時(shí)數(shù)據(jù)只能包含8位。I2C接口是一種2線同步串行通信接口。圖10.5中的管腳“SDA”為串行數(shù)據(jù)輸入/輸出管腳,管腳“SCL”為串行時(shí)鐘管腳。串行時(shí)鐘管腳“SCL”是一個(gè)雙向管腳。當(dāng)工作在主模式狀態(tài),管腳“SCL”為輸出管腳,它輸出串行時(shí)鐘信號;當(dāng)工作在從模式狀態(tài),管腳“
24、SCL”為輸入管腳,它接收外部電路提供的時(shí)鐘信號。I2C接口可以工作在主模式,或者從模式。當(dāng)位“USIMST”置位,I2C接口將工作在主模式,這時(shí)的串行時(shí)鐘信號“USICLK”能夠通過管腳“SCL”輸出,它同時(shí)也被用作移位寄存器的移位時(shí)鐘信號“Shift Clock”。當(dāng)位“USIMST”清零,I2C接口將工作在從模式,這時(shí)的串行時(shí)鐘信號“USICLK”由管腳“SCL”輸入,被用作移位寄存器的移位時(shí)鐘信號“Shift Clock”。在進(jìn)行數(shù)據(jù)發(fā)送時(shí),首先需要向通用串行接口低字節(jié)移位寄存器(USISRL)寫入待傳送的數(shù)據(jù),然后置位“USIOE”并向通用串行接口數(shù)位計(jì)數(shù)寄存器(USICNT)的位“
25、USICNTx”寫入數(shù)據(jù)“8”來啟動(dòng)數(shù)據(jù)發(fā)送過程。位“USICNTx”中數(shù)據(jù)不等于0將清除中斷標(biāo)志“USIIFG”。在完成8位數(shù)據(jù)的發(fā)送以后,中斷標(biāo)志“USIIFG”將置位。在主模式情況下,中斷標(biāo)志“USIIFG”的置位將停止產(chǎn)生串行時(shí)鐘信號“USICLK”;在從模式情況下,中斷標(biāo)志“USIIFG”的置位將使管腳“SCL”處于低電平狀態(tài),阻止其它器件產(chǎn)生串行時(shí)鐘信號“USICLK”。在接收數(shù)據(jù)接收器件的認(rèn)可信號(響應(yīng))時(shí),需要清零“USIOE”,并向通用串行接口數(shù)位計(jì)數(shù)寄存器(USICNT)的位“USICNTx”寫入數(shù)據(jù)“1”來啟動(dòng)接收過程。完成1位數(shù)據(jù)的接收以后,中斷標(biāo)志“USIIFG”將再
26、次置位。這時(shí)通用串行接口低字節(jié)移位寄存器(USISRL)最低位(LSB)的數(shù)據(jù)就是接收器件的認(rèn)可信號(響應(yīng))。在數(shù)據(jù)接收時(shí),需要清零“USIOE”并向通用串行接口數(shù)位計(jì)數(shù)寄存器(USICNT)的位“USICNTx”寫入數(shù)據(jù)“8”來啟動(dòng)數(shù)據(jù)接收過程。在主模式情況下,產(chǎn)生串行時(shí)鐘信號“USICLK”;在從模式情況下,將使管腳“SCL”處于高電平狀態(tài),接收其它器件產(chǎn)生串行時(shí)鐘信號“USICLK”。完成8位數(shù)據(jù)的接收以后,中斷標(biāo)志“USIIFG”將再次置位。產(chǎn)生認(rèn)可信號(響應(yīng)),需要置位“USIOE”,并置位通用串行接口低字節(jié)移位寄存器(USISRL)最高位(MSB),然后通用串行接口數(shù)位計(jì)數(shù)寄存器(
27、USICNT)的位“USICNTx”寫入數(shù)據(jù)“1”來啟動(dòng)這個(gè)過程。在I2C總線的時(shí)鐘線SCL處于高電平狀態(tài),數(shù)據(jù)線SDA上的下降邊沿為數(shù)據(jù)傳輸過程的開始信號。開始信號能夠以下過程實(shí)現(xiàn),向通用串行接口低字節(jié)移位寄存器(USISRL)寫入數(shù)據(jù)0x00;置位“USIGE”和“USIOE”使得時(shí)鐘線SCL處于高電平狀態(tài),數(shù)據(jù)線SDA從高變低;清零“USIGE”準(zhǔn)備輸出時(shí)鐘信號。數(shù)據(jù)傳送的結(jié)束信號能夠以類似過程實(shí)現(xiàn),即在I2C總線的時(shí)鐘線SCL處于高電平狀態(tài),數(shù)據(jù)線SDA上產(chǎn)生上升邊沿。10.2.3 通用串行接口(USI)的寄存器通用串行接口(USI)的相關(guān)寄存器包括以下6個(gè)。通用串行接口控制寄存器0和
28、1,USICTL0和USICTL1;通用串行接口時(shí)鐘控制寄存器,USICKCTL;通用串行接口數(shù)位計(jì)數(shù)寄存器,USICNT;通用串行接口低字節(jié)移位寄存器,USISRL;通用串行接口高字節(jié)移位寄存器,USISRH。 通用串行接口控制寄存器0(USICTL0)位76543210位名稱USIPE7USIPE6USIPE5USILSBUSIMSTUSIGEUSIOEUSISWRST操作方式rwrwrwrwrwrwrwrw復(fù)位值00000001USIPE7:USI SDI/SDA管腳功能使能控制位0USI SDI/SDA管腳功能不使能1USI SDI/SDA管腳功能使能USI模塊工作在SPI模式下,使能
29、管腳SDI為數(shù)據(jù)輸入管腳;工作在I2C模式下,使能管腳SDA為數(shù)據(jù)輸入/輸出管腳。USIPE6:USI SDO/SCL管腳功能使能控制位0USI SDO/SCL管腳功能不使能1USI SDO/SCL管腳功能使能USI模塊工作在SPI模式下,使能管腳SDO為數(shù)據(jù)輸出管腳;工作在I2C模式下,使能管腳SCL為時(shí)鐘信號輸入/輸出管腳。USIPE5:USI SCLK管腳功能使能控制位0USI SCLK管腳功能不使能1USI SCLK管腳功能使能USI模塊工作在SPI的從模式,管腳SCLK為時(shí)鐘輸入管腳。工作在SPI的主模式,管腳SCLK為時(shí)鐘輸出管腳,工作在SPI的從模式,管腳SCLK為時(shí)鐘輸入管腳。
30、USILSB:移位寄存器內(nèi)部數(shù)據(jù)排列順序選擇控制位0MSB為最高位1LSB為最高位USIMST:主/從模式選擇控制位0從模式1主模式USIGE:輸出鎖存使能控制位0移位時(shí)鐘使能輸出鎖存1輸出鎖存一直使能USIOE:數(shù)據(jù)輸出使能控制位0輸出不使能1輸出使能USISWRST:軟件復(fù)位控制位0USI模塊處于工作狀態(tài)1USI模塊處于復(fù)位狀態(tài) 通用串行接口控制寄存器1(USICTL1)位76543210位名稱USICKPHUSII2CUSISTTIEUSIIEUSIALUSISTPUSISTTIFGUSIIFG操作方式rwrwrwrwrwrwrwrw復(fù)位值00000001USICKPH:時(shí)鐘相位選擇控制
31、位0數(shù)據(jù)改變發(fā)生在第1個(gè)SCLK時(shí)鐘邊沿,捕捉發(fā)生在跟著的時(shí)鐘邊沿1數(shù)據(jù)捕捉發(fā)生在第1個(gè)SCLK時(shí)鐘邊沿,改變發(fā)生在跟著的時(shí)鐘邊沿USII2C:I2C模式使能控制位0I2C模式不使能,工作在SPI模式1I2C模式使能USISTTIE:START條件中斷使能控制位0START條件中斷不使能1START條件中斷使能USIIE:USI計(jì)數(shù)中斷使能控制位0USI計(jì)數(shù)中斷不使能1USI計(jì)數(shù)中斷使能USIAL:仲裁丟失標(biāo)志位0無仲裁丟失1仲裁丟失USISTP:STOP條件接收標(biāo)志位0無STOP條件接收1STOP條件接收在通用串行接口數(shù)位計(jì)數(shù)寄存器,USICNT,的數(shù)位USICNTx的內(nèi)容大于0,且中斷標(biāo)志
32、USIIFGCC為0的情況下,標(biāo)志USISTP能夠自動(dòng)清零。USISTTIFG:START條件中斷標(biāo)志0無START條件1出現(xiàn)START條件USIIFG:USI計(jì)數(shù)中斷標(biāo)志0無中斷申請1中斷申請通用串行接口數(shù)位計(jì)數(shù)寄存器,USICNT,數(shù)位USICNTx內(nèi)容為0時(shí),該標(biāo)志將置位;數(shù)位USICNTx內(nèi)容不為0,且中斷標(biāo)志USIIFGCC為0的情況下,該標(biāo)志能夠自動(dòng)清零。 通用串行接口時(shí)鐘控制寄存器(USICKCTL)位754210位名稱USIDIVxUSISSELxUSICKPLUSISWCLK操作方式rwrwrwrw復(fù)位值00000000USIDIVx:時(shí)鐘分頻系數(shù)選擇控制位Bit7Bit6B
33、it5USIDIV2USIDIV1USIDIV00001001201040118100161013211064111128USISSELx:時(shí)鐘信號源選擇控制位Bit4Bit3Bit2USISSEL2USISSEL1USISSEL0000SCLK和工作在從模式001ACLK010SMCLK011SMCLK100USISWCLK位控制101TACCR0110TACCR1111TACCR2USICKPL:時(shí)鐘極性選擇控制位0低電平為不激活狀態(tài)1高電平為不激活狀態(tài)USISWCLK:軟件時(shí)鐘狀態(tài)控制位0時(shí)鐘低電平1時(shí)鐘高電平 通用串行接口數(shù)位計(jì)數(shù)寄存器(USICNT)位76540位名稱USISCLRE
34、LUSL16BUSIIFGCCUSICNTx操作方式rwrwrwrw復(fù)位值00000000USISCLREL:SCL釋放控制位0在標(biāo)志USIIFG置位時(shí)SCL線保持低1SCL線釋放USI16B:16位移位寄存器使能控制位08位移位寄存器模式,僅低字節(jié)移位寄存器USISRL被使用116位移位寄存器模式USIIFGCC:USIIFG標(biāo)志自動(dòng)清除控制位0USIIFG標(biāo)志當(dāng)位USICNTx的內(nèi)容不為0將自動(dòng)清除1USIIFG標(biāo)志不會自動(dòng)清除USICNT40:Bit40,通用串行接口數(shù)位計(jì)數(shù)器 通用串行接口低字節(jié)移位寄存器(USISRL)位70位名稱USISRLx操作方式rwUSISRLx:Bit70,
35、移位寄存器低字節(jié)。 通用串行接口高字節(jié)移位寄存器(USISRH)位70位名稱USISRHx操作方式rwUSISRHx:Bit70,移位寄存器高字節(jié)。前面介紹的通用串行接口(USI)相關(guān)的6個(gè)寄存器都具有8位,可以采取字節(jié)訪問。MSP430微控制器是一種16位器件,支持8位的字節(jié)形式訪問,也支持16位的字形式訪問。采用字形式的訪問方式能夠一次傳輸更多的信息。上述的6個(gè)8位寄存器可以組成3個(gè)16位寄存器,支持16位的字形式訪問以加快訪問速度。表10.1給出它們之間的組成關(guān)系。表10.1 16位寄存器與8位寄存器的關(guān)系表字寄存器名稱字寄存器符號高字節(jié)寄存器低字節(jié)寄存器USI控制寄存器USICTLUS
36、ICTL1USICTL0USI時(shí)鐘和計(jì)數(shù)控制寄存器USICCTLUSICNTUSICKCTLUSI移位寄存器USISRUSISRHUSISRL10.3 基于串行外圍接口(SPI)的1位數(shù)碼管顯示如圖10.2所示的工作在SPI模式下,串行數(shù)據(jù)與時(shí)鐘之間的時(shí)間關(guān)系圖,選擇USICKPH=1和USICKPL=0,這時(shí)串行時(shí)鐘波形為第3行波形;串行數(shù)據(jù)波形為第6行波形。這樣的串行時(shí)鐘與數(shù)據(jù)之間的時(shí)間關(guān)系能夠滿足驅(qū)動(dòng)8位移位寄存器(串行輸入,并行輸出)74164所需要的時(shí)間關(guān)系。程序示例10.1為采用MSP430芯片內(nèi)部串行外圍接口(SPI)驅(qū)動(dòng)1個(gè)數(shù)碼管進(jìn)行數(shù)據(jù)顯示的演示程序。程序示例10.1/ 程序
37、名稱:seg1_1spi/ 程序功能:通過 USI 的 SPI 模式控制 1 個(gè) 7 段共陰極數(shù)碼管/ 目標(biāo)芯片:MSP430G2231/ SDO(P1.6)串行數(shù)據(jù)輸出管腳,SCLK(P1.5)串行時(shí)鐘輸出管腳/ 注意:使用片內(nèi)時(shí)鐘,時(shí)鐘頻率為默認(rèn)值#include<msp430.h> / 包含名稱定義和對應(yīng)地址或數(shù)據(jù)的頭函數(shù)void delay_1s(void); / 聲明 1s 延遲函數(shù)const unsigned char decoder_seg710 / 聲明顯示代碼 =0xee,0x82,0xdc,0xd6,0xb2,0x76,0x7e,0xc2,0xfe,0xf6;
38、/ 共陰極數(shù)碼管顯示代碼void usi_spi_begin(void); / 聲明 USI 模塊的 SPI 模式配置函數(shù)int main(void) / 主函數(shù) unsigned char data_seg7; / 聲明顯示數(shù)據(jù)變量 WDTCTL=WDTPW+WDTHOLD; / 關(guān)閉看門狗 usi_spi_begin( ); / USI 模塊的 SPI 模式配置 while(1) / 重復(fù)執(zhí)行 / 利用循環(huán)語句產(chǎn)生顯示數(shù)據(jù) for(data_seg7=0x00; data_seg7<0x9; data_seg7+) USISRL=decoder_seg7data_seg7; / 顯示
39、數(shù)據(jù)譯碼,串行同步輸出 USICNT|=0x08; / 啟動(dòng)串行數(shù)據(jù)傳送 delay_1s( ); / 調(diào)用 1s 延遲函數(shù) void usi_spi_begin(void) / USI 模塊的 SPI 模式配置函數(shù)/ 使用芯片管腳的配置 P1SEL|=BIT7; / 設(shè)置 P1.7 端口為外圍模塊輸入 / 輸出口 P1DIR&=BIT7; / 設(shè)置 P1.7 端口為輸入口 P1SEL|=BIT6; / 設(shè)置 P1.6 端口為外圍模塊輸入 / 輸出口 P1DIR|=BIT6; / 設(shè)置 P1.6 端口為輸出口 P1SEL|=BIT5; / 設(shè)置 P1.5 端口為外圍模塊輸入 / 輸出口
40、 P1DIR|=BIT5; / 設(shè)置 P1.5 端口為輸出口/ USI 模塊相關(guān)寄存器配置 USICTL0&=USISWRST; / 清除軟件 PCI 復(fù)位功能 USICTL0|=USIPE7; / 使能 SDI/SDA 管腳功能 USICTL0|=USIPE6; / 使能 SDO/SCL 管腳功能 USICTL0|=USIPE5; / 使能 SCLK 管腳功能 USICTL0&=USILSB; / 串行輸出數(shù)據(jù) MSB 位在先 USICTL0|=USIMST; / USI 工作在主模式 USICTL0|=USIGE; / 輸出鎖存使能 USICTL0|=USIOE; / 串行
41、輸出使能 USICTL1|=USICKPH; / 時(shí)鐘出現(xiàn)在數(shù)據(jù)之后 USICTL1&=USII2C; / 使能 SPI 模式 USICTL1&=USIIE; / 不使能移位計(jì)數(shù)中斷 USICKCTL|=USIDIV_0; / 時(shí)鐘分頻系數(shù)選擇:1 USICKCTL|=USISSEL_2; / 時(shí)鐘信號源選擇:SMCLK USICKCTL&=USICKPL; / 時(shí)鐘首先出現(xiàn)上升邊沿 USICNT&=USI16B; / 選擇 8 位數(shù)據(jù)寬度 USICNT&=USIIFGCC; / USIIFG 標(biāo)志當(dāng)USICNTx不為0將自動(dòng)清除程序示例10.1可以直接
42、用于前面圖5.2所示的74164芯片驅(qū)動(dòng)1位數(shù)碼管的應(yīng)用電路。對比語句USISRL=decoder_seg7data_seg7; / 顯示數(shù)據(jù)譯碼,串行同步輸出 USICNT|=0x08; / 啟動(dòng)串行數(shù)據(jù)傳送和1位7段數(shù)碼管的同步串行數(shù)據(jù)接口驅(qū)動(dòng)函數(shù),現(xiàn)在的程序結(jié)構(gòu)變得非常簡單,同時(shí)對程序存儲器的占用也小得多。由串行外圍接口模式配置函數(shù)可以看出,現(xiàn)在的串行同步時(shí)鐘頻率與MSP430微控制器的系統(tǒng)時(shí)鐘頻率SMCLK一樣,因此數(shù)據(jù)傳輸也比使用軟件的方法實(shí)現(xiàn)同步串行數(shù)據(jù)傳輸快得多。這再次證明了經(jīng)常所說的一句話,利用硬件處理信號的速度比使用軟件快得多。使用串行外圍接口驅(qū)動(dòng)多個(gè)數(shù)碼管時(shí)需要注意,2次輸
43、出顯示代碼之間的時(shí)間間隔必須大于利用串行方式完成1個(gè)顯示代碼傳輸所需要的時(shí)間。向移位寄存器寫入顯示代碼采用的是并行傳輸方式,一次可以完成1個(gè)字節(jié)共計(jì)8位的數(shù)據(jù)傳輸,但是串行方式一次只能輸出1位,需要分8次才能完成。在程序示例10.1中,串行外圍接口(SPI)的配置采用函數(shù)的形式。這樣既簡化了主函數(shù)的結(jié)構(gòu),也方便其它應(yīng)用程序?qū)@部分內(nèi)容的引用。10.4 基于串行外圍接口(SPI)的芯片間通信本節(jié)使用1個(gè)MSP430微控制器芯片,使用程序示例10.1實(shí)現(xiàn)數(shù)碼管顯示代碼的同步串行發(fā)送;再使用另外1個(gè)MSP430微控制器芯片接收這個(gè)顯示代碼,然后使用數(shù)碼管顯示接收到的這個(gè)顯示代碼。圖10.6為演示芯片
44、間數(shù)據(jù)通信的電路連線示意圖。圖10.6 芯片間數(shù)據(jù)通信的電路連線示意圖MSP430微控制器的串行外圍接口(SPI)具有獨(dú)立的串行數(shù)據(jù)發(fā)送管腳“SDO”(P1.6)和串行數(shù)據(jù)接收管腳“SDI”(P1.7),“MSP430數(shù)據(jù)發(fā)送芯片”使用前者發(fā)送數(shù)據(jù);“MSP430數(shù)據(jù)接收芯片”使用后者接收數(shù)據(jù)?!癕SP430數(shù)據(jù)發(fā)送芯片”選擇運(yùn)行程序示例10.1。在程序示例10.1中,串行外圍接口(SPI)配置為主模式,這樣“MSP430數(shù)據(jù)接收芯片”應(yīng)該配置為從模式,它所需要的串行時(shí)鐘信號“USICLK”由“MSP430數(shù)據(jù)發(fā)送芯片”產(chǎn)生。時(shí)鐘信號“USICLK”通過兩個(gè)芯片的管腳“SCLK” (P1.5)
45、實(shí)現(xiàn)連接。由于兩個(gè)芯片間的數(shù)據(jù)通信占用了它們的串行外圍接口(SPI)以及相關(guān)管腳,數(shù)碼管的顯示驅(qū)動(dòng)只能采用軟件形式實(shí)現(xiàn)模擬同步串行接口,同時(shí)使用1位7段數(shù)碼管的同步串行數(shù)據(jù)接口驅(qū)動(dòng)函數(shù)時(shí)涉及的管腳也需要更換為沒有被占用的管腳?!癕SP430數(shù)據(jù)接收芯片”判斷是否完成1個(gè)完整數(shù)據(jù)字節(jié)的接收可以采用查詢的方法,或者中斷的方法。下面分別給出這兩種方法的驗(yàn)證程序。10.4.1 基于查詢方法實(shí)現(xiàn)串行數(shù)據(jù)的接收通過查詢USI計(jì)數(shù)中斷標(biāo)志,USIIFG,能夠判斷1個(gè)完整的數(shù)據(jù)是否已經(jīng)被接收。程序示例10.2為采用這種方法的“MSP430數(shù)據(jù)接收芯片”控制程序。程序示例10.2/ 程序名稱:com_spi/
46、程序功能:通過 USI 的 SPI 模式實(shí)現(xiàn) 2 個(gè) MSP430 芯片之間通信的接收功能/ 目標(biāo)芯片:MSP430G2231/ 數(shù)據(jù)發(fā)送采用程序示例10.1傳輸數(shù)碼管的顯示代碼/ SDO(P1.6)串行數(shù)據(jù)輸出管腳,SCLK(P1.5)串行時(shí)鐘輸出管腳/ 本程序接收數(shù)碼管的顯示代碼/ SDI(P1.7)串行數(shù)據(jù)輸入管腳,SCLK(P1.5)串行時(shí)鐘輸入管腳/ 接收的顯示代碼使用數(shù)碼管顯示/ 顯示代碼采用模擬同步串行接口送到 74164 芯片/ P1.0 為模擬串行數(shù)據(jù)管腳;P1.1 為模擬串行時(shí)鐘管腳/ 注意:使用片內(nèi)時(shí)鐘,時(shí)鐘頻率為默認(rèn)值#include<msp430.h> /
47、 包含名稱定義和對應(yīng)地址或數(shù)據(jù)的頭函數(shù)void seg7_begin(void); / 聲明數(shù)碼管顯示電路配置函數(shù)void seg7_1ms(unsigned char seg7_data);/ 聲明驅(qū)動(dòng) 1 位數(shù)碼管的同步串行接口驅(qū)動(dòng)函數(shù)void usi_spi_begin(void); / 聲明 USI 模塊的 SPI 模式配置函數(shù)int main(void) / 主函數(shù) WDTCTL=WDTPW+WDTHOLD; / 關(guān)閉看門狗 seg7_begin( ); / 數(shù)碼管顯示電路配置 usi_spi_begin( ); / USI 模塊的 SPI 模式配置 while(1) / 重復(fù)執(zhí)行
48、USICNT|=0x08; / 啟動(dòng)串行數(shù)據(jù)接收 while(USICTL1&USIIFG)=0) / 等待 1 個(gè)字節(jié)數(shù)據(jù)接收完畢 ; seg7_1ms(USISRL); / 顯示接收的數(shù)據(jù) 程序示例10.2同樣為了節(jié)約篇幅也沒有給出所使用的函數(shù)原型。需要注意,這些函數(shù)原型不能直接使用前面出現(xiàn)的類似函數(shù),但是可以由它們改寫而成。數(shù)碼管顯示電路配置函數(shù)中需要將管腳P1.0和P1.1配置為并行數(shù)字輸入 / 輸出管腳、輸出方向。1位數(shù)碼管的同步串行接口驅(qū)動(dòng)函數(shù)中現(xiàn)在需要使用管腳P1.0作為串行數(shù)據(jù)管腳,管腳P1.1作為串行時(shí)鐘管腳。由于“MSP430數(shù)據(jù)發(fā)送芯片”運(yùn)行程序示例10.1,發(fā)送
49、的為數(shù)碼管的顯示代碼,因此這里不需要再進(jìn)行顯示數(shù)據(jù)到顯示代碼的譯碼。USI模塊的配置函數(shù)只需要對程序示例10.1的對應(yīng)函數(shù)中語句USICTL0|=USIMST; / USI 工作在主模式進(jìn)行修改為USICTL0&=USIMST; / USI 工作在從模式從選擇工作在主模式修改為從模式。在主函數(shù)的重復(fù)執(zhí)行語句塊中,首先向通用串行接口數(shù)位計(jì)數(shù)器,USICNT,寫入需要接收的數(shù)據(jù)位數(shù),同時(shí)啟動(dòng)接收過程。由于“MSP430數(shù)據(jù)接收芯片”工作在從模式,移位時(shí)鐘來自于“MSP430數(shù)據(jù)發(fā)送芯片”,因此只能在發(fā)送芯片的發(fā)送過程中,接收芯片才能工作。當(dāng)接收芯片移入所需要的數(shù)據(jù)位數(shù),通用串行接口數(shù)位計(jì)數(shù)
50、器的內(nèi)容減到0,置位USI計(jì)數(shù)中斷標(biāo)志,USIIFG。計(jì)數(shù)中斷標(biāo)志的置位使得程序退出循環(huán)語句,將通用串行接口低字節(jié)移位寄存器,USISRL,的內(nèi)容送到數(shù)碼管顯示電路。一個(gè)循環(huán)完成,再次向通用串行接口數(shù)位計(jì)數(shù)器的賦值,清零USI計(jì)數(shù)中斷標(biāo)志,USIIFG。準(zhǔn)備接收下一個(gè)字節(jié)的信息。10.4.2 基于中斷方法實(shí)現(xiàn)串行數(shù)據(jù)的接收類似于按鍵動(dòng)作的識別,使用查詢的方法判斷數(shù)據(jù)是否已經(jīng)被接收需要進(jìn)行查詢,這對程序的工作效率將產(chǎn)生很大的影響。使用中斷的方法也可以來判斷1個(gè)完整的數(shù)據(jù)是否已經(jīng)被接收,程序示例10.3為采用中斷方法的“MSP430數(shù)據(jù)接收芯片”控制程序。程序示例10.3/ 程序名稱:com_spi_rupt/ 程序功能:通過 USI 的 SPI 模式實(shí)現(xiàn) 2 個(gè) MSP430 芯片之間通信的接收功能/ 目標(biāo)芯片:MSP430G2231/ 數(shù)據(jù)發(fā)送采用程序示例10.1傳輸數(shù)碼管的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑設(shè)計(jì)答辯匯報(bào)
- 冷鏈物流行業(yè)發(fā)展前景分析
- 2025建筑工程合同爭議解析
- 2025物流服務(wù)外包合同(專業(yè)律師審核起草修訂)
- 幼兒園假期安全教育指南
- 2025租房合同協(xié)議書標(biāo)準(zhǔn)版
- 2025合同管理規(guī)章:公章、資質(zhì)、合同及其它證書的使用與保管辦法
- 2025投資合同轉(zhuǎn)讓協(xié)議書
- 手術(shù)室細(xì)節(jié)護(hù)理
- 2025住宅房屋租賃合同協(xié)議范本
- SH/T 1673-1999工業(yè)用環(huán)己烷
- GB/T 9661-1988機(jī)場周圍飛機(jī)噪聲測量方法
- GB 29541-2013熱泵熱水機(jī)(器)能效限定值及能效等級
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 重癥醫(yī)學(xué)科各項(xiàng)規(guī)章制度匯編
- 社會組織培訓(xùn)概述課件
- 春節(jié)作文優(yōu)秀課件
- 三角函數(shù)的應(yīng)用論文Word版
- 農(nóng)業(yè)創(chuàng)業(yè)風(fēng)險(xiǎn)控制與防范培訓(xùn)課件
- 生物制造國內(nèi)外狀況課件
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
評論
0/150
提交評論