专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机avr 输入输出(i/o)端口使用 介绍

作者:海盗工作室   来源:本站原创   点击数:  更新时间:2014年04月29日   【字体:

以ATmega16单片机为例,共有32个通用I/O口,分为4个端口PA,PB,PC,PD,每个端口都包含8个I/O口,如图所示,每个端口对应一个8位的二进制,对应的i/o管脚顺序由高到低排列。

 

 

每个I/O口都可以单独设为输入或输出,如上图中PA口的8个I/O口全部设为输出,控制8个发光二极管的亮灭。i/o口除作为输入输出口外,还有第二功能,如PA口也作为AD转换的输入口。

每个端口都具有输入,输出,方向控制三个寄存器:

 

 

 

以PA口为例,其他端口相同,方向寄存器DDRA,对应8个的I/O口,1设为输出,0设为输入。

                                              输出寄存器PORTA,对应的I/O口,1输出高电平,0输出低电平

                                              输入寄存器PINA ,    若对应的I/O口为高电平,相应的位置1,低电平置0

 

 

 

例如:PA口全部设为输出,DDRA=0xFF,并且全部输出低电平,PORTA=0x00;将点亮上图中的全部发光二极管。

          将PB口的第0位(最低位)设为输入,其余位设为输出,DDRB=0xFE;

                     if   ((PINB&0x01)==1)  //判断PB口的第0位的输入状态,是0还是1.

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

                              else

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

 

关闭窗口

相关文章