菜鸟请教程序为什么出错,第一次接触C51啊

[复制链接]
 楼主| arao 发表于 2010-12-13 16:23 | 显示全部楼层 |阅读模式
#include<reg51.h>
sbit sel=p0^0;
void  main()
{
p1=0x01;
while(1)
{
if(sel==1)
{p1=p1>>1;
if(p1==0x00)
p1=0x80;
}
else
{
p1=p1<<1;
if(p1==0x00)
p1=0x01;
}
}
}

-----
TEXT.C(2): error C202: 'p0': undefined identifier
TEXT.C(5): error C202: 'p1': undefined identifier
TEXT.C(8): error C202: 'sel': undefined identifier
TEXT.C(9): error C202: 'p1': undefined identifier
TEXT.C(10): error C202: 'p1': undefined identifier
TEXT.C(11): error C202: 'p1': undefined identifier
TEXT.C(15): error C202: 'p1': undefined identifier
TEXT.C(16): error C202: 'p1': undefined identifier
TEXT.C(17): error C202: 'p1': undefined identifier



---------------------------------------

第一次接触C51,照书上的程序试了一下,居然出错,各位大侠指点一下
zhangf1021 发表于 2010-12-13 16:29 | 显示全部楼层
变量未定义
你这应该是缺头文件
 楼主| arao 发表于 2010-12-13 16:32 | 显示全部楼层
怎么定义?请教一下 2# zhangf1021
ayb_ice 发表于 2010-12-13 16:34 | 显示全部楼层
p0要大写,或和头文件一致
zhangf1021 发表于 2010-12-13 16:35 | 显示全部楼层
你要对应你的51的芯片型号,把对应的头文件加进去就行了
要自己定义就得对数据手册查
 楼主| arao 发表于 2010-12-13 16:42 | 显示全部楼层
谢谢大侠啊,p改为大写就好了。这是为什么呢??? 4# ayb_ice
 楼主| arao 发表于 2010-12-13 16:44 | 显示全部楼层
P用大写就好了,不明白是什么原因。注释中#include<reg51.h>为头文件,具体是什么含义? 5# zhangf1021
yewuyi 发表于 2010-12-13 16:53 | 显示全部楼层
这是因为reg51.h中定义的就是大写。

这个东西就是一个名字,假设在一个房子(reg51.h)关了一群人,其中有一个人是你儿子,你给你儿子起名叫xxx,你想把你儿子从房子里面喊出来吃饭,你肯定是喊:xxx,你妈妈喊你回家吃饭。

你总不能喊:xyx,你妈妈喊你回家吃饭!

道理就这么简单 ,明白了没有!?
autopccopy 发表于 2010-12-13 17:41 | 显示全部楼层
C51区分大小写。 :)
winshing 发表于 2010-12-13 18:06 | 显示全部楼层
哈,这么巧的事,前天我也是捣鼓这个例程,也犯了同样的错误。
看来某时某刻肯定有很多人作很多相似的事情。
winshing 发表于 2010-12-13 18:10 | 显示全部楼层
哈,这么巧的事,前天我也是捣鼓这个例程,也犯了同样的错误。
看来某时某刻肯定有很多人作很多相似的事情。
cosmoscn 发表于 2010-12-13 20:05 | 显示全部楼层
reg51.h中 对寄存器名进行了定义,指向了硬件中的实际地址。你向P1中赋值,相当于给P1这个名称相对应的寄存器赋值。通过这种方式使软件与实际硬件联系起来。
zdhlixiang2006 发表于 2010-12-13 23:12 | 显示全部楼层
。。。
Messia 发表于 2010-12-14 08:49 | 显示全部楼层
C语言是区分大小写的.头文件中定义的是大写,所以必须用大写的P0,P1
hile 发表于 2010-12-14 09:18 | 显示全部楼层
吼吼…………学习了,以后不要再犯同样的错误:lol
A2000wps 发表于 2010-12-14 10:42 | 显示全部楼层
一點一點的積累
hrg13579 发表于 2010-12-14 12:07 | 显示全部楼层
规定要大写,就像数字1+1=2,没必要去追究深层次,你应用就是了。
shiwilson 发表于 2010-12-14 12:18 | 显示全部楼层
P是一定要大写的,我刚接触的时候也常犯这种错误,<reg51.h>是单片机寄存器的头文件
doukeran 发表于 2010-12-14 13:10 | 显示全部楼层
程序中的符号都要先定义或声明。就算它是在库中定义声明的,也需要把头文件包进来。
 楼主| arao 发表于 2010-12-14 15:40 | 显示全部楼层
谢谢各位了,现在明白了,P是一定要大写
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:谢了,正好学学看

27

主题

182

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部