0

任何人都可以帮助我如何在 C 编程中设置 I/O 配置。这是我的代码,我使用 keil uvision4 作为我的 ide 来生成 hex 文件和 isis proteus 来建模电路。

当我尝试使用DDRA=0xFFand时PORTA=0。我收到未定义 DDRA 和 PORTA 的错误。是否有任何特定的标题我必须包括不是

这是代码

 #include <AT89X51.H>

 #define PORT2     P2


void main (void)
{
DDRA=0xff;
    PORTA=0xff; 
}
4

3 回答 3

1

我知道这很旧,但我刚刚遇到它,也许其他人也会

看起来您缺少一个包含:

#include <avr/io.h>

这应该为您提供您正在寻找的 PORTx 和 DDRx 定义。

于 2014-09-22T23:13:25.437 回答
0

您可能需要包含一个注册文件示例#include <REGX51.H>。它具有端口的定义,因此您可以P2直接使用 etc。

于 2013-02-21T16:53:06.333 回答
0

我认为这 3 个 regs:PORTA DDRA PINA 只能用于 AVR MCU 系列,例如 ATmega8,不能用于 51 cmpatibility MCU。

这就是为什么您找不到 regs 的定义位置的原因。

执行以下操作:

1, #include <REGX51.H>, 不是avr/io.hAVR MCU 系列

2、操作IO口为P0、P1、P2

当你想写端口时,P0 = 0xFF;

于 2015-01-14T13:42:21.480 回答