ProtuesATmega8仿真 第二讲 LED 数码管的学习 提要:主要学习 Atmega8 通用数字 I/O 接口控制 LED 数码管的应 2
1 I/O 口的结构及特点: Atmega8 有 23 个 I/O 引脚,分成 3 个 8 位的端口 B、C 和 D,其中 C 口只 有 7 位
I/O 端口作为通用数字输入 /输出口使用时,都具备真正的读 修改 写(RMW)特性
每个 I/O 引脚采用推挽式驱动,不仅能提供大电流的输出驱动, 而且也可以吸收 20mA 的电流,因而能直接驱动 LED 显示器
Atmega8 采用 个 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 时, 表 21 I/O 口设置表(n=7,6,…,1,0 ) DDRxn PORTxn PUDI/O 模式 内部上拉 电阻 引脚状态说明 0 0 X 输入 无效 三态(高阻) 0 1 0 输入 有效 外部引脚拉低时输出电流 0 1 1 输入 无效 三态(高阻) 1 0 X 输出 无效 低电平推挽输出,吸收电流 (≤20mA) 1 1 X 输出 无效 高电