标题: 小白问下自己写的点亮LED代码哪里错了 [打印本页]

作者: gorrot    时间: 2019-12-2 20:36
标题: 小白问下自己写的点亮LED代码哪里错了
如下
#include <reg52.h>


   sbit LED=P0^0;
         sbit ADDR0=P1^0;
         sbit ADDR1=P1^1;
         sbit ADDR2=P1^2;
         sbit ADDR3=P1^3;
         sbit ENLED=P1^4;
         void main()
{
                ENLED=0;
                ADDR3=1;
                ADDR2=1;
                ADDR1=1;
          ADDR0=0;
                LED=0;
                while(1);
               
       
               
               
               
}


作者: csmyldl    时间: 2019-12-3 02:12
代码没错,关键是你的外围电路是否被控了,LED=0;要控制点亮,只有发光二极管的阴极接P0.0,而且有些单片机的P0口需外接上拉电阻
作者: DHJ666    时间: 2019-12-3 03:48
你用P0还是P1口呢
作者: angmall    时间: 2019-12-3 06:40
给你改了一下试试
  1. #include <reg52.h>


  2. sbit LED=P0^0;
  3. sbit ADDR0=P1^0;
  4. sbit ADDR1=P1^1;
  5. sbit ADDR2=P1^2;
  6. sbit ADDR3=P1^3;
  7. sbit ENLED=P1^4;
  8. void main()
  9. {
  10.     ENLED=0;ADDR3=0;         //打开74HC138译码器(3线8线译码器)
  11.     ADDR2=1;ADDR1=1;ADDR0=0; //通过输入信号110使输出端LEDS6输入信号0

  12.         //ENLED=0;
  13.         //ADDR3=1;
  14.         //ADDR2=1;
  15.         //ADDR1=1;
  16.         //ADDR0=0;
  17.         LED=0;
  18.         while(1);
  19.        
  20. }

复制代码

作者: wulin    时间: 2019-12-3 08:55
没有错,多了些赘句
#include <reg52.h>

sbit LED=P0^0;

void main()
{
        LED=0;
        while(1);
}
作者: zhy123654    时间: 2019-12-3 10:30
逻辑上说都没有错等于1就是高电平等于0就是低电平,问题是现在这些代码有没有达到你想要的样子,你想要什么样子如果没有实现,再看错在什么地方
作者: cphnkj188    时间: 2019-12-3 10:36
这个要看你的开发板是哪一种,有没有用译码器和缓冲器
作者: luozhao    时间: 2019-12-3 10:59
代码没问题,关键要看你的led是怎么接的,是不是低电平就能驱动
作者: angmall    时间: 2019-12-3 20:58
单片机程序是要针对相应的硬件环境的,你要控制点亮你的led,要有针对相应的硬件原理图

你原来的程序, 是对相应这样的硬件


http://www.51hei.com/bbs/dpj-19014-1.html

  1. #include<reg52.h>         //包含寄存器的库文件                  

  2. sbit  LED = P0^0;         //位地址声明,注意:sbit必须小写!

  3. sbit  ADDR0 = P1^0;

  4. sbit  ADDR1 = P1^1;

  5. sbit  ADDR2 = P1^2;

  6. sbit  ADDR3 = P1^3;

  7. sbit  ENLED = P1^4;



  8. void  main()

  9. {

  10.     unsigned int i = 0;



  11.     ENLED = 0;

  12.     ADDR0 = 0;

  13.     ADDR1 = 1;

  14.     ADDR2 = 1;

  15.     ADDR3 = 1;            //74HC138开启三极管   



  16.     while(1)              //程序死循环  

  17.     {

  18.            LED = 0;                //点亮小灯

  19.            for(i=0;i<30000;i++);  //延时一段时间

  20.            LED = 1;                //熄灭小灯

  21.            for(i=0;i<30000;i++);  //延时一段时间

  22.     }

  23. }
复制代码


作者: f556    时间: 2019-12-4 09:28
wulin 发表于 2019-12-3 08:55
没有错,多了些赘句
#include

,正解!
没有接触单片机时写过一些高级语言,为什么学MCU就要学这个程序,也正是这个程序,让我眼前一亮,明白了单片机的关键所在。经常在想,这是单片机最伟大的程序(没有之一)。
作者: sad520ljh    时间: 2019-12-4 12:10
编译上是没问题,剩下就是硬件了
作者: CairoLAY    时间: 2019-12-4 14:38
没什么错误
作者: 634967256    时间: 2019-12-4 19:14
没有错吧 烧入应该可以用啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1