找回密码
 注册
关于网站域名变更的通知
查看: 345|回复: 4
打印 上一主题 下一主题

AVR单片机的IO端口介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-9-9 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ATmega16有4个8位的双向I/O端口PA、PB、PC、PD,他们对外对应32个I/O引脚,每一位都可以独立地用于逻辑信号的输入和输出。在5V工作电压下,输出高点平时,每个引脚可输出达20mA的驱动电流;而输出低电平时,每个引脚可吸收最大为40mA的电流,可以直接驱动发光二极管(一般的发光二极管的驱动电流为10mA)和小型继电器等小功率器件。
AVR大部分的I/O端口都具备双重功能(有的还有第三功能)。其中第一功能是作为数字通用I/O接口使用,而复用的功能可分别与片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的I/O口,如定时器、计数器、串行接口、模拟比较器、捕捉器、USART、SPI等。
AVR单片机的每组I/O口都配备有三个8位寄存器,分别是:
1、方向控制寄存器DDRx;
2、数据寄存器PORTx;
3、输入引脚寄存器PINx
x=A/B/C/D,I/O口的工作方式和表现特征由这三个I/O寄存器控制。
$ {' S$ V5 J! j
方向控制寄存器DDRx用于控制I/O口的输入输出方向,及控制I/O口的工作方式为输出方式还是输入方式。
DDRx=1时,I/O口处于输出工作方式;此时数据寄存器PORTx中的数据输出到外部引脚。
DDRx=0时,I/O口处于输入工作方式;此时输入引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入mcu
此外,当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。

$ f3 Q7 O9 m4 B$ e2 y$ D
AVR单片机中端口的配置:AVR单片机的I/O口是标准的三态口(高电平、低电平、高阻态这三种状态)。
1)使用 AVR 的 I/O 口,首先要正确设置其工作方式,确定其工作在输出方式还是输入方式。
2)当 I/O 工作在输入方式,要读取外部引脚上的电平时,应读取 PINxn 的值,而不是PORTxn 的值。
3)当 I/O 工作在输入方式,要根据实际情况使用或不使用内部的上拉电阻。
4)一旦将 I/O口的工作方式由输出设置成输入方式后,必须等待一个时钟周期后才能正确的读到外部引脚 PINxn 的值。

1 z$ s* `( H+ {$ b9 \
我们可以直接使用 C的语句对 I/O 口寄存器进行操作,如:
// 定义PortA口的工作方式
DDRA = 0x01;       // 定义PA口的第0位为输出方式
PORTA = 0x00;      // PA口的第0位输出“1”,LED不亮
PORTA |=~(1 << PA0);    // PA口第0位输出取反

: s  f0 e0 Y( W$ K$ `- `
更加标准的C 程序可以采用以下的写法:
PORTA=1<<(PA0)|1<<(PA3); // PA口的第0位和第3位输出“1”,其它为“0”
这里,1<<(PA0)表示逻辑1左移0位,结果为0b00000001;而1<<(PA3) 表示逻辑1左移3位,结果为0b00001000。0b00000001在同0b00001000相与,结果为0b00001001。

) k7 _; B" E: b

该用户从未签到

2#
发表于 2021-9-9 10:29 | 只看该作者
单片机引脚可输出达20mA的驱动电流,但是IO口最好接上拉

点评

是的,接上拉,驱动能力会打一下  详情 回复 发表于 2021-9-9 10:30

该用户从未签到

3#
发表于 2021-9-9 10:30 | 只看该作者
qwertyuiohh 发表于 2021-9-9 10:29
8 x; l6 S1 T* |3 Q% \5 l单片机引脚可输出达20mA的驱动电流,但是IO口最好接上拉

! q: n, \2 w' ?# V7 R是的,接上拉,驱动能力会打一下
. `. g! t4 v( j3 b# W4 e+ B

该用户从未签到

4#
发表于 2021-9-9 11:22 | 只看该作者
AVR 的 I/O 口在工作方式几啊9 Y5 B/ T; E1 F2 l) S/ ?' {0 e" K

该用户从未签到

5#
发表于 2021-9-9 12:05 | 只看该作者
驱动能力会打一下,是啥意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-20 06:47 , Processed in 0.109375 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表