在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 帶大量I/O口擴(kuò)展的串行芯片GM8164及其應(yīng)用

            帶大量I/O口擴(kuò)展的串行芯片GM8164及其應(yīng)用

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


            (2)并行輸入、串行輸出工作方式

            當(dāng)LE=0、OC二0時(shí),若I/O為"1",則并行置數(shù),此時(shí)并行數(shù)據(jù)從10-I31輸入至內(nèi)部寄存器。若將I/0置"0"并斷開(kāi)輸入端,那么在CPU輸出指令時(shí)鐘CLK上升沿的作用下,內(nèi)部寄存器中的數(shù)據(jù)將從串行數(shù)據(jù)輸出端DOUTA、DOUTB或DOUTC輸出。

            (3)級(jí)聯(lián)工作方式

            GM8164JN芯片有三個(gè)串行數(shù)據(jù)輸出端DOU-TA、DOUTB、DOUTC,它們分別為內(nèi)部16位、32位、40位移位寄存器O15、O31、O39(O37)所對(duì)應(yīng)的內(nèi)部寄存器。當(dāng)用戶(hù)系統(tǒng)所需要的輸入輸出口數(shù)量較少時(shí)(如分別少于16個(gè)),可以只使用10-I15、O0-O15,此時(shí)DOUTA則可作為串行數(shù)據(jù)輸出端。而當(dāng)系統(tǒng)需要的I/0口數(shù)量很多時(shí),則可通過(guò)DOUTC再級(jí)聯(lián)一片GM8164芯片,以擴(kuò)展I/O數(shù)量。

            GM8164在使用時(shí)應(yīng)注意以下幾點(diǎn)。

            ●并行輸出口受輸出允許控制端OC和輸出鎖存控制端LE的控制,當(dāng)OC=1時(shí),輸出O0-O39為高阻態(tài)禁止并行數(shù)據(jù)輸出,但此時(shí)器件的串行輸入、并行置數(shù)及串行輸出功能不受影響。當(dāng)OC=0時(shí),若LE=1,則在O0-O39輸出數(shù)據(jù),而LE=0時(shí),則將O0-O39的數(shù)據(jù)鎖存。
            ●當(dāng)進(jìn)行輸出口控制時(shí),無(wú)論改變多少個(gè)輸出口的狀態(tài)(即使是一位),也必須把所有的輸出口狀態(tài)按照一定的順序重新輸出一次,且當(dāng)所有輸出口都應(yīng)置成所需的狀態(tài)后,方能置鎖存端為"1",然后再置"O"鎖存。
            ●由于O0-O7為OC門(mén)輸出結(jié)構(gòu),可驅(qū)動(dòng)電壓較高的非TTL型負(fù)載(電壓不得超過(guò)15V),因此當(dāng)O0-O7用于普通輸出口時(shí),應(yīng)外接上拉電阻。
            ●讀入輸入口狀態(tài)時(shí),不能打開(kāi)鎖存端,需要讀入的次數(shù)由輸入端所處的位置決定,而不一 定要把所有的輸入口狀態(tài)都讀入到CPU。
            ●當(dāng)用戶(hù)系統(tǒng)輸入口數(shù)量在16個(gè)以下而又使用DOUTB及DOUTC做輸出口時(shí),會(huì)出現(xiàn)2個(gè)(DOUTB端)或3個(gè)字節(jié)(DOUNTC端)的無(wú)效數(shù)據(jù);當(dāng)用戶(hù)的輸入端口數(shù)目在32個(gè)以下時(shí),DOUTC端會(huì)產(chǎn)生一個(gè)字節(jié)的無(wú)效數(shù)據(jù),而且在多片級(jí)聯(lián)時(shí)也會(huì)產(chǎn)生無(wú)效數(shù)據(jù),因此在軟件編程時(shí)應(yīng)將無(wú)效數(shù)據(jù)舍棄。

            4 應(yīng)用

            GM8164非常適合于非總線(xiàn)單片機(jī)擴(kuò)展I/O接口使用,這里以AT89C2051單片機(jī)為例來(lái)說(shuō)明GM8164的具體應(yīng)用電路。AT89C2051與GM8164的硬件連接電路如圖3所示。


            GM8164適合與單片機(jī)的UART相連,也可用I/O口線(xiàn)來(lái)模擬UART。為了提高數(shù)據(jù)傳送速度,本設(shè)計(jì)使用了單片機(jī)的異步串行口,并使之工作于方式0(即移位寄存器方式),此時(shí)波特率為fosc/12,如采用12MHz晶振,則GM8164的fcLK=1MHz,完全可滿(mǎn)足GM8164對(duì)時(shí)鐘頻率的要求。為了不影響單片機(jī)的串口通信功能,電路中使用了一片74HC4052雙4 選一模擬開(kāi)關(guān)來(lái)實(shí)現(xiàn)串行通信、輸出口控制和并口數(shù)據(jù)輸入的功能切換,并使用AT89C2051的P1.0、P1.1口實(shí)現(xiàn)A、B通道的選擇。當(dāng)P1.1P1.0=00時(shí)選擇串行輸入/并行輸出;P1.1P1.0=01時(shí)選擇并行輸入/串行輸出;P1.1P1.0=10時(shí)為串口通信功能;P1.1P1.0=11時(shí)禁止所有功能,同時(shí)使用單片機(jī)的P1.2-P1.4口來(lái)分別作為I/O控制、鎖存控制 和高阻輸出控制口。

            以下給出串行輸入/并行輸出方式和并行輸入/串行輸出工作方式的子程序,本程序假設(shè)使用了全部32個(gè)輸入口和40個(gè)輸出口,并用DOUTC端輸出串行數(shù)據(jù),開(kāi)關(guān)量輸入緩沖區(qū)設(shè)在具有位尋址功能的20-23H,開(kāi)關(guān)量輸出緩沖區(qū)設(shè)在24-28H,并使用串口工作方式0。發(fā)送和接收數(shù)據(jù)采用等待查詢(xún)方式。具體程序如下:

            ;位定義
            A BIT P1.0 ;4052通道選擇低位
            B BIT P1.1 ;4052通道選擇高位
            I/O BIT P1.2 ;I/O控制
            LE BIT P1.3 ;LE鎖存控制
            OC BIT P1.4 ;OC高阻控制
            ;并行輸入/串行輸出子程序
            INPUT:MOV R0,#20H;設(shè)置開(kāi)關(guān)量輸入緩沖區(qū)指針
            MOV R1,#04H ;設(shè)置開(kāi)關(guān)量輸入位數(shù)
            SETB A ;選擇開(kāi)關(guān)量
            CLR B ;輸入功能
            CLR LE
            CLR OC
            SETB I/O ;并行置數(shù)
            CLR I/O ;I0-I31高阻態(tài)
            RCV 1:CLR RI ;清接收結(jié)束標(biāo)志
            MOV SCON ,#10H ;設(shè)串口工作方式0,
            并啟動(dòng)接收
            WAIT 1:JNB RI,WAIT 1 ;未接收完等待
            MOV A,SBUF ;將串行開(kāi)關(guān)量數(shù)據(jù)送入A中
            MOV @ R0 ,A ; 開(kāi)關(guān)數(shù)據(jù)送開(kāi)關(guān)量輸入緩沖區(qū)

            INC R0 ;指向下一緩沖區(qū)
            DJNZ R1,RCV 1 ;未接收完則繼續(xù)接收
            RET ;返回
            ;串行輸入/并行輸出子程序
            ;將輸出口要求的開(kāi)關(guān)狀態(tài)由輸出量緩沖區(qū)輸出
            OUTPUT:MOV R0,#24H ;設(shè)置開(kāi)關(guān)量輸出緩沖區(qū)指針

            MOV R1,#05H ;設(shè)置開(kāi)關(guān)量輸出位數(shù)
            CLR A ;選擇開(kāi)關(guān)輸出功能
            CLR B
            CLR OC
            SETB LE ;允許輸出數(shù)據(jù)
            CLR I/O
            MOV SCON,#00H;設(shè)串行口工作方式0
            LOOP: MOV A,@ R0 ;取開(kāi)關(guān)量數(shù)據(jù)
            CLRTI;清發(fā)送結(jié)束標(biāo)志
            MOV SBUF,A ;發(fā)送數(shù)據(jù)
            WAIT2 JNB TI,WAIT 2 ;未發(fā)送完等待
            INC R0 ;指向下一緩沖區(qū)
            DJNZ R1,LOOP ;未發(fā)送完則繼續(xù)發(fā)送
            CLK LE ;鎖存O0-O39狀態(tài)
            RET ;返回

            開(kāi)關(guān)量輸入緩沖區(qū)20H~23H中的每一位與輸人口引腳10-I31一一對(duì)應(yīng)。開(kāi)關(guān)量輸出緩沖區(qū)24H~28H中的每一位和輸出口引腳O0~O39--一對(duì)應(yīng),緩沖區(qū)長(zhǎng)度可根據(jù)使用的I/O口數(shù)量進(jìn)行設(shè)置,輸人口的狀態(tài)可用位判別指令或字節(jié)判別指令來(lái)判斷,輸出口狀態(tài)可用更新對(duì)應(yīng)口線(xiàn)輸出緩沖區(qū)字節(jié)內(nèi)容的方法實(shí)現(xiàn)并口數(shù)據(jù)輸出或用置位/復(fù)位指令來(lái)實(shí)現(xiàn)位控輸出,限于篇幅,在這里就不詳述了。

            5 結(jié)束語(yǔ)

            GM8164串行I/O擴(kuò)展芯片具有擴(kuò)展I/O數(shù)量多,占用單片機(jī)硬件資源較少,接口電路及接口時(shí)序簡(jiǎn)單,數(shù)據(jù)傳送速度快的特點(diǎn),因而是一種較理想的開(kāi)關(guān)量擴(kuò)展芯片。

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

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉