當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]摘 要:介紹了一種基于SPI總線技術(shù)的LPC2103對(duì)LED數(shù)碼管顯示實(shí)現(xiàn)控制的方法。采用8位74HC595串并轉(zhuǎn)換芯片驅(qū)動(dòng)LED數(shù)碼管。結(jié)合74HC595芯片的特點(diǎn)給出了SPI控制的驅(qū)動(dòng)電路,描述了基于SPI總線主模式的74HC595芯片的數(shù)據(jù)

摘 要:介紹了一種基于SPI總線技術(shù)的LPC2103對(duì)LED數(shù)碼管顯示實(shí)現(xiàn)控制的方法。采用8位74HC595串并轉(zhuǎn)換芯片驅(qū)動(dòng)LED數(shù)碼管。結(jié)合74HC595芯片的特點(diǎn)給出了SPI控制的驅(qū)動(dòng)電路,描述了基于SPI總線主模式的74HC595芯片的數(shù)據(jù)傳輸過(guò)程,給出了相關(guān)應(yīng)用程序流程圖及軟件實(shí)現(xiàn)。
    關(guān)鍵詞: SPI總線;主模式;LPC2103;74HC595

 

    SPI( Serial Peripheral Interface) 總線是Motorola公司提出的一個(gè)同步串行外設(shè)接口, 允許MCU與各種外圍器件以串行方式進(jìn)行通信、數(shù)據(jù)交換。SPI可以同時(shí)發(fā)出和接收串行數(shù)據(jù), 它只需4條線就可以完成MCU與各種外圍器件的通信。一般使用的4條線為:串行時(shí)鐘線SCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SSEL。這些外圍器件可以是簡(jiǎn)單的TTL移位寄存器、復(fù)雜的LCD顯示驅(qū)動(dòng)器、Flash、RAM、A/D轉(zhuǎn)換器、網(wǎng)絡(luò)控制器及其他MCU等[1]。
    本文給出了一種基于SPI總線的LPC2103控制外圍LED顯示的設(shè)計(jì)方法。利用74HC595驅(qū)動(dòng)靜態(tài)共陽(yáng)LED數(shù)碼管,使用串轉(zhuǎn)并的方式實(shí)現(xiàn)I/O口的擴(kuò)展。
1 LPC2103中的SPI功能特性
    LPC2103是一個(gè)基于支持實(shí)時(shí)仿真的16/32位ARM7 TDMI-S CPU的微控制器,內(nèi)部具有2個(gè)完全獨(dú)立的SPI控制器,采用全雙工的數(shù)據(jù)通信方式,最大數(shù)據(jù)位速率為外設(shè)時(shí)鐘Fpclk的1/8。與SPI總線接口有關(guān)的專用寄存器有:(1)SPCR控制寄存器。該寄存器包含一些可編程位來(lái)控制SPI總線的功能,而且在數(shù)據(jù)傳輸之前進(jìn)行設(shè)定,主要有時(shí)鐘相位控制、時(shí)鐘極性控制、主從模式選擇、字節(jié)傳輸移動(dòng)方向及SPI中斷使能;(2)SPSR狀態(tài)寄存器(為只讀寄存器)。用于監(jiān)視SPI功能模塊的狀態(tài),包括一般性功能和異常情況。主要用途是檢測(cè)數(shù)據(jù)傳輸是否完成,通過(guò)判斷SPIF位來(lái)實(shí)現(xiàn),其他位用于指示異常情況;(3)SPDR數(shù)據(jù)寄存器。為SPI提供數(shù)據(jù)的發(fā)送和接收,處于主模式時(shí),向該寄存器寫入數(shù)據(jù),將啟動(dòng)SPI數(shù)據(jù)傳輸。串行數(shù)據(jù)的發(fā)送和接收通過(guò)內(nèi)部移位寄存器來(lái)實(shí)現(xiàn);(4)SPCCR時(shí)鐘計(jì)數(shù)器寄存器。用于設(shè)置SPI時(shí)鐘分頻值,SPI處于主模式時(shí),該寄存器用于控制時(shí)鐘速率,即SPI總線速率,寄存器值為1位SCK時(shí)鐘所占用的PCLK周期數(shù),并且值為偶數(shù),必須不小于8;(5)SPINT中斷標(biāo)志寄存器。包含了SPI的中斷標(biāo)志位,由數(shù)據(jù)傳輸完成及發(fā)生模式錯(cuò)誤來(lái)引發(fā)[2]。
1.1 SPI電氣連接
    利用SPI總線可在軟件的控制下構(gòu)成各種系統(tǒng),如1個(gè)主MCU和幾個(gè)從MCU、幾個(gè)從MCU相互連接構(gòu)成多主機(jī)系統(tǒng)(分布式系統(tǒng))、1個(gè)主MCU和1個(gè)或幾個(gè)從I/O設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場(chǎng)合, 可使用1個(gè)MCU 作為主機(jī)來(lái)控制數(shù)據(jù),并向1個(gè)或幾個(gè)從外圍器件傳送該數(shù)據(jù)。從器件只有在主機(jī)發(fā)命令時(shí)才能接收或發(fā)送數(shù)據(jù)。同一時(shí)刻只允許有1個(gè)主機(jī)操作總線。在數(shù)據(jù)傳輸過(guò)程中,總線上只能有1個(gè)主機(jī)和1個(gè)從機(jī)通信。在一次數(shù)據(jù)傳輸中,主機(jī)總是向從機(jī)發(fā)送1個(gè)字節(jié)數(shù)據(jù),而從機(jī)也總是向主機(jī)發(fā)送1個(gè)字節(jié)數(shù)據(jù)[3]。圖1為SPI在主模式下控制2個(gè)SPI從機(jī)的硬件連接圖。

 

 

1.2 SPI數(shù)據(jù)傳輸
    在SPI數(shù)據(jù)傳輸中,SPCR控制寄存器的CPHA和CPOL位作用非常關(guān)鍵。CPHA為時(shí)鐘相位控制,該位決定SPI傳輸時(shí)數(shù)據(jù)和時(shí)鐘的關(guān)系,并控制從機(jī)傳輸?shù)钠鹗己徒Y(jié)束,該位為1,時(shí)鐘前沿?cái)?shù)據(jù)輸出,后沿?cái)?shù)據(jù)采樣;為0,時(shí)鐘前沿?cái)?shù)據(jù)采樣,后沿?cái)?shù)據(jù)輸出。CPOL為時(shí)鐘極性控制,為1時(shí),SCK為低電平有效;為0時(shí),SCK為高電平有效[4]。[!--empirenews.page--]
    圖2為SPI的4種不同數(shù)據(jù)傳輸格式時(shí)序,描述的是8位數(shù)據(jù)傳輸。該時(shí)序圖水平方向分成3部分:(1)描述SCK和SSEL信號(hào);(2)描述CPHA為0時(shí)的MOSI和MISO信號(hào);(3)描述CPHA為1時(shí)的MOSI和MISO信號(hào)。SSEL信號(hào)為低電平,說(shuō)明SPI工作在從模式。其中,MOSI和MISO信號(hào)中的bit1~bit8表示傳輸?shù)牡趲孜粩?shù)據(jù)。

 


2 74HC595擴(kuò)展I/O接口電路
    SPI是一個(gè)串行輸入輸出的接口,使用串轉(zhuǎn)并的接口芯片可以實(shí)現(xiàn)擴(kuò)展I/O口。74HC595芯片為一種常用的8位串轉(zhuǎn)并移位寄存器芯片,本系統(tǒng)利用74HC595來(lái)驅(qū)動(dòng)靜態(tài)共陽(yáng)LED數(shù)碼管。74HC595的主要優(yōu)點(diǎn):具有數(shù)據(jù)存儲(chǔ)寄存器,在移位過(guò)程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場(chǎng)合很有用處,數(shù)碼管沒(méi)有閃爍感。LPC2103工作在SPI主模式下。
    圖3為74HC595邏輯圖。圖中,SI為串行數(shù)據(jù)輸入引腳,用來(lái)連接LPC2103的MOSI功能引腳;SCK為移位寄存器的時(shí)鐘輸入,連接LPC2103串行時(shí)鐘線SCK;為清移位寄存器引腳;RCK為鎖寄存器鎖存時(shí)鐘引腳;即輸出觸發(fā)端與SSEL連接;為輸出使能引腳;SQH為串行數(shù)據(jù)輸出引腳,連接MISO;QA~QH引腳為并行輸出。當(dāng)為高電平、使能接低時(shí),SCK產(chǎn)生一個(gè)上升沿,SI引腳當(dāng)前電平值將在移位寄存器中左移1位,在下一個(gè)上升沿到來(lái)時(shí)移位寄存器中的所有位都會(huì)向左移1位,同時(shí)SQH引腳也會(huì)串行輸出移位寄存器中的高位的值。當(dāng)RCK產(chǎn)生上升沿時(shí),移位寄存器的值將會(huì)被鎖存到鎖存器里,并從QA~QH引腳輸出。

 

 [!--empirenews.page--]


    圖4為SPI接口與74HC595的連接原理圖。其中QA~QH分別連接共陽(yáng)LED數(shù)碼管的8個(gè)段。在SPI輸出1個(gè)字節(jié)的數(shù)據(jù)時(shí),SSEL產(chǎn)生1個(gè)低電平,SPI主機(jī)串行地發(fā)該字節(jié)的各個(gè)位,各個(gè)位都依次被鎖存在74HC595的移位寄存器內(nèi),當(dāng)1個(gè)字節(jié)的數(shù)據(jù)傳輸完成后,SSEL由低電平變?yōu)楦唠娖?,從而?4HC595的移位寄存器的值被鎖存到74HC595的鎖存器并從其QA~QH引腳輸出;在SPI輸出1個(gè)字節(jié)數(shù)據(jù)的同時(shí),74HC595移位寄存器之前的值也通過(guò)MISO引腳被SPI主機(jī)讀回。

 

3  軟件設(shè)計(jì)[5]
    軟件設(shè)計(jì)包括:進(jìn)行I/O口初始化,設(shè)置SPI引腳連接,啟用LPC2103的SPI 0總線,設(shè)置GPIO的P0.4、P0.5、P0.6、P0.7為SPI 0總線的SCK0、MISO0、MOSI0、SSEL0特殊功能,置74HC595片選端的I/O口為輸出功能。其代碼如下:
    PINSEL0=0x00005500;  //設(shè)置SPI引腳連接
    PINSEL1=0x00000000;
    IODIR=HC595_CS;  //設(shè)置片選端I/O口為輸出
3.1 SPI總線操作初始化
    圖5為SPI總線操作流程圖。使用LPC2103的SPI總線主模式下實(shí)現(xiàn)對(duì)74HC595的數(shù)據(jù)傳輸,用來(lái)驅(qū)動(dòng)外圍LED數(shù)碼管。設(shè)置SPI時(shí)鐘,在SPI主模式下,SPCCR寄存器控制SCK的頻率,SPI速率為Fpclk / SPCCR。通過(guò)SPCR控制寄存器設(shè)置時(shí)鐘相位、時(shí)鐘極性、主模式控制、字節(jié)移動(dòng)方向及SPI中斷使能等。代碼實(shí)現(xiàn)如下:

 


    Void MSpiIni(void)
    {  SPI_SPCCR = 0x52;  //設(shè)置SPI時(shí)鐘分頻
       SPI_SPCR  = (0<<3)|  //CPHA=0,數(shù)據(jù)再?gòu)腟CK的第一時(shí)鐘沿采樣
               (1<<4)|   //CPOL=1,SCK為低有效
               (1<<5)|   //MSTR=1,SPI處于主模式
               (0<<6)|   //LSBF=0,SPI數(shù)據(jù)傳輸MSB(位7)在先
               (0<<7);   //SPIE=0,SPI中斷被禁止
    }
3.2 SPI總線主模式下數(shù)據(jù)發(fā)送過(guò)程
    首先選擇從機(jī),設(shè)置片選。選擇74HC595為從機(jī),置片選端SSEL為低有效。將發(fā)送的數(shù)據(jù)寫入SPDR,發(fā)送出去。等待SPIF置位,即數(shù)據(jù)發(fā)送完畢。最后可從SPDR讀取收到的數(shù)據(jù)。以下為發(fā)送函數(shù):
    uint8 MSendData(uint8 data)
    {    IOCLR=HC595_CS;   //片選端,由LPC2103指定的I/O口置位
         SPI_SPDR=data;
         while(0==(SPI_SPSR&0x80));    //等待SPIF置位,即等待數(shù)據(jù)發(fā)送完畢
         IOSET=HC595_CS;  //片選置高無(wú)效,結(jié)束發(fā)送
         return(SPI_SPDR);   //返回接收到的數(shù)據(jù)
    }
3.3 控制LED數(shù)碼管主函數(shù)
    主函數(shù)使用LPC2103的SPI接口輸出給74HC595,用來(lái)控制LED數(shù)碼管顯示。DISP_TAB[ ]為L(zhǎng)ED顯示0-F字模的16進(jìn)制碼表。MSendData( )實(shí)現(xiàn)每一字節(jié)數(shù)據(jù)的發(fā)送。
    #define   HC595_CS    0x00000100         //P0.8口為74HC595的片選
    uint8 const DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
    int main(void)
    {   uint8 rcv_data;
    uint8 i;
    PINSEL0=0x00005500;     //設(shè)置SPI引腳連接
    PINSEL1=0x00000000;
    IODIR=HC595_CS;             //設(shè)置LPC2103片選I/O口為輸出功能
    MSpiIni( );                          //初始化SPI接口
    while(1)
    { for (i=0;i<16;i++)
         {rcv_data=MSendData(DISP_TAB[i]);   //發(fā)送顯示數(shù)據(jù)
          DelayNS(50);                      //延時(shí)
        }
    }
       return(0);
 }
    基于SPI總線的數(shù)據(jù)通信技術(shù)已經(jīng)廣泛應(yīng)用在MCU與各種外圍設(shè)備的串行通信中。如存儲(chǔ)系統(tǒng)、A/D轉(zhuǎn)換系統(tǒng)、網(wǎng)絡(luò)控制器和多MCU構(gòu)成的分布式系統(tǒng)。本文給出了74HC595芯片驅(qū)動(dòng)LED數(shù)碼管顯示的電路,采用SPI總線技術(shù)實(shí)現(xiàn)對(duì)LED顯示的數(shù)據(jù)傳輸,方便快捷、準(zhǔn)確性高、速度快,滿足了復(fù)雜微控制系統(tǒng)對(duì)外圍設(shè)備控制的要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉