在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > c8051f020 I/O配置小結(jié)

            c8051f020 I/O配置小結(jié)

            作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏

            c8051f020 I/O配置小結(jié)
            020的每個I/O口引腳都可以被配置為推挽或漏極開路輸出。同時引入了數(shù)字交叉開關(guān),允許將內(nèi)部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口引腳。通過設(shè)置交叉開關(guān)寄存器可將片內(nèi)的計數(shù)器/定時器、串行總線、硬件中斷、ADC轉(zhuǎn)換啟動輸入、比較器輸出以及微控制器內(nèi)部的其他數(shù)字信號配置為出現(xiàn)在端口I/O引腳。必須在訪問這些外設(shè)的I/O之前配置和允許交叉開關(guān)。

            本文引用地址:http://www.biyoush.com/article/201611/320865.htm

            注意的問題:

            1.低端口既能按位尋址,也可以按字節(jié)尋址;高端口只能按字節(jié)尋址。

            2.沒有被分配到的引腳作為一般的數(shù)字通用I/O口。

            3.P1口還可以用作ADC1的模擬輸入。

            4.P0MDOUT~P3MDOUT用于控制I/O端口每一位的輸出狀態(tài)。

            5.EMIF(外部存儲器接口)是用于CPU與片外XRAM之間的數(shù)據(jù)傳輸通道,通過寄存器EMI0CF和EMI0CN選擇和管理端口實現(xiàn)數(shù)據(jù)的傳輸。

            6.為了能訪問片外存儲器空間,必須設(shè)置EMI0CN寄存器的內(nèi)容為片外存儲器的空間頁地址。

            7.如果把外部存儲器接口(EMIF)設(shè)置在高端口則首先要把EMI0CF的PRTSEL位設(shè)置為1,選擇高端口,同時選擇地址的復用或非復用方式,在把XBR的外部寄存器的EMIFLE位設(shè)置為0。

            8.復用方式配置:在復用方式下,數(shù)據(jù)總線和地址總線的第8位共用相同的引腳(AD0~AD7)。在該方式下,要用一個外部鎖存器(如74HC373或相同功能的鎖存器)保持RAM地址的低8位。外部鎖存器由ALE(地址鎖存使能)信號控制,ALE信號由外部存儲器接口邏輯驅(qū)動。

            9.在總線復用時,需要把地址數(shù)據(jù)復用端口配置為漏極開路。

            10.ALE高/低脈寬占1個SYSCLK周期,地址建立/保持時間占0個SYSCLK周期,/WR和/RD占12個SYSCLK周期,EMIF工作在地址/數(shù)據(jù)復用方式,即:EMI0CF |= 0x2c;EMI0TC |= 0x2c;配置EMIF的步驟是:先將EMIF選到低端口或高端口;然后選擇復用方式或非復用方式;再選擇存儲器的模式(只用片內(nèi)存儲器、不帶塊選擇的分片方式、帶塊選擇的分片方式或只用片外存儲器);然后設(shè)置EMI0TC;最后通過寄存器PnMDOUT和P74OUT選擇所期望的相關(guān)端口的輸出方式。如:

            void PORT_Init (void)
            {
            XBR2= 0x40;
            P74OUT |= 0xff;
            EMI0CF |= 0x2c;
            EMI0TC |= 0x6c;
            P3MDOUT |= 0xdf;

            }

            11.避免高端口處于“浮空”狀態(tài),以避免因輸入浮空為無效邏輯電平而導致不必要的功率消耗,為此應采取如下措施的任何一種:a.將XBR2.7位設(shè)置為邏輯0選擇弱上拉狀態(tài)

            R/WR/WR/WR/WR/WR/WR/WR/W復位值
            WEAKPUDXBARE-T4EXET4EUART1EEMIFLECNVSTE00000000
            位7位6位5位4位3位2位1位0SFR地址


            位7 WEAKPUD 弱上拉禁止位
            0 弱上拉全局允許
            1 弱上拉全局禁止
            位6 XBARE 交叉開關(guān)允許位
            0 交叉開關(guān)禁止端口0 1 2 和3 的所有引腳被強制為輸入方式
            1 交叉開關(guān)允許
            位5 未用讀0 寫=忽略
            位4 T4EXE T4EX 輸入允許位
            0 T4EX 不連到端口引腳
            1 T4EX 連到端口引腳
            位3 T4E T4 輸入允許位
            0 T4 不連到端口引腳
            1 T4 連到端口引腳
            位2 UART1E UART1 I/O 允許位
            0 UART1 I/O 不連到端口引腳
            1 UART1 TX 和RX 連到兩個端口引腳
            位1 EMIFLE 外部存儲器接口低端口允許位
            0 P0.7 P0.6 和P0.5 的功能由交叉開關(guān)或端口鎖存器決定
            1 如果EMI0CF.4 = 0 外部存儲器接口為復用方式
            則P0.7 (/WR) P0.6 (/RD)和P0.5 (/ALE)被交叉開關(guān)跳過它們的輸出
            狀態(tài)由端口鎖存器和外部存儲器接口決定
            1 如果EMI0CF.4 = 1 外部存儲器接口為非復用方式
            則P0.7 (/WR)和P0.6 (/RD)被交叉開關(guān)跳過它們的輸出狀態(tài)由端口鎖
            存器和外部存儲器接口決定
            位0 CNVSTE 外部轉(zhuǎn)換啟動輸入允許位
            0 CNVSTR 不連到端口引腳
            1 CNVSTR 連到端口引腳;

            b.令P74OUT=0xFF,將高端口輸出方式配置為推拉方式(P74OUT為高端口輸出方式寄存器);

            c.向高端口數(shù)據(jù)寄存器P4、P5、P6和P7寫0。

            12.配置端口引腳的輸出方式
            每個端口引腳的輸出方式都可被配置為漏極開路或推挽方式。在推挽方式下向端口數(shù)據(jù)寄存器中的相應位寫邏輯0 將使端口引腳被驅(qū)動到GND 寫邏輯1 將使端口引腳被驅(qū)動到VDD ,在漏極開路方式下向端口數(shù)據(jù)寄存器中的相應位寫邏輯0 將使端口引腳被驅(qū)動到GND 寫邏輯1 將使端口引腳處于高阻狀態(tài),當系統(tǒng)中不同器件的端口引腳有共享連接。即多個輸出連接到同一個物理線時(例如SMBus 連接中的SDA 信號),使用漏極開路方式可以防止不同器件之間的沖突。(推挽方式在有些書中稱為推拉方式)


            轉(zhuǎn)載-關(guān)于開漏、推挽方式2008-01-27 17:53漏級開路即高阻狀態(tài),適用于輸入/輸出,其可獨立輸入/輸出低電平和高阻狀態(tài),若需要產(chǎn)生高電平,則需使用外部上拉電阻或使用如LCX245等電平轉(zhuǎn)換芯片。有些朋友,尤其是未學過此方面知識的朋友,在實際工作中將I/O口設(shè)置為漏開,并想輸出高電平,但向口線上寫1后對方并未認出高電平,但用萬用表測量引腳確有電壓,這種認為是不對的,對于高阻狀態(tài)來說,測量電壓是無意義的,正確的方法應是外加上拉電阻,上拉電阻的阻值=上拉電壓/芯片引腳最大灌(拉)電流。
            推挽方式可完全獨立產(chǎn)生高低電平,推挽方式為低阻,這樣,才能保證口線上不分走電壓或分走極小的電壓(可忽略),保證輸出與電源相同的高電平,推挽適用于輸出而不適用于輸入,因為若對推挽(低阻)加高電平后,I=U/R,I會很大,將造成口的燒毀。

            對與C8051F的很多型號片子,將I/O口設(shè)置為推挽方式的做法為:PnMDOUT=0xff,Pn=0x00,這樣設(shè)置I/O口為推挽,并輸出低電平(可降低功耗)將I/O口設(shè)置為漏開方式的做法為:PnMDOUT=0x00,Pn=0x11,這樣設(shè)置I/O口為漏開。

            如果學過三極管放大電路一定知道,前置單管放大器和功放末級放大電路的區(qū)別。單片機內(nèi)部的邏輯經(jīng)過內(nèi)部的邏輯運算后需要輸出到外面,外面的器件可能需要較大的電流才能推動,因此在單片機的輸出端口必須有一個驅(qū)動電路。

            這種驅(qū)動電路有兩種形式:

            其中的一種是采用一只N型三極管(npn或n溝道),以npn三極管為例,就是e接地,b接內(nèi)部的邏輯運算,c引出,b受內(nèi)部驅(qū)動可以控制三極管是否導通但如果三極管的c極一直懸空,盡管b極上發(fā)生高低變化,c極上也不會有高低變化,因此在這種條件下必須在外部提供一個電阻,電阻的一端接c(引出腳)另一端接電源,這樣當三極管的b有高電壓是三極管導通,c電壓為低,當b為低電壓時三極管不通,c極在電阻的拉動下為高電壓,這種驅(qū)動電路有個特點:低電壓是三極管驅(qū)動的,高電壓是電阻驅(qū)動的(上下不對稱),三極管導通時的ec內(nèi)阻很小,因此可以提供很大的電流,可以直接驅(qū)動led甚至繼電器,但電阻的驅(qū)動是有限的,最大高電平輸出電流=(vcc-Vh)/r;

            另一種是互補推挽輸出,采用2只晶體管,一只在上一只在下,上面的一只是n型,下面為p型(以三極管為例),兩只管子的連接為:npn(上)的c連vcc,pnp(下)的c接地,兩只管子的ee,bb相連,其中ee作為輸出(引出腳),bb接內(nèi)部邏輯,這個電路通常用于功率放大點路的末級(音響),當bb接高電壓時npn管導通輸出高電壓,由于三極管的ec電阻很小,因此輸出的高電壓有很強的驅(qū)動能力,當bb接低電壓時npn截至,pnp導通,由于三極管的ec電阻很小因此輸出的低電壓有很強的驅(qū)動能力,簡單的例子,9013導通時ec電阻不到10歐,以Vh=2.5v,vcc=5v計算,高電平輸出電流最大=250MA,短路電流500ma,這個計算同時告訴我們采用推挽輸出時一定要小心千萬不要出現(xiàn)外部電路短路的可能,否則肯定燒毀芯片,特別是外部驅(qū)動三極管時別忘了在三極管的基極加限流電阻。推挽輸出電路的形式很多,有些單片機上下都采用n型管,但內(nèi)部邏輯提供互補輸出,以上的說明僅僅為了說明推挽的原理,為了更深的理解可以參考功率放大電路。

            ‍推挽方式可完全獨立產(chǎn)生高低電平,推挽方式為低阻,這樣,才能保證口線上不分走電壓或分走極小的電壓(可忽略),保證輸出與電源相同的高電平,推挽適用于輸出而不適用于輸入,因為若對推挽(低阻)加高電平后,I=U/R,I會很大,將造成口的燒毀。

            對與C8051F的很多型號片子,將I/O口設(shè)置為推挽方式的做法為:PnMDOUT=0xff,Pn=0x00,這樣設(shè)置I/O口為推挽,并輸出低電平(可降低功耗)將I/O口設(shè)置為漏開方式的做法為:PnMDOUT=0x00,Pn=0x11,這樣設(shè)置I/O口為漏開。

            推挽輸出0的時候和開漏特性一樣,就是1的時候可以當作直接接VCC.
            推挽輸出的驅(qū)動能力相當強,因為輸出1就等于接到了VCC.而同時推挽輸出的IO也需要注意不要直接接到地,否則一旦輸出1,就等于VCC通過內(nèi)部的場效應管直接到地了,這時候IO端發(fā)熱就很大,時間長就就拜拜了.
            你看到DX32實驗板上,按鍵部分都是串了個300歐才到地的,就是為了避免IO誤操作,使這些輸入變成推挽輸出1而做的保護.
            以此為設(shè)計依據(jù),一般情況下,所有的IO都盡量避免直接到地,即使這個IO你是打算用來做輸入的.



            關(guān)鍵詞: c8051f020IO配

            評論


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

            關(guān)閉