在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > AVR 的 IO 端口特性與應(yīng)用

            AVR 的 IO 端口特性與應(yīng)用

            作者: 時(shí)間:2016-12-03 來源:網(wǎng)絡(luò) 收藏
            AVRIO端口特性分析:

            本文引用地址:http://www.biyoush.com/article/201612/325113.htm

            分析IO引腳Pxn。DDRxn只有為1時(shí),可控單向開關(guān)才工作,PORTxn的數(shù)值才能通過可控單向開送到Pxn.

            結(jié)論:DDRxn=1時(shí),為輸出狀態(tài)。輸出值等于PORTxn。所以,DDRxn為方向寄存器。PORTxn為數(shù)據(jù)寄存器。

            分析上拉電阻。E的電位為0時(shí),即D為1時(shí),上拉電阻有效。

            從與門的輸入分析,只有以下的條件同時(shí)滿足時(shí),上拉電阻才有效

            1、PUD為0

            2、DDxn為0

            3、PORTxn為1

            結(jié)論是:只有DDRxn = 0即管腳定義為輸入狀態(tài),并且PORTxn=1,而且UPD設(shè)置為0時(shí),上拉電阻才生效。

            分析Pxn及SLEEP。只有當(dāng)SLEEP = 0時(shí),可控開關(guān)2才導(dǎo)通,SD1不工作,施密特觸發(fā)器的輸入等于Pxn,信號(hào)送到同步器后讀取。

            結(jié)論:Pxn無論在輸入或輸出狀態(tài)都能被AVR讀取。SLEEP=0時(shí)輸入才能被讀取。

            AVR的IO端口的使用注意事項(xiàng):

            如果有引腳末被使用,建議些引腳賦予一個(gè)確定電平。最簡(jiǎn)單的保證未用引腳具有確定電平的方法是使能內(nèi)部上拉電阻。

            如果剛定義了引腳的輸入狀態(tài),就要立即回讀,可以在回讀前,插入一句_nop()。

            系統(tǒng)復(fù)位時(shí),DDR全部為0,Port也全部為0,故上拉電阻在復(fù)位時(shí)會(huì)失效。

            如何用C語言操縱AVR的IO端口(以ICCAVR為例):

            舉例一:將PB0定義為輸出,且輸出為高電平

            DDRB=BIT(0);//定義PB0為輸出

            PORTB|=BIT(0);// PB0輸出高電平

            舉例二:將PB0、PB1定義為輸出,PB0、PB1均為高電平

            DDRB|=BIT(0)|BIT(1);//定義PB0、PB1為輸出

            PORTB|=BIT(0)|BIT(1);// PB0、PB1輸出高電平

            舉例三:將PB0數(shù)據(jù)寄存器的數(shù)值翻轉(zhuǎn),即如果是1時(shí)變成0,如果是0時(shí)變成1

            PORTB^=BIT(0);//翻轉(zhuǎn)PB0口

            舉例四:將PB0、PB1數(shù)據(jù)寄存器的數(shù)值翻轉(zhuǎn),即如果是1時(shí)變成0,如果是0時(shí)變成1

            PORTB^=BIT(0)|BIT(1);//翻轉(zhuǎn)PB0、PB1口

            舉例五:將PB2、PB3定義為輸入,不帶上拉電阻

            DDRB&=~(BIT(2)|BIT(3));//定義PB2、PB3為輸入

            PORTB&=~(BIT(2)|BIT(3));//將PORT置0,沒有上拉電阻

            舉例六:將PB2、PB3定義為輸入,帶上拉電阻。即沒有引用這些引腳時(shí),缺省值為高電平

            SFIOR&=~BIT(PUD);// SFIOR寄存器的上拉電阻控制位PUD置0,在整個(gè)代碼中,這句話可以不出現(xiàn),或僅出現(xiàn)一次即可。因?yàn)樗且粋€(gè)控制全部上拉電阻的控制位。

            DDRB&=~(BIT(2)|BIT(3));//定義PB2、PB3為輸入

            PORTB|=BIT(2)|BIT(3);//將PORT置1,滿足上拉電阻的另一個(gè)條件

            舉例七:DDRB=BIT(0)|BIT(1)與DDRB|=BIT(0)|BIT(1)的區(qū)別

            假定在執(zhí)行上面兩句指令前,DDRB的狀態(tài)為:1000 0000

            如果執(zhí)行DDRB=BIT(0)|BIT(1),DDRB的狀態(tài)變?yōu)椋?000 0011
            如果執(zhí)行DDRD|=BIT(0)|BIT(1),,DDRB的狀態(tài)變?yōu)椋?000 0011

            那前一句會(huì)先清空以前的所有狀態(tài),后一句保留前面的狀態(tài)。

            在實(shí)際應(yīng)用中,后一句更常用。

            舉例八:將第三位置1,除了用BIT(3),還有其它的表達(dá)方法嗎?

            DDRB|=BIT(3);

            DDRB|=1<<3;

            DDRB|=0x08;

            DDRB|=0b00001000;



            關(guān)鍵詞: AVRIO端

            評(píng)論


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

            關(guān)閉