第6节 I/O 端口
推荐给好友
打印
加入收藏
更新于2008-08-26 14:49:25

I/O 端口是MCU与外部电路连接的进行数据传输的通道。


4.6.1 概述

I/O口的作用是通过PDR寄存器将数据从CPU中输出或装载输入的信号到CPU。通过设置DDR寄存器来配置每一位的方向(输入/输出)。
寄存器列表如下: 




R/W:可读/可写(读写的值相同)
R,RM/W: 可读/可写(作为标志位被状态改变)


4.6.2 P0 口

P0口是一个通用I/O口
P0口配置:
P0口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P0口数据寄存器(PDR0) 
    P0口方向寄存器(DDR0)
该端口有8个引脚


P0口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR0全部为”0”。


4.6.3 P1 口

P1口是一个通用I/O口
P1口配置:
P1口由下面几个部分组成:
    通用I/O引脚/外围功能引脚 
    P1口数据寄存器(PDR1) 
    P1口方向寄存器(DDR1) 
    P1口上拉寄存器(PUL1) 
    输入级别选择寄存器(ILSR)
该端口有5个引脚:
P1口引脚

点击查看图片

 

P1口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据;
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit  为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR1全部为”0”。


4.6.4 P2 口

P2口是一个通用I/O口
P2口配置:
P2口由下面几个部分组成:
    通用I/O引脚/外围功能引脚 
    P2口数据寄存器(PDR2) 
    P2口方向寄存器(DDR2) 
    P2口上拉寄存器(PUL2)
该端口有5个引脚:


P2口框图

点击查看图片

P2口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR2全部为”0”。


4.6.5 P3 口

P3口是一个通用I/O口
P3口配置:
P3 口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P3 口数据寄存器(PDR1) 
    P3口方向寄存器(DDR1) 
    P3口上拉寄存器(PUL1) 
    A/D输入使能寄存器(AIDRL)
该端口有8个引脚:

P3口框图

点击查看图片

DDR3
PUL3
AIDRL

P3口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR3全部为”0”。


4.6.6 P4 口

P4口是一个通用I/O口
P4口配置:
P4 口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P4口数据寄存器(PDR1) 
    P4口方向寄存器(DDR1) 
    P4口上拉寄存器(PUL1) 
    A/D输入使能高位(AIDRH)
该端口有4个引脚:

点击查看图片

点击查看图片


P4口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR4全部为”0”。


4.6.7 P5 口

P5口是一个通用I/O口
P5口配置:
P5 口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P5口数据寄存器(PDR5) 
    P5口方向寄存器(DDR5) 
    P5口上拉寄存器(PUL5) 
    输入级别选择寄存器(ILSR)
该端口有4个引脚:



点击查看图片

P5口寄存器

点击查看图片


P5口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR5全部为”0”。


4.6.8 P6 口

P6口是一个通用I/O口
P6口配置:
P6 口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P6 口数据寄存器(PDR6) 
    P6口方向寄存器(DDR6) 
    P6口上拉寄存器(PUL1) 
    输入级别选择寄存器(ILSR)
该端口有8个引脚:



点击查看图片


P6口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR6全部为”0”。


4.6.9 P7 口

P7口是一个通用I/O口
P7口配置:
P7 口由下面几个部分组成:
    通用I/O引脚/外围功能引脚
    P7口数据寄存器(PDR7) 
    P7口方向寄存器(DDR7) 
    P7口上拉寄存器(PUL7)
该端口有2个引脚:


P7口框图

点击查看图片


P7口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR7全部为”0”。


4.6.10 P8 口

P8口是一个通用I/O口
P8口配置:
P8 口由下面几个部分组成: 
    通用I/O引脚/外围功能引脚 
    P8口数据寄存器(PDR8) 
    P8口方向寄存器(DDR8)
该端口有4个引脚:

点击查看图片


寄存器和引脚的对应
寄存器和引脚的对应关系


P8口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDR8全部为”0”。


4.6.11 PE 口

PE口是一个通用I/O口
PE口配置:
PE 口由下面几个部分组成:
    通用I/O引脚/外围功能引脚
    PE口数据寄存器(PDRE) 
    PE口方向寄存器(DDRE) 
    PE口上拉寄存器(PULE) 
    输入级别选择寄存器(ILSR)
该端口有5个引脚:


PE口框图

点击查看图片


寄存器和引脚的对应
寄存器和引脚的对应关系:
引脚----PE3 PE2 PE1 PE0
PDRE
DDRE ----Bit3 Bit2 Bit1 Bit0
PULE

PE口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。

复位时的操作:
回到初始的状态,DDRE全部为”0”。


4.6.12 PG 口

PG口是一个通用I/O口
PG口配置:
PG 口由下面几个部分组成:
    通用I/O引脚/外围功能引脚
    PG口数据寄存器(PDRG) 
    PG口方向寄存器(DDRG) 
    PG口上拉寄存器(PULG)
该端口有3个引脚:

点击查看图片

点击查看图片

PG口的操作:
作为输出引脚的操作:
1.设置相应的DDRbit 为“1”,该引脚为输出引脚;
2.作为外部复用功能,该设置无效;
3.作为输出功能引脚,输出的数据是PDR中的数据
4.数据写入PDR中,储存在输出锁存器,输出到引脚的值就是输出锁存器中的数据;
5.读PDR返回PDR中的值。

作为输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为输入引脚;
2.作为外部复用功能,该设置无效;
3.数据写入PDR中,储存在输出锁存器,不输出到引脚;
4.读PDR返回外部引脚的值,读刷新写命令返回PDR的值。

作为外部功能输出引脚的操作:
1.设置相应的使能位,引脚工作在外部功能输出模式;
2.引脚的状态从PDR0读出

作为外部功能输入引脚的操作:
1.设置相应的DDRbit 为“0”,该引脚为外部功能输入引脚;
2.读PDR0寄存器的时候返回引脚的状态,与外部功能设置无关。
复位时的操作:
回到初始的状态,DDRG全部为”0”。

 

上一节                    下一节


 



相关链接


 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.