#include<reg52.h> #include<reg51.h>
sbit D1=P1^0; sbit LED=P2^0 ;
void main() void main()
{ {
D1=0; P2=0x00;
} while(1)
{
LED=1;
}
我是新手请多包涵。我想问这两个程序都能点亮一个发光二极管。其中第一个D1=0和第二个LED=1意思一样吧,
都是赋予某个管脚一个值来实现操作,可是为什么不一样都能点亮。这个高低电平到底是怎么控制的。
我听说有两种方法,一个位操作还有个忘了。反正不明白,谁帮我下。请给我鼓励。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
跟 sbit有什么关系,我问的是高低电平 我知道它指向的当然不是一个口,其中一个D1=0,另一个LED=1,我问的是这里,值不一样,却都能实现点亮
你应该知道二极管导通的方向吧!!
不好意思,看错了,在51中P0没有内部上拉。
对端口置1,是高电平,单片机对外输出电流,二极管的正极接到单片机引脚上就会有正向压降,发光管会点亮,
对于置零的刚好相反,发光管的负极接在单片机引脚上,另一端串接电阻到电源上,你置引脚为0后,电源到单片机引脚有压差,如果置高就没有压差,发光管不会亮。
别的单片机在配置引脚的时候会有输出、输入的配置,PIC,STM32这些,51比较简单些(相对)!
这次回答很有帮助,非常感谢
一周热门 更多>