C51单片机入门编程问题

刚开始接触单片机,有一定的C语言基础。我目前的理解是,单片机对一个引脚进行赋值的话,需要先把这个引脚的位置信息和一个自定义的变量关联起来之后,才可以通过对这个变量赋值来达... 刚开始接触单片机,有一定的C语言基础。
我目前的理解是,单片机对一个引脚进行赋值的话,需要先把这个引脚的位置信息和一个自定义的变量关联起来之后,才可以通过对这个变量赋值来达到对引脚的复制。
我想请问一下,这个步骤到底怎么操作,我看到过两种,第一种是,比如对P1.0sbit P10=P1^0; 左边P10是自定义的一个变量,右边的P1^0我不太懂,关联对象的确是p1.0端口,但它是怎么个关联起来的,p3.4引脚就是=P3^4吗?还有种是这样OutData=0xfe;,这个地址是怎么回事?我在reg51.h头文件里也没看到0xfe这个地址所对应的任何引脚。
请高手指教一下,谢谢
展开
 我来答
百度网友186dfeac08
2014-01-05 · TA获得超过754个赞
知道小有建树答主
回答量:1074
采纳率:50%
帮助的人:523万
展开全部
1、你不要想它怎么关联的,它就是一种固定的写法,语法就这样。你只能这样写,也当你写成这样的时候,编译器会认得出来它代表什么的,写成其它的话,编译就会报错了。所以不要再纠结这个问题。语法这样定的,遵守就行了。
2、0xfe不是什么地址,就是个简单的赋值,OutData就是等于0xfe。
OutData要是指一个端口的话,最前面是要有宏定义的,比如

#define OutData P0
上面表示用OutData这个词代替P0。
为什么要么定义,而不直接用P0就好了,你去查一下宏定义的好处就知道为什么会有这种用法了~
百度网友54c2a27c3
推荐于2018-04-05 · TA获得超过243个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:113万
展开全部
sbit P10=P1^0
sbit 是位定义,51单片机是8位的,他有P0,P1,P2,P3这么几几组端口口,每组是8位的,P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P1.3,
如果我们要操作其中一组中的某个特定的位,要怎么办呢?
那就是要用到sbit这个东西 ,sbit P10=P1^0; P1^0就是P1这组端口的第0位,P10就是我们自己起的名字,你也可以起 port1_0 P1_0 等等, sbit ***=P1^0; 这个写法是固定的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhxiufan
2014-01-06 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38379
国家科技进步奖

向TA提问 私信TA
展开全部
之所以这样写是编译器这样规定的,所以不要纠结这个关系。OutData=0xfe,前面可以是一个变量,也可以是一个8位IO口,关键看你的定义,比如你申明为:sfr P0=OutData;那么就是将0xfe送P0口。为了更好的理解单片机,建议你好好看看单片机的基础书籍,也就是汇编语言来说明的数,这样可以帮助你更好的理解单片机。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式