标题: 请教单片机LED点阵程序的问题 [打印本页]

作者: leiyan0811    时间: 2020-4-1 20:27
标题: 请教单片机LED点阵程序的问题

心形图片不显示,全部点亮。LED上面P0口控制行,低电平有效,下面控制行,高电平有效,捣鼓大半天还是这问题,请大佬指点下,谢谢。
单片机代码如下:
  #include<reg51.h>
  sbit DR0=P1^0;
  sbit DR1=P1^1;
  sbit DR2=P1^2;
  
  unsigned  code table[]={ 0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7 };
  void main ()
  {
  
  TMOD |=0X01;
  TH0=(65536-1000)/256;
  TL0=(65536-1000)%256;
  EA=1;
  ET0=1;
  TR0=1;

     while(1);
     
  }
  void interruptTimer0() interrupt 1
  {
     static   unsigned char i=0;
  TH0=(65536-1000)/256;
  TL0=(65536-1000)%256;
   P0 = 0xFF;
      switch(i)
  {
  
     case 0:DR2=0; DR1=0;DR0=0;i++;   P0=table[0];break;
     case 1:DR2=0; DR1=0;DR0=1;i++;  P0=table[1];break;
     case 2:DR2=0; DR1=1;DR0=0;i++;   P0=table[2];break;
     case 3:DR2=0; DR1=1;DR0=1;i++;  P0=table[3];break;
     case 4:DR2=1; DR1=0;DR0=0;i++;  P0=table[4];break;
     case 5:DR2=1; DR1=0;DR0=1;i++;  P0=table[5];break;
     case 6:DR2=1; DR1=1;DR0=0;i++;  P0=table[6];break;
     case 7:DR2=1; DR1=1;DR0=1;i=0;   P0=table[7];break;
     default: break;
  }
  
  
  
  }

作者: chenalfe2013    时间: 2020-4-1 21:29
程序没问题,是不是led点阵的行列反了?建议先实现一行的显示。
作者: leiyan0811    时间: 2020-4-2 11:03
chenalfe2013 发表于 2020-4-1 21:29
程序没问题,是不是led点阵的行列反了?建议先实现一行的显示。

测试了下,行列没有接反,p0口全部是低电平,单独点亮一行,瞬间有两行灯亮(然后这两行灯灭)
作者: fenghaihuac    时间: 2020-7-19 06:35
P0有作为列输出不行的,他没有高电平接个上拉电阻
作者: 依利达    时间: 2020-7-19 09:27
先确保硬件没有问题,点阵的公共端,然后确认GPIO口的内部结构及输出配置。




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