历史上的今天
今天是:2024年10月26日(星期六)
2021年10月26日 | ATmega8 I/O存储器
2021-10-26 来源:eefocus
ATmega8 的I/O 空间定义见 P 271"寄存器概述"。
ATmega8所有的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 和外设控制寄存器在后续其他章节进行介绍。
上一篇:ATmega8 时钟系统及其分布
史海拾趣
|
如图所示,这是我从网上看到的一个双稳态电路(图中要实现的话应该把电容C1加大),有附带解释如下:《假设Q1的G极输入是高电平,Q1导通,输出低电平,低电平接到Q2的G极,Q2截止,Q2输出高电平,所以Q3也截止,LED灯灭。此时由于Q1输出端D极为低电平 ...… 查看全部问答> |
|
问一下,用干一个电池将电压升到3.3V,电流为200mA,用什么芯片为好! 用干一个电池将电压升到3.3V,电流为200mA,用什么芯片为好?以前一直在用max1795,max856之类,但总感觉MAXIM公司的芯片太贵,想找一个性价比好的芯片,有谁用过,麻烦告诉一下,谢谢!… 查看全部问答> |
|
VS2005中没有ClassWizard,而是使用属性窗口添加事件处理函数,但我写一个MFC本地应用程序时,在程序中使用工具栏ToolBar,在工具栏中新建了一项,却不知如何添加处理函数,属性窗口中没有可处理的消息列表呀。 … 查看全部问答> |
|
PWM输出里面的两句: PCA0CPM0 |= 0x40; // Set ECOM0 if it is \'0\' ............ PCA0CPM0 &= ~0x40; // Clear ECOM0 帮我解析一下两个运算的意思吧,谢谢了… 查看全部问答> |




