ATmega128 的I/O 空间定义见P 342“ 寄存器概述” 。 ATmega128 的所有I/O 和外设都被放置在I/O 空间。所有的I/O 地址都可以通过 LD/LDS/LDD和ST/STS/STD指令来访问,在32个通用工作寄存器和I/O之间传输数据。地 址为$00 - $1F 的I/O 寄存器还可用SBI 和CBI 指令直接进行位寻址,而SBIS 和SBIC 则用来检查单个位置位与否。当使用IN 和OUT 指令时地址必须在$00 - $3F 之间。如果 要象SRAM一样通过LD和ST指令访问I/O 寄存器,相应的地址要加上$20。ATmega128是一个复杂的微处理器,其支持的外设要比预留的64 个I/O( 通过IN/OUT 指令访问) 所 能支持的要多。对于扩展的I/O 空间$60 - $FF,只能使用ST/STS/STD 和LD/LDS/LDD 指令。当ATmega128 工作于ATmega103 兼容模式时,扩展的I/O 被SRAM 所取代。 为了与后续产品兼容,保留未用的未应写"0“,而保留的I/O 寄存器则不应进行写操作。 一些状态标志位的清除是通过写"1“ 来实现的。CBI 和SBI 指令可以操作I/O 寄存器所有 的位,并给置位的位回写"1“,因此会清除这些标志位。CBI 和SBI 指令只对$00 to $1F 之间的寄存器有效。 I/O 和外设控制寄存器在其他章节介绍。 |
以上资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!