访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
学习AVR(十三) ATtiny2313的I/O空间
内容导读:
ATtiny2313的I/O和外设都被放在I/O空间。可以使用LD/LDS/LDD和ST/STS/STD指令访问所有的I/O地址,和在32个通用工作寄存器和I/O空间之间传递数据。在0x00-0x1F之间的地址可以用SBI和CBI指令直接寻址。在这些寄存器中,单个位的值可以用SBIS和SBIC指令检测。参见指令集获取更多相关信息。当使用I/O专用指令IN和OUT时,必须使用I/O地址0x00-0x3F。当使用LD和ST指令把I/O寄存器作为数据空间寻址时,0x20必须被加到这些地址上。(罗亩按:这使我想起来C++中的in和out指令)

    为了与未来的器件兼容,如果访问的话,保留位应当被写入零。保留的I/O空间地址永远不应该被写入。

    通过向其中写入逻辑1,一些状态标志被清除。注意,不像大多数其它的AVR,CBI和SBI指令仅适用于指定的位,所以可以被用在包含这样的状态标志的寄存器上。(罗亩按:前面这一句不大明白)CBI和SBI指令只适用于0x00到0x1F之间的地址。

    I/O和外设控制寄存器在后面部分学习。

    通用I/O寄存器
    ATtiny2313包含三个通用I/O寄存器。这些寄存器可以用来存入任意信息,并且对于全局变量和状态标志的存放非常有用。在0x00-0x1F地址范围内的通用I/O寄存器可以使用SBI、CBI、SBIS和SBIC指令直接位寻址。

标签:
来源: 作者: 时间:2006/9/25 16:50:53
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐