ATmega32 的I/O 空间定义见 P283“ 寄存器概述” 。 ATmega32所有的I/O及外设都被放置于I/O I/O位置都可以通过IN 与OUT指 令来访问,在32个通用工作寄存器和 I/O之间传输数据。 地址为0x00 - 0x1F 的I/O寄存 器还可用 SBI 和 CBI 指令直接进行位寻址,而 SBIS 和 SBIC 则用来检查某一位的值。更 多内容请参见指令集。使用 IN 和 OUT 指令时地址必须在 0x00 - 0x3F 之间。如果要象 SRAM 一样通过 LD 和 ST 指令访问 I/O 寄存器,相应的地址要加上 0x20。 为了与后续产品兼容,保留未用的未应写"0",而保留的I/O 寄存器则不应进行写操作。 一些状态标志位的清除是通过写 "1" 来实现的。要注意的是,与其他大多数 AVR 不同, CBI 和 SBI 指令只能对某些特定的位进行操作,因而可以用于包含这些状态标志的寄存 器。 CBI 与 SBI 指令只对 0x00 到 0x1F的寄存器有效。 I/O 和外设控制寄存器在后续其他章节进行介绍。 |
以上资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!