在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            關(guān) 閉

            新聞中心

            EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于LPC2103的SPI總線技術(shù)的應(yīng)用

            基于LPC2103的SPI總線技術(shù)的應(yīng)用

            作者: 時(shí)間:2010-05-20 來(lái)源:網(wǎng)絡(luò) 收藏


            圖4為接口與74HC595的連接原理圖。其中QA~QH分別連接共陽(yáng)LED數(shù)碼管的8個(gè)段。在輸出1個(gè)字節(jié)的數(shù)據(jù)時(shí),SSEL產(chǎn)生1個(gè)低電平,主機(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引腳連接,啟用的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總線操作流程圖。使用的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 = (03)|//CPHA=0,數(shù)據(jù)再?gòu)腟CK的第一時(shí)鐘沿采樣
            (14)|//CPOL=1,SCK為低有效
            (15)|//MSTR=1,SPI處于主模式
            (06)|//LSBF=0,SPI數(shù)據(jù)傳輸MSB(位7)在先
            (07);//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; //片選端,由指定的I/O口置位
            SPI_SPDR=data;
            while(0==(SPI_SPSR0x80)); //等待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;i16;i++)
            {rcv_data=MSendData(DISP_TAB[i]); //發(fā)送顯示數(shù)據(jù)
            DelayNS(50); //延時(shí)
             }
            }
            return(0);
             }
            SPI總線的數(shù)據(jù)通信已經(jī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í)現(xiàn)對(duì)LED顯示的數(shù)據(jù)傳輸,方便快捷、準(zhǔn)確性高、速度快,滿足了復(fù)雜微控制系統(tǒng)對(duì)外圍設(shè)備控制的要求。


            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉