找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2992|回复: 37
打印 上一主题 下一主题
收起左侧

板子上的灯不亮,要如何调试?

  [复制链接]
跳转到指定楼层
楼主
我的板子是电子设计工坊的板子,选择的芯片型号正确,在电脑上程序运行显示操作成功,但是板子的第一个LED灯点亮不了,怎么解决
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:934269 发表于 2021-7-24 18:43 | 只看该作者
板子照片和代码发上来瞧瞧,坛子里的高手瞬秒.
回复

使用道具 举报

板凳
ID:934269 发表于 2021-7-24 18:44 | 只看该作者
板子照片和代码发来,坛子里的高手瞬秒
回复

使用道具 举报

地板
ID:94031 发表于 2021-7-24 19:09 | 只看该作者
LED焊反或坏了。
回复

使用道具 举报

5#
ID:716656 发表于 2021-7-24 20:24 | 只看该作者
虽然只是个点灯,但是不亮的可能性太多了,首先判断共阴共阳弄对了不,sbit对应上实际引脚了没,写0XFF,0X00是什么效果。慢慢试
回复

使用道具 举报

6#
ID:956176 发表于 2021-7-24 20:32 来自手机 | 只看该作者
yp69848086 发表于 2021-7-24 18:43
板子照片和代码发上来瞧瞧,坛子里的高手瞬秒.

代码板子如下

1627129880606.jpg (1.3 MB, 下载次数: 98)

1627129880606.jpg

1627129895896.jpg (866.59 KB, 下载次数: 91)

1627129895896.jpg

1627129907084.jpg (1.46 MB, 下载次数: 87)

1627129907084.jpg
回复

使用道具 举报

7#
ID:401564 发表于 2021-7-24 21:19 | 只看该作者
我在这论坛混了三年,吃到最多就是这道"仿真可以,实物却不行"标配菜
回复

使用道具 举报

8#
ID:155507 发表于 2021-7-24 22:35 | 只看该作者
我给你来个程序试试

  1. //2、流水灯
  2. #include <reg52.h>

  3. void delay(int t)
  4. {
  5.         int a;
  6.         for(;t>0;t--)
  7.         {
  8.                 for(a=20000;a>0;a--);
  9.         }
  10. }

  11. void main()
  12. {
  13.         int status = 0x7f;
  14.         int a,b,count = 0;
  15.         P2=0xa0;P0=0x00;P2=0x80;P0=0xff;//关闭蜂鸣器,关闭所有小灯
  16.         while(1)
  17.         {
  18.                 P0=status;//led0亮
  19.                 delay(1);//时间间隔1秒
  20.                 a = status>>1;//亮的小灯左移一位
  21.                 b = status<<7;//确保status因左移而补进的0变为1
  22.                 status = a|b;
  23.                 count++;
  24.                 if(7 == count)
  25.                 {
  26.                         status = 0x7f;
  27.                 }

  28.         }
  29.        
  30. }
复制代码
回复

使用道具 举报

9#
ID:956176 发表于 2021-7-24 22:38 来自手机 | 只看该作者
angmall 发表于 2021-7-24 22:35
我给你来个程序试试

我这个只用点亮第一个Led灯,您给的程序太复杂了,不懂
回复

使用道具 举报

10#
ID:155507 发表于 2021-7-24 22:49 | 只看该作者
单片机是根据硬件电路图的设计来写代码的

#include <reg52.h>

void main(void)
{
P2 = 0XA0;//打开蜂鸣器锁存
P0 = 0X00;//输送关闭蜂鸣器命令
P2 = 0X00;//关闭蜂鸣器锁存

P2 = 0X80;//打开LED锁存
P0 = 0X7F;//打开亮LED
while(1);
}

回复

使用道具 举报

11#
ID:956176 发表于 2021-7-24 22:51 来自手机 | 只看该作者
angmall 发表于 2021-7-24 22:49
单片机是根据硬件电路图的设计来写代码的

#include

用这个代码试试吗?
回复

使用道具 举报

12#
ID:824490 发表于 2021-7-24 22:57 | 只看该作者
你再把开发板的原理图发出来。
因为你用的是开发板,所以元器件焊错的问题可以说不存在,最大的可能就是IO配置错了
回复

使用道具 举报

13#
ID:824490 发表于 2021-7-24 22:59 | 只看该作者
你这个开发板输出到LED是经过锁存器的,你的锁存器没有相关的代码,当然不亮了。
回复

使用道具 举报

14#
ID:956176 发表于 2021-7-24 23:02 来自手机 | 只看该作者
名字不是重点 发表于 2021-7-24 22:57
你再把开发板的原理图发出来。
因为你用的是开发板,所以元器件焊错的问题可以说不存在,最大的可能就是IO ...

原理图如下

1627138855111.jpg (299.13 KB, 下载次数: 89)

1627138855111.jpg
回复

使用道具 举报

15#
ID:824490 发表于 2021-7-24 23:03 | 只看该作者
你买的开发板没有例程吗?找商家要啊!
回复

使用道具 举报

16#
ID:956176 发表于 2021-7-24 23:03 来自手机 | 只看该作者
名字不是重点 发表于 2021-7-24 22:59
你这个开发板输出到LED是经过锁存器的,你的锁存器没有相关的代码,当然不亮了。

那您能帮我写个合适的代码嘛?还有您怎么知道是经过了锁存器
回复

使用道具 举报

17#
ID:824490 发表于 2021-7-24 23:20 | 只看该作者
板上不是有吗?没有原理图如何写?靠猜吗?原理图发上来,有人会帮你写的
回复

使用道具 举报

18#
ID:155507 发表于 2021-7-24 23:29 | 只看该作者
jationlee2021 发表于 2021-7-24 23:03
那您能帮我写个合适的代码嘛?还有您怎么知道是经过了锁存器

合适的代码  在10楼

论坛有一堆可参考
http://www.51hei.com/bbs/dpj-203318-1.html
回复

使用道具 举报

19#
ID:956176 发表于 2021-7-24 23:30 来自手机 | 只看该作者
名字不是重点 发表于 2021-7-24 23:20
板上不是有吗?没有原理图如何写?靠猜吗?原理图发上来,有人会帮你写的

以下是原理图

1627138855111.jpg (299.13 KB, 下载次数: 84)

1627138855111.jpg
回复

使用道具 举报

20#
ID:824490 发表于 2021-7-24 23:34 | 只看该作者
这个图。。真够清楚的了。。
回复

使用道具 举报

21#
ID:88256 发表于 2021-7-25 00:25 | 只看该作者
这么模糊,根本就没办法看
回复

使用道具 举报

22#
ID:401564 发表于 2021-7-25 05:07 | 只看该作者
#include <reg52.h>
void main(void)
{
P2 = 0x0f
while(1);
}P2端口有一半是高电平,一半是低电平
如果不是这样,请检查你的硬件
如果不知道什么意思,请再学习C语言

如果还是觉得太复杂了,请用汇编
MOV P2,#0FH
只要一条指令,这个和上面的C语言一样的效果,如果没有这个效果,依然是硬件问题

如果还是不行.......我也不知道要怎么办了

回复

使用道具 举报

23#
ID:420836 发表于 2021-7-25 06:30 | 只看该作者
首先,确保LED坏了。 如果是,请更换 LED。 如果没有,请检查您的代码。
回复

使用道具 举报

24#
ID:140371 发表于 2021-7-25 09:10 | 只看该作者

用这个代码试试?

#include <reg52.h>

void delay(int t)
{
        int a,b;
        for(a=0;a<t;a++)
        {
           for(b=0;b<110;b++);
        }
}
main()
{
       
        while(1)
        {
       

        P0=0x00;//打开亮LED       
        WR=0;//打开LED锁存       
        P2=0x07;//打开LED锁存
        WR=1;
               
        delay(400);
  P0=0xff;//关闭        LED
        WR=0;//打开LED锁存               
        P2=0x07;//打开LED锁存               
        WR=1;
               
        delay(100);
               
        }
}
回复

使用道具 举报

25#
ID:934353 发表于 2021-7-29 17:38 | 只看该作者
如果你用的是51单片机,你这个程序应该是有用的,应该可以点亮一个LED的,最好拿万用表量一下LED两边的电压,看看LED有没有焊反,但这个可能性不太大,或者你的LED是不是被你烧了,你可以用一根杜邦线去尝试把这个LED人为的点亮,如果可以亮就说明LED没有问题,用万用表也可以测出来的
回复

使用道具 举报

26#
ID:898763 发表于 2021-7-29 17:49 | 只看该作者
万用表二极管档量下灯是不是好的
回复

使用道具 举报

27#
ID:955412 发表于 2021-7-29 18:14 | 只看该作者
按照开发板给的例程,你的没有吗
回复

使用道具 举报

28#
ID:928549 发表于 2021-7-30 17:27 | 只看该作者
我之前也遇到过类似的问题,后来设置了端口模式就行了,,,

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

29#
ID:748788 发表于 2021-7-31 08:29 | 只看该作者
这板子不适合你初学,换块简单便宜的板子吧,有了一定的基础再用它
回复

使用道具 举报

30#
ID:957812 发表于 2021-7-31 09:15 | 只看该作者
51的板子的话是不是,没有设计延时函数呀,其他型号的板子还不确定,需要照片啥的来参考和程序
回复

使用道具 举报

31#
ID:507641 发表于 2021-8-1 22:00 | 只看该作者
是不是经过反相器芯才到 LED  试下 LED=1;原理图真看不清
回复

使用道具 举报

32#
ID:585147 发表于 2021-8-2 13:33 | 只看该作者
看看板子电路是高有效还是低有效,即PIN角高还是低点亮led,别搞反了
回复

使用道具 举报

33#
ID:827550 发表于 2021-8-2 20:01 来自手机 | 只看该作者
加电阻和LED焊反
回复

使用道具 举报

34#
ID:584195 发表于 2021-8-4 23:13 | 只看该作者
你先确认一下P20是不是接到你的LED灯上面,然后你是高电平点亮还是低电平点亮,最好是先跑开发板给你的例程。有时你下载时MCU是不是选对了,等等。还有建你的原理图拍清楚一点。
回复

使用道具 举报

35#
ID:709636 发表于 2021-8-5 00:52 | 只看该作者
IO口选择错了吧
回复

使用道具 举报

36#
ID:956176 发表于 2021-9-9 15:29 来自手机 | 只看该作者
1093562897 发表于 2021-7-30 17:27
我之前也遇到过类似的问题,后来设置了端口模式就行了,,,

请问,端口模式在哪里设置呢
回复

使用道具 举报

37#
ID:965089 发表于 2021-9-9 15:51 | 只看该作者
先用示波器测一下,LED端口的电平变化了没?没有变化再测一下你设置的端口电平是不是正常?不正常再取看看程序里设置对不对。
回复

使用道具 举报

38#
ID:955673 发表于 2021-9-9 16:58 | 只看该作者
这个开发板好复杂,LED不在 P2口,还隔着译码器和锁存器
自己焊个LED串个电阻,用杜邦线插芯片附近玩吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表