用于设置ATMEL'S AT89C51微控制器的I / O引脚的C代码

时间:2013-02-21 16:18:14

标签: c io atmel

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

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

这是代码

 #include <AT89X51.H>

 #define PORT2     P2


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

3 个答案:

答案 0 :(得分:1)

我知道这已经过时了,但我刚遇到它,也许其他人也会这样做

看起来你错过了一个包含:

#include <avr/io.h>

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

答案 1 :(得分:0)

您可能需要包含一个寄存器文件示例#include <REGX51.H>。它具有Ports的定义,因此您可以直接使用P2等。

答案 2 :(得分:0)

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

这就是为什么您无法找到定义注册表的位置。

请执行以下操作:

1,#include <REGX51.H>,而不是AVR MCU系列的avr/io.h

2,将IO端口操作为P0,P1,P2

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