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

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
1楼-- · 2019-07-15 23:51
sbit  是将P1^0指向到D1或者LED ,关键是sbit,
蓝天ss
2楼-- · 2019-07-16 03:34
1402609807 发表于 2014-6-23 08:33
sbit  是将P1^0指向到D1或者LED ,关键是sbit,

跟 sbit有什么关系,我问的是高低电平 我知道它指向的当然不是一个口,其中一个D1=0,另一个LED=1,我问的是这里,值不一样,却都能实现点亮
依然落叶飘零
3楼-- · 2019-07-16 05:33
 精彩回答 2  元偷偷看……
yezhidong
4楼-- · 2019-07-16 07:18
跟硬件有关系的,硬件端口上拉,那就要给LED = 0;  下拉,那就是LED = 1;
你应该知道二极管导通的方向吧!!
1402609807
5楼-- · 2019-07-16 11:28
蓝天ss 发表于 2014-6-23 09:05
跟 sbit有什么关系,我问的是高低电平 我知道它指向的当然不是一个口,其中一个D1=0,另一个LED=1,我问 ...


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

这次回答很有帮助,非常感谢

一周热门 更多>