微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于高低电平,给了俩程序,求解答

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

时间:10-02 整理:3721RD 点击:
#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  是将P1^0指向到D1或者LED ,关键是sbit,

跟 sbit有什么关系,我问的是高低电平 我知道它指向的当然不是一个口,其中一个D1=0,另一个LED=1,我问的是这里,值不一样,却都能实现点亮

要点亮LED灯就是对对应管脚的寄存器写0写1的操作。以为寄存器是八位的,可以八位同时赋值,也可以对当个位独立操作。也就是位操作。你这两个程序一个是D1=0; 另一个是LED=1;这个到底是写低电压点亮LED灯还是写高电平点亮LED灯,这个得看具体的硬件电路。如果LED的另一端接的是地。那么就输出高电平点亮。如果另一端接的是电源,那么就是输出低电平点亮LED灯。

跟硬件有关系的,硬件端口上拉,那就要给LED = 0;  下拉,那就是LED = 1;
你应该知道二极管导通的方向吧!

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

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

我想有问题在问你,可不可以,如果可以给我个QQ,比较方便。如果不可以就回复我下不可以。不管怎样非常感谢对我问题的解答,很有帮助

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top