專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)avr 輸入輸出(i/o)端口使用 介紹

作者:海盜工作室   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月29日   【字體:

以ATmega16單片機(jī)為例,共有32個(gè)通用I/O口,分為4個(gè)端口PA,PB,PC,PD,每個(gè)端口都包含8個(gè)I/O口,如圖所示,每個(gè)端口對(duì)應(yīng)一個(gè)8位的二進(jìn)制,對(duì)應(yīng)的i/o管腳順序由高到低排列。

 

 

每個(gè)I/O口都可以單獨(dú)設(shè)為輸入或輸出,如上圖中PA口的8個(gè)I/O口全部設(shè)為輸出,控制8個(gè)發(fā)光二極管的亮滅。i/o口除作為輸入輸出口外,還有第二功能,如PA口也作為AD轉(zhuǎn)換的輸入口。

每個(gè)端口都具有輸入,輸出,方向控制三個(gè)寄存器:

 

 

 

以PA口為例,其他端口相同,方向寄存器DDRA,對(duì)應(yīng)8個(gè)的I/O口,1設(shè)為輸出,0設(shè)為輸入。

                                              輸出寄存器PORTA,對(duì)應(yīng)的I/O口,1輸出高電平,0輸出低電平

                                              輸入寄存器PINA ,    若對(duì)應(yīng)的I/O口為高電平,相應(yīng)的位置1,低電平置0

 

 

 

例如:PA口全部設(shè)為輸出,DDRA=0xFF,并且全部輸出低電平,PORTA=0x00;將點(diǎn)亮上圖中的全部發(fā)光二極管。

          將PB口的第0位(最低位)設(shè)為輸入,其余位設(shè)為輸出,DDRB=0xFE;

                     if   ((PINB&0x01)==1)  //判斷PB口的第0位的輸入狀態(tài),是0還是1.

                              PORTA=0x00;    //如果PB口的第0位等于1,即PA口的第0位輸入高電平,那么PA口全部輸出低電平

                              else

                                    PORTA=0xFF;//如果PB口的第0位等于0,即PA口的第0位輸入低電平,那么PA口全部輸出高電平

 

關(guān)閉窗口

相關(guān)文章