ATmega48/88/168的 I/O P311“ 寄存器概述 ” 。 ATmega48/88/168 的所有 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。 ATmega48/88/168 是一个复杂的微处理器,其支持的外设要比预留的 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 和外设控制寄存器在后续其他章节进行介绍。 |
以上资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!