关于高低电平,给了俩程序,求解答

2019-07-15 19:20发布

#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意思一样吧,
都是赋予某个管脚一个值来实现操作,可是为什么不一样都能点亮。这个高低电平到底是怎么控制的。
我听说有两种方法,一个位操作还有个忘了。反正不明白,谁帮我下。请给我鼓励。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
1402609807
2019-07-16 11:28
蓝天ss 发表于 2014-6-23 09:05
跟 sbit有什么关系,我问的是高低电平 我知道它指向的当然不是一个口,其中一个D1=0,另一个LED=1,我问 ...


不好意思,看错了,在51中P0没有内部上拉。
对端口置1,是高电平,单片机对外输出电流,二极管的正极接到单片机引脚上就会有正向压降,发光管会点亮,
对于置零的刚好相反,发光管的负极接在单片机引脚上,另一端串接电阻到电源上,你置引脚为0后,电源到单片机引脚有压差,如果置高就没有压差,发光管不会亮。
别的单片机在配置引脚的时候会有输出、输入的配置,PIC,STM32这些,51比较简单些(相对)!

一周热门 更多>