老古开发网首页
导航:老古开发网首页文章索引文章分类单片机→[学习AVR(十三) ATtiny2313的I/O空间]
| -文章搜索 - 最新文章 - |

学习AVR(十三) ATtiny2313的I/O空间

发布时间:2006年7月21日 点击次数:887
来源:   作者:
 
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指令直接位寻址。


欢迎进入老古论坛进行讨论
[单片机] 相关文章:
软件模拟I2C读写X1226程序
简介:
采用C51编写,程序通过测试,现已成功用于项目中.适用于所有的51内核单片机,可以移植到别的单片机上,修改很少,我已经移植到430单片机上. 声明:本代码为个人原创,若要转载请注明出处! sbit bI2C_SDA = P0^4; // SDA sbit bI2C_SCL = P1^0......

通过串口RS232发送和接收短信
C51 的重入问题 WARNING L15: MULTIPLE CALL TO SEGMENT(转)
单片机系统中高速数据采集的实现
基于89C52单片机的微电压信号源设计
单片机在多种波形发生器中的应用
keilc51用户上电初始化程序解读(转)
A51 3.5.4 程序地址
A51 3.6 表达式和运算符
[转载]基于AVR单片机的高精度频率调节器
 
下一个:[单片机]C语言宏定义技巧(常用宏定义) --摘录
简介:
1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。 typedef unsigned char boolean; /* Boolean value type. */......
 

上一个:[单片机][转载]嵌入式实时系统中的优先级反转问题

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒