找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2299|回复: 15
收起左侧

51单片机广州塔只亮了一半,不知道为什么,硬件电路没有问题

  [复制链接]
ID:404720 发表于 2018-11-9 16:01 | 显示全部楼层 |阅读模式
  1. //d代码1 只亮了一半不知道为什么
  2. #include "reg52.h"
  3. sbit le1=P3^7;
  4. sbit le2=P3^6;int i;
  5. code char a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  6. code char b[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
  7. void delay()
  8. {
  9. int c,d;
  10. for(c=0;c<60;c++)
  11. for(d=0;d<70;d++);
  12. }
  13. int main(void)
  14. {
  15. while(1)
  16. {
  17. P0=0xff;
  18. P2=0xff;
  19. for(i=0;i<8;i++)
  20. {
  21. P1=0X00;
  22. le2=1;le2=0;
  23.         P1=a[i];
  24.         le1=1;
  25.         le1=0;
  26.         delay();
  27.         if(i==7)
  28.         {
  29.         P1=0x00;
  30.         le1=1;le1=0;
  31.         }
  32. }
  33. for(i=0;i<8;i++)
  34. {
  35. le1=0;
  36.         P1=a[i];
  37.         le2=1;
  38.         le2=0;
  39.         delay();
  40.                 if(i==7)
  41.         {
  42.         P1=0x00;
  43.         le2=1;le2=0;
  44.         }
  45. }
  46. for(i=0;i<8;i++)
  47. {
  48. le1=0;
  49.         P1=b[i];
  50.         le2=1;
  51.         le2=0;
  52.         delay();
  53.                 if(i==7)
  54.         {
  55.         P1=0x00;
  56.         le2=1;le2=0;
  57.         }
  58. }
  59. for(i=0;i<8;i++)
  60. {
  61. P1=0X00;
  62. le2=1;le2=0;
  63.         P1=b[i];
  64.         le1=1;
  65.         le1=0;
  66.         delay();
  67.         if(i==7)
  68.         {
  69.         P1=0x00;
  70.         le1=1;le1=0;
  71.         }
  72. }
  73. }
  74. }
复制代码


这是代码2可以实现正常螺旋环绕效果(由此我判断的硬件没有问题)
#include "reg52.h"
sbit le1=P3^6;
sbit le2=P3^7;
#define uint unsigned int
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<t;j++);
}
char code a[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void main()
{
uint c;
while(1)
{
le1=1;
P1=0xff;
le1=0; //层全高电平,然后只需要控制列的低电平,就可以有旋转效果 层连接在P1 列连着P0 P2
for(c=0;c<8;c++)
{
P0=a[c];
P2=a[c];
delay(75);
}
for(c=0;c<8;c++)
{
P0=a[c];
P2=a[c];
delay(75);
}
}
}

回复

使用道具 举报

ID:404720 发表于 2018-11-9 16:02 | 显示全部楼层
不知道啊可以发视频
回复

使用道具 举报

ID:423723 发表于 2018-11-9 18:20 | 显示全部楼层
不知道啊
回复

使用道具 举报

ID:338651 发表于 2018-11-9 19:48 | 显示全部楼层
在检查下虚焊,或者接触不良
回复

使用道具 举报

ID:111634 发表于 2018-11-10 08:34 | 显示全部楼层
你怎么认定硬件没问题?
回复

使用道具 举报

ID:423926 发表于 2018-11-10 09:46 | 显示全部楼层
同意楼上,可能有硬件问题,虚焊什么的,差一点都不行!
回复

使用道具 举报

ID:406313 发表于 2018-11-10 11:04 | 显示全部楼层
这种情况极大可能是硬件电路问题,自己要认真检查一下,或者叫别人帮你检查一遍
回复

使用道具 举报

ID:61493 发表于 2018-11-10 16:25 | 显示全部楼层
硬件电路问题.软件不行的话,不会这样的,多检查
回复

使用道具 举报

ID:425073 发表于 2018-11-12 16:32 | 显示全部楼层
仿真没问题的话,用万用表仔细检查电路是否存在虚焊或者接触不良
回复

使用道具 举报

ID:111339 发表于 2018-11-13 16:52 | 显示全部楼层
需要电路图,没有电路图谁知道你的代码引脚作用是什么,还有用了什么其他的拓展芯片?
回复

使用道具 举报

ID:404720 发表于 2018-11-21 20:14 | 显示全部楼层
解决了,都是代码问题,一个是锁存器的使用不当;一个是P2不能直接0xff,要先0x00,在0xff;
回复

使用道具 举报

ID:424073 发表于 2018-11-21 21:22 | 显示全部楼层
这种情况可能是限流过大     不能驱动这么多发光二极管
回复

使用道具 举报

ID:420457 发表于 2018-11-21 21:59 | 显示全部楼层
检查下虚焊v
回复

使用道具 举报

ID:428648 发表于 2018-11-22 17:38 来自手机 | 显示全部楼层
自己要认真检查一下,或者叫别人帮你检查一遍
回复

使用道具 举报

ID:381496 发表于 2020-3-18 15:50 | 显示全部楼层
先检查硬件有没有问题,如果硬件没有问题那么问题肯定出在软件上,程序逐行运行,看看是哪一行代码出了问题,这样就能够找出问题所在了。
回复

使用道具 举报

ID:699194 发表于 2020-3-18 22:01 | 显示全部楼层
你也得把硬件发出来看看,不然我们怎么知道是你的硬件焊接有没有出现问题的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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