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 输出 无效 高电平推挽输出,输出电流 (≤20mA) 通用 I/O 口主要特点: 1 都具备真正的读修改写(RMW)。 2 双向,可独立位控制。 3 大电流驱动(≤20mA),可直接驱动 LED。 4 可控制上拉电阻。 注意事项: 1 使用 AVR 的 I/O 口,首先应正确设置其工作模式(输入模式还是输出 模 式), 设置 DDRx。 2 当 I/O 工作在输入模式(DDRxn=0) 时,读 取引脚上的电平应取 PINxn 的值, 而不是 PORTxn 的值。 3 当 I/O 口工作在输入模式(DDRxn=0) 时,应根据实际情况设置内部上拉电 老杨工作室 young45@126.comProtuesATmega8仿真 4 将 I/O 空工作模式由输出模式设置为输入模式后, 必须等待一个时钟周期 后才能正确的读到外部引...