以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!
ATmega168的 I/O P311“ 寄存器概述 ” 。
ATmega168 的所有 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。
ATmega168 是一个复杂的微处理器,其支持的外设要比预留的 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 和外设控制寄存器在后续其他章节进行介绍。
|
可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48
ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162
ATmega169 ATmega169P ATmega8515 ATmega8535
| ATtiny13 |
ATtiny24 |
ATtiny44 |
ATtiny84 |
ATtiny26 |
ATtiny2313 |
| ATmega48 |
ATmega88 |
ATmega168 |
ATmega8 |
ATmega16 |
ATmega32 |
| ATmega64 |
ATmega128 |
ATmega162 |
ATmega169 |
ATmega8515 |
ATmega8535 |
ATmega168 I/O存储器
——