最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 单片机I/O端口的用法-讨论一下单片机ATMega16的端口结构

    通过前面例子的讲解,已经基本了解了单片机I/O口的使用方法。为了更好、更深入地使用I/O端口,我们来详细讨论一下AVR单片机ATMega16的端口结构。

    输入/输出口(I/O口)是单片机可以依靠的唯一控制通道。如果把单片机的核心比作人脑,那么I/O口就相当于人的五官和四肢,负责信息的获取。而动作的执行,没有I/O口的单片机本身就变得毫无意义,所以有必要详细了解它们的内部结构。ATMega16 的端口是一个双向 I/O 端口输入输出端口是一种技术,带有一个可选的上拉电阻。以下是其中一个 I/O 端口的内部结构图(来自数据表)。

    上图中,Pxn 为该位的输入/输出端口,为单片机的外部引脚。它通过 PORTxn 寄存器连接到数据总线(DATA BUS)。上例中对 PORTxn 的赋值实际上是通过数据总线写这个寄存器来实现的。图中还可以看出,Pxn和PORTxn之间其实还有一个门控位。如果要将PORTxn的结果输出到Pxn,则门控位必须打开,门控位受控信号来自DDxn(DDRx中的位)寄存器。通过数据总线向该寄存器位写1,可以打开门控位,输出信号可以直接输出到引脚Pxn。这也是为什么如果 MCU 引脚要处于输出状态,DDRx 方向寄存器必须被赋值为 1 的原因。如果给DDxn赋值0,则门控位断开,引脚Pxn不能用作输出,只能用作输入。但是输入信号可以从两个地方取,一个是直接从外部引脚Pxn(图中下半部分)取,其实就是将外部引脚的信号锁存到PINxn寄存器中读取;另一个取自输出寄存器PORTxn(图中门控位控制信号为RRx)。一般称为“取自外部引脚(PINxn)”作为读引脚,“取自寄存器PORTxn”称为读端口寄存器。并且引脚Pxn不能用作输出,而只能用作输入。但是输入信号可以从两个地方取,一个是直接从外部引脚Pxn(图中下半部分)取,其实就是将外部引脚的信号锁存到PINxn寄存器中读取;另一个取自输出寄存器PORTxn(图中门控位控制信号为RRx)。一般称为“取自外部引脚(PINxn)”作为读引脚,“取自寄存器PORTxn”称为读端口寄存器。并且引脚Pxn不能用作输出输入输出端口是一种技术,而只能用作输入。但是输入信号可以从两个地方取,一个是直接从外部引脚Pxn(图中下半部分)取,其实就是将外部引脚的信号锁存到PINxn寄存器中读取;另一个取自输出寄存器PORTxn(图中门控位控制信号为RRx)。一般称为“取自外部引脚(PINxn)”作为读引脚,“取自寄存器PORTxn”称为读端口寄存器。外部引脚的信号被锁存到PINxn寄存器中读取;另一个取自输出寄存器PORTxn(图中门控位控制信号为RRx)。一般称为“取自外部引脚(PINxn)”作为读引脚,“取自寄存器PORTxn”称为读端口寄存器。外部引脚的信号被锁存到PINxn寄存器中读取;另一个取自输出寄存器PORTxn(图中门控位控制信号为RRx)。一般称为“取自外部引脚(PINxn)”作为读引脚,“取自寄存器PORTxn”称为读端口寄存器。

    从图中还可以看出,引脚Pxn上方,有一个由MOS管控制的上拉电阻。MOS管同时由PUD位、DDxn位和PORTxn位控制。当引脚用作输入时(DDxn=0),将 PORTxn 赋值为 1 后,PUD 可以控制该引脚是否使用上拉电阻。当 PUD 位为 0 时,上拉up 电阻有效,否则相反。.PUD 存在于寄存器 SFIOR 的第 2 位,见下图。

    下图是端口A代表的三个寄存器的具体配置:

    从图中可以看出,PORT和DDR寄存器是可读写的,而PIN寄存器是只读的。对于寄存器中各个位的操作,可以在IAR开发环境中直接引用,在第二个例子中已经说明。下表显示了这些寄存器组合的具体配置:

    使用 I/O 端口时还有几点需要注意:

    1、当用作通用数字 I/O 时,所有 I/O 端口都具有真正的读-修改-写功能。

    2、无论DDxn如何配置,都可以通过读取PINxn寄存器来获得引脚电平。

    rca是输入还是输出_输入输出端口是一种技术_休眠模式io 默认是输入还是输出

    3、读取软件分配的管脚电平时,分配指令和读取指令之间需要至少有一个时钟周期间隔(可以插入一条nop指令)。

    4、如果有些管脚不用,建议给这些管脚分配一定的电平。

    5、复位时,上拉电阻被禁用,引脚处于高阻抗状态。

    6、每个I/O端口在稳态条件下可以承受的拉电流或灌电流为:VCC=5V时为20mA,VCC=3V时为10mA。

    7、所有端口的拉电流或灌电流之和不能超过400mA,端口A、B、C、D各自的拉电流或灌电流之和不能超过200mA(DIP封装模式下,端口B、C、D 高达 300mA)。

    除了通用数字 I/O 功能外,大多数端口引脚还具有辅助功能,称为端口复用。因为单片机的管脚毕竟是有限的,而且用作通用数字I/O口的管脚大部分情况下不一定用完,所以单片机没必要单独做管脚实现其他功能。例如,A/D(模拟/数字)转换不需要作为单片机的输入引脚,而是直接将此功能附加到 PORTA 的 I/O 端口。这样,PORTA的8个引脚就有了第二个功能,即作为A/D转换的信号输入端。当然,某个时间只能使用其中一个功能,不可能同时使用两个功能,所以称为多路复用。这里需要注意的是,所谓的第二个函数只是一个声明。一些单片机的管脚非常复用,可以实现两个以上的功能。

    要实现引脚的第二个功能,端口的内部结构比较复杂,这里不再深入讨论。下面只给出ATMega16单片机引脚复用的第二个功能。

    要实现端口的第二个功能,当然必须有相关的寄存器进行选择控制。不同的第二个函数配置的寄存器不同,配置方法也不同,所以要根据实际情况来确定。引脚第二个功能的具体使用将在后续相关讨论中详细介绍

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 单片机I/O端口的用法-讨论一下单片机ATMega16的端口结构

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论