任何人都可以帮助我如何在C编程中设置I / O配置。这是我的代码,我使用keil uvision4作为我的ide生成hex文件和isis proteus来模拟电路。
当我尝试使用DDRA=0xFF
和PORTA=0
时。我得到了DDRA和PORTA没有定义的错误。是否有任何特定的标题我必须包括不是
这是代码
#include <AT89X51.H>
#define PORT2 P2
void main (void)
{
DDRA=0xff;
PORTA=0xff;
}
答案 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;