各位大神们,简单的51单片机程序,提示错误 LEDBELOW.C(2): error C129: missing ';' before '_at_0x3b'
#include<reg52.h>charcodereserve[3]_at_0x3b;voiddelays(unsignedintms){unsignedchark;w...
#include<reg52.h>
char code reserve [3]_at_0x3b;
void delays (unsigned int ms)
{
unsigned char k;
while(ms--)
{
for(k=0; k<114; k++ );
}
}
void main()
{
p0=0xff;
p2=0xff;
while(1)
{p0=0x00;
p2=0x00;
delays(300);
p0=oxff;
p2=oxff;
delays(300);
}
}
LEDBELOW.C(8): error C129: missing ';' before '_at_0x3b'
为什么啊 看不懂啊~ 展开
char code reserve [3]_at_0x3b;
void delays (unsigned int ms)
{
unsigned char k;
while(ms--)
{
for(k=0; k<114; k++ );
}
}
void main()
{
p0=0xff;
p2=0xff;
while(1)
{p0=0x00;
p2=0x00;
delays(300);
p0=oxff;
p2=oxff;
delays(300);
}
}
LEDBELOW.C(8): error C129: missing ';' before '_at_0x3b'
为什么啊 看不懂啊~ 展开
4个回答
展开全部
在网上看到有人提到在keil中使用_at_进行绝对地址定位问题,我简单介绍一下它的用法。
使用_at_关键字对存储器进行绝对地址定位程序如下
#i nclude<reg51.h>
char xdata LED_Data[50] _at_ 0x8000;
main()
{
LED_Data[0] = 0x23;
}
在keil中运行以上程序可以在存储器窗口中输入 x:0x8000 可以看到0x8000地址中的值为0x23.
值得指出的几点是
1.在给变量LED_Data[50]定位绝对地址空间时,不能对其赋初值。
2.char xdata LED_Data[50] _at_ 0x8000;这条语句不能主函数中。有些网友提到在按着keil说明中用_at_进行绝对地址定位时,编译会出现错误274,就是将这条语句放在主函数中的原因。
3.keil中地址是自动分配的,所以除非特殊情况否则不提倡使用绝对地址定位。初学者因帖别注意。不要把c当作汇编使用。
我转的。。希望对你有帮助
你的应该是_at_ 0x3b 中间要有空格,你连起来了
使用_at_关键字对存储器进行绝对地址定位程序如下
#i nclude<reg51.h>
char xdata LED_Data[50] _at_ 0x8000;
main()
{
LED_Data[0] = 0x23;
}
在keil中运行以上程序可以在存储器窗口中输入 x:0x8000 可以看到0x8000地址中的值为0x23.
值得指出的几点是
1.在给变量LED_Data[50]定位绝对地址空间时,不能对其赋初值。
2.char xdata LED_Data[50] _at_ 0x8000;这条语句不能主函数中。有些网友提到在按着keil说明中用_at_进行绝对地址定位时,编译会出现错误274,就是将这条语句放在主函数中的原因。
3.keil中地址是自动分配的,所以除非特殊情况否则不提倡使用绝对地址定位。初学者因帖别注意。不要把c当作汇编使用。
我转的。。希望对你有帮助
你的应该是_at_ 0x3b 中间要有空格,你连起来了
追问
谢谢啊 不过我的不是赋绝对地址,是保留3位,我也不知道为什么,我不保留的话,直接就p0,p2这些特殊功能寄存器没有定义了。
追答
好吧,我无语了,不要照搬别人的东西。。。你都不知道自己要问什么,要解决什么问题。。。
展开全部
你的书写有问题,_at_ 和他的前后都要有空格,不要写在一块九没问题
char code reserve [3] _at_ 0x3b; 看行了不/
char code reserve [3] _at_ 0x3b; 看行了不/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把char code reserve [3]_at_0x3b;删了
追问
不行啊 删了以后p0和p2都是未定义啊
LEDBELOW.C(21): error C202: 'p2': undefined identifier
追答
你把p改为大写的P,小写的没被定义
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
cxv
追问
?
追答
程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询