前些时间无聊,在百度帮人解答了一个单片机方面的小问题。
问题标题:51单片机中的sbit变量会随着外部的电平高低而变化么?
问题内容:我的意思是一开始定义了比如sbit led=P1^0;led=1;此时为高电平,当我将引脚认为的拉低电平,这个变量led在程序中会自动变为led=0么?人为的拉低,不是认为。
下面是我的分析:
楼主你好。
我自己分析的给你参考。
如上图,P1.0接了开关K,以实现人为拉低引脚电位。
在你程序中,你sbit led=P1^0;led=1,操作,实际上就是在D端输出1,那么Q端就是1,Q非
就是0,这个0使得V2截止,所以该引脚呈现高电位1,当K闭合,人为拉低引脚电位为0.
但是,你内部的LED=1应该是保持不变的。D触发器锁存了你写的1.
下面是叫板评论:
第二条评论:led=1...引脚高电位1,K闭合,引脚为0...但是内部的LED=1应该是保持不变的--那么,aa = led;aa 是1、还是0? 应该取决于引脚吧? led和D触发器,无关,对吧?
第一条评论:sbit led=P1^0;--这个 led,指定的是引脚,还是D触发器?
以前学过一点汇编,C语言不熟悉,我不清楚这个定义的变量LED,他是随引脚变化,还是根据程序变化?
熟悉C51的朋友协助哈。
我也知道评论的这位网友也是想帮助我提高。
楼主最近还看过