找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请教单片机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;
  }
  
  
  
  }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:114631 发表于 2020-4-1 21:29 | 只看该作者
程序没问题,是不是led点阵的行列反了?建议先实现一行的显示。
回复

使用道具 举报

板凳
ID:479908 发表于 2020-4-2 11:03 | 只看该作者
chenalfe2013 发表于 2020-4-1 21:29
程序没问题,是不是led点阵的行列反了?建议先实现一行的显示。

测试了下,行列没有接反,p0口全部是低电平,单独点亮一行,瞬间有两行灯亮(然后这两行灯灭)
回复

使用道具 举报

地板
ID:372932 发表于 2020-7-19 06:35 来自手机 | 只看该作者
P0有作为列输出不行的,他没有高电平接个上拉电阻
回复

使用道具 举报

5#
ID:700528 发表于 2020-7-19 09:27 | 只看该作者
先确保硬件没有问题,点阵的公共端,然后确认GPIO口的内部结构及输出配置。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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