ATmega88 I/O存储器
2021-12-07 来源:eefocus
ATmega88的 I/O P311“ 寄存器概述 ” 。
ATmega88 的所有 I/O 和外设都被放置在 I/O 空间。 所有的 I/O地址都可以通过LD/LDS/LDD和ST/STS/STD指令来访问,在32个通用工作寄存器和I/O之间传输数据。 地址为0x00 - 0x1F的I/O寄存器还可用SBI和CBI指令直接进行位寻址,而SBIS和SBIC则用来检查单个位置位与否。使用 IN 和 OUT 指令时地址必须在 0x00 - 0x3F之间。如果要象 SRAM 一样通过 LD 和 ST 指令访问 I/O 寄存器,相应的地址要加上 0x20。 ATmega88 是一个复杂的微处理器,其支持的外设要比预留的 64 个 I/O( 通过IN OUT 指令访问 ) 所能支持的要多。对于扩展的 I/O 空间0x60 - 0xFF,只能使用ST/STS/STD 和 LD/LDS/LDD 指令。
为了与后续产品兼容,保留未用的位应写'0',而保留的 I/O 寄存器则不应进行写操作。
一些状态标志位的清除是通过写'1' 来实现的。 CBI 和 SBI 指令可以操作 I/O寄存器所有的位,并给置位的位回写'1',因此会清除这些标志位。CBI和SBI指令只对0x00 to 0x1F之间的寄存器有效。
I/O 和外设控制寄存器在后续其他章节进行介绍。
相关文章