#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0X06.0X5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void kk(unsigned char Location,Number)
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=NixieTable[Number];
}
void main()
{
kk(2,3);
while(1)
{
}
}
w为啥一直报错重复定义啊
void kk(unsigned char Location,Number)改为void kk(unsigned char Location,unsigned char Number)试看
void kk(unsigned char Location, unsigned char Number)
【以下回答由 GPT 生成】
这段嵌入式硬件代码报错重复定义的原因是在函数kk()
的参数列表上缺少变量类型。正确的函数声明应该为void kk(unsigned char Location, unsigned char Number)
。
下面是修改后的代码:
#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0X06,0X5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void kk(unsigned char Location, unsigned char Number)
{
switch(Location)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=NixieTable[Number];
}
void main()
{
kk(2,3);
while(1)
{
}
}
请检查修改后的代码是否可以成功编译和运行。
【相关推荐】