标题: 51单片机广州塔只亮了一半,不知道为什么,硬件电路没有问题 [打印本页]

作者: zhengaohui    时间: 2018-11-9 16:01
标题: 51单片机广州塔只亮了一半,不知道为什么,硬件电路没有问题
  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);
}
}
}


作者: zhengaohui    时间: 2018-11-9 16:02
不知道啊可以发视频
作者: si2357942473    时间: 2018-11-9 18:20
不知道啊
作者: 无可替代ss    时间: 2018-11-9 19:48
在检查下虚焊,或者接触不良
作者: zl2168    时间: 2018-11-10 08:34
你怎么认定硬件没问题?
作者: jsntmyj    时间: 2018-11-10 09:46
同意楼上,可能有硬件问题,虚焊什么的,差一点都不行!
作者: wai#    时间: 2018-11-10 11:04
这种情况极大可能是硬件电路问题,自己要认真检查一下,或者叫别人帮你检查一遍
作者: vivianb    时间: 2018-11-10 16:25
硬件电路问题.软件不行的话,不会这样的,多检查
作者: sdg1017    时间: 2018-11-12 16:32
仿真没问题的话,用万用表仔细检查电路是否存在虚焊或者接触不良
作者: zhouwen    时间: 2018-11-13 16:52
需要电路图,没有电路图谁知道你的代码引脚作用是什么,还有用了什么其他的拓展芯片?
作者: zhengaohui    时间: 2018-11-21 20:14
解决了,都是代码问题,一个是锁存器的使用不当;一个是P2不能直接0xff,要先0x00,在0xff;
作者: Sea海    时间: 2018-11-21 21:22
这种情况可能是限流过大     不能驱动这么多发光二极管
作者: 灼羊    时间: 2018-11-21 21:59
检查下虚焊v
作者: 弓长小贱    时间: 2018-11-22 17:38
自己要认真检查一下,或者叫别人帮你检查一遍
作者: wqx513    时间: 2020-3-18 15:50
先检查硬件有没有问题,如果硬件没有问题那么问题肯定出在软件上,程序逐行运行,看看是哪一行代码出了问题,这样就能够找出问题所在了。
作者: 我叫小大打    时间: 2020-3-18 22:01
你也得把硬件发出来看看,不然我们怎么知道是你的硬件焊接有没有出现问题的




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