首页 > 代码库 > ATmega8仿真——LED 数码管的学习
ATmega8仿真——LED 数码管的学习
1.I/O 口的结构及特点
- Atmega8 有23 个I/O 引脚,分成3 个8 位的端口B、C 和D,其中C 口只有7 位
- Atmega8 采用3个8位寄存器来控制I/O端口,它们分别是:方向寄存器DDRx、数据寄存器PORTx、输入引脚寄存器PINx
x为B或C 或D,分别代表B口、C口或D 口;
n为0~7,代表寄存器中的位置;
其中DDRx 和PORTx 是可读写寄存器,而PINx 为只读寄存器;
每个I/O引脚内部都有独立的上拉电阻电路,可通过程序设置内部上拉电阻是否有效。
方向寄存器DDRx中的每个位用于控制I/O口一个引脚的输入输出方向,即控制I/O口的工作模式为输出模式还是输入模式。
- 当DDRxn=1 时,I/O 的Pxn 引脚处于输出模式。此时
若PORTxn=1时,I/O引脚呈高电平,同时可提供输出20mA 的电流;
若PORTxn=0时,I/O引脚呈低电平,同时可吸收20mA 的电流。
- 当 DDRxn=0 时,I/O 的Pxn 引脚处于输入模式。此时
引脚寄存器PINxn 中的数据就是外部引脚的实际电平;
此时可通过PORTxn 的设置可控制内部的上拉电阻使用或不使用。
注意事项:
- 使用AVR的I/O 口,首先应正确设置其工作模式(输入模式还是输出模式),设置DDRx;
- 当I/O工作在输入模式(DDRxn=0)时,读取引脚上的电平应取PINxn的值,而不是PORTxn的值;
- 当I/O口工作在输入模式(DDRxn=0)时,应根据实际情况设置内部上拉电阻,利用内部上拉电阻可以节省外部上拉电阻;
- 将I/O空工作模式由输出模式设置为输入模式后,必须等待一个时钟周期后才能正确的读到外部引脚的值
未完待续
ATmega8仿真——LED 数码管的学习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。