精华内容
下载资源
问答
  • 点阵LED资料 收集 点阵LED资料 收集 点阵LED资料 收集
  • 点阵LED电路板及其资料 点阵LED电路板及其资料
  • Proteus仿真点阵LED

    2018-06-14 17:26:32
    基于51单片机,KEIL软件平台C语言编程,Proteus环境仿真驱动点阵LED
  • 单片机点阵LED心形

    2015-05-14 12:05:58
    单片机心形点阵LED,C语言程序,编程在8*8的点阵式LED上显示图形。
  • 点阵LED显示程序

    2015-11-11 22:54:15
    16*16点阵LED显示程序,有C程序代码。经过了调试,可以使用。
  • 点阵LED模拟090524

    2009-05-29 12:27:33
    点阵LED模拟090524 点阵LED模拟090524 点阵LED模拟090524
  • 点阵led屏设计

    2014-03-27 21:07:03
    点阵led屏设计过程,PDF资料易学易懂。
  • 16X16点阵LED电子显示屏设计
  • 设计了一种彩色点阵LED大屏幕的控制器,该控制器采用单片机读取存储在SD上的点阵数据文件,按帧串行地输出到LED控制芯片并刷新LED屏幕显示。该控制器能够存储并动态显示灵活多样的文字或者动画,具有性价比高、体积...
  • 8 8点阵LED

    2012-10-19 23:07:05
    8 8 点阵LED字符显示器的设计 要的 赶紧下载哦 ,我这里还有程序
  • 点阵led灯显示程序

    2014-10-25 23:17:42
    一个基于单片机控制的点阵LED的程序,然单片机可以正常地控制
  • 点阵LED字模生成工具

    2015-01-14 14:59:59
    这是一款非常好用的点阵LED字模生成工具,解压后,双击图标PCtoLCD2002.exe即可使用。
  • 点阵LED广告屏

    2011-11-04 23:19:48
    74LS164扩展并口的方法,在点阵LED上显示“5”
  • 24点阵LED显示屏

    2010-05-02 11:51:25
    24点阵LED24点阵LED有仿真图、、、
  • 利用AT89S52 作为主控制芯片, 给出简单实用的外围电路来驱动16*16 的点阵LED 显示屏的设计方案,包括系统具体的硬件设计方案和各个外围电路部分的设计等方面。
  • 点阵仿真LED点阵LED

    2010-08-25 15:54:37
    PROPTUSLED点阵仿真,KEIL编程的很好哟美好的
  • 点阵led显示控制器

    2013-05-09 13:39:30
    点阵led显示控制器如何显示汉字 移屏。
  • 51单片机--点阵LED

    2020-08-23 12:59:02
    点阵LED点阵的初步认识点阵的图像显示点阵的动画显示点阵的纵向显示点阵的横向显示总结 点阵的初步认识 点阵led显示屏作为一种现代电子媒体,具有灵活的显示面积(可分割、任意拼装)、高亮度、长寿命、大容量、数字...

    点阵的初步认识

    点阵led显示屏作为一种现代电子媒体,具有灵活的显示面积(可分割、任意拼装)、高亮度、长寿命、大容量、数字化、实时性的特点。

    点亮左上角一个led灯程序如下:

    #include <reg52.h>
    sbit LED = P0^0;
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    void main()
    {
     ENLED = 0; //U3、U4 两片 74HC138 总使能
     ADDR3 = 0; //使能 U4 使之正常输出
     ADDR2 = 0; //经 U4 的 Y0 输出开启三极管 Q10
     ADDR1 = 0;
     ADDR0 = 0;
     LED = 0; //向 P0.0 写入 0 来点亮左上角的一个点
     while(1); //程序停止在这里
    }
    

    如下图所示:
    在这里插入图片描述点亮第一行点阵程序:

    #include <reg52.h>
    sbit LED = P0^0;
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    void main()
    {
     ENLED = 0; //U3、U4 两片 74HC138 总使能
     ADDR3 = 0; //使能 U4 使之正常输出
     ADDR2 = 0; //经 U4 的 Y0 输出开启三极管 Q10
     ADDR1 = 0;
     ADDR0 = 0;
     P0=0x00; //向 P0.0 写入 0 来点亮左上角的一个点
     while(1); //程序停止在这里
    }
    

    板子图片如下:
    在这里插入图片描述点亮点阵的程序:

    #include <reg52.h>
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    void main()
    {
     EA = 1; //使能总中断
     ENLED = 0; //使能 U4,选择 LED 点阵
     ADDR3 = 0; //因为需要动态改变 ADDR0-2 的值,所以不需要再初始化了
     TMOD = 0x01; //设置 T0 为模式 1
     TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
     TL0 = 0x67;
     ET0 = 1; //使能 T0 中断
     TR0 = 1; //启动 T0
     while (1); //程序停在这里,等待定时器中断
    }
    /* 定时器 0 中断服务函数 */
    void InterruptTimer0() interrupt 1
    {
     static unsigned char i = 0; //动态扫描的索引
     TH0 = 0xFC; //重新加载初值
     TL0 = 0x67;
     //以下代码完成 LED 点阵动态扫描刷新
     P0 = 0xFF; //显示消隐
     switch (i)
     {
     case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=0x00; break;
     case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=0x00; break;
     case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=0x00; break;
     case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=0x00; break;
     case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=0x00; break;
     case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=0x00; break;
     case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=0x00; break;
     case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=0x00; break;
     default: break;
     } 
    }
    

    板子图片如下:
    在这里插入图片描述

    点阵的图像显示

    用字模提取软件提取P0
    在这里插入图片描述程序如下:

    #include <reg52.h>
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    unsigned char code image[] = { //图片的字模表
     0xFF, 0x99, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xE7
    };
    void main()
    {
     EA = 1; //使能总中断
     ENLED = 0; //使能 U4,选择 LED 点阵
     ADDR3 = 0;
     TMOD = 0x01; //设置 T0 为模式 1
     TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
     TL0 = 0x67;
     ET0 = 1; //使能 T0 中断
     TR0 = 1; //启动 T0
     while (1);
    }
    /* 定时器 0 中断服务函数 */
    void InterruptTimer0() interrupt 1
    {
     static unsigned char i = 0; //动态扫描的索引
     TH0 = 0xFC; //重新加载初值
     TL0 = 0x67;
     //以下代码完成 LED 点阵动态扫描刷新
     P0 = 0xFF; //显示消隐
     switch (i)
     {
      case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[0]; break;
     case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[1]; break;
     case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[2]; break;
     case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[3]; break;
     case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[4]; break;
     case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[5]; break;
     case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[6]; break;
     case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[7]; break;
     default: break;
     } 
    }
    

    板子图像如下:
    在这里插入图片描述

    点阵的动画显示

    点阵的纵向显示

    纵向显示其实就是图像的动态刷新,也就是一直切换图片。
    代码如下:

    #include <reg52.h>
    
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    
    unsigned char code image[] = { //图片的字模表
     0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
     0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3,0xFF,
     0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF,
     0x99,0x99,0x99,0x99,0x99,0x81,0xC3,0xFF,
     0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
    };
    
    void main()
    {
     EA = 1; //使能总中断
     ENLED = 0; //使能 U4,选择 LED 点阵
     ADDR3 = 0;
     TMOD = 0x01; //设置 T0 为模式 1
     TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
     TL0 = 0x67;
     ET0 = 1; //使能 T0 中断
     TR0 = 1; //启动 T0
     while (1);
    }
    /* 定时器 0 中断服务函数 */
    void InterruptTimer0() interrupt 1
    {
     static unsigned char i = 0; //动态扫描的索引
     static unsigned char tmr = 0; //250ms 软件定时器
     static unsigned char index = 0; //图片刷新索引
     TH0 = 0xFC; //重新加载初值
     TL0 = 0x67;
      //以下代码完成 LED 点阵动态扫描刷新
     P0 = 0xFF; //显示消隐
     switch (i)
     {
       case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index+0]; break;
       case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index+1]; break;
       case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index+2]; break;
       case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index+3]; break;
       case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index+4]; break;
       case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index+5]; break;
       case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index+6]; break;
       case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index+7]; break;
       default: break;
     }
       //以下代码完成每 250ms 改变一帧图像
       tmr++;
       if (tmr >= 250) //达到 250ms 时改变一次图片索引
       {
        tmr = 0;
        index++;
        if (index >= 32) //图片索引达到 32 后归零
        {
          index = 0;
        }
       } 
    }
    

    板子视频如下:

    点阵动画显示(纵向)

    点阵的横向显示

    横向也是通过图片一直得更换显示出来动画。
    代码如下:

    #include <reg52.h>
    sbit ADDR0 = P1^0;
    sbit ADDR1 = P1^1;
    sbit ADDR2 = P1^2;
    sbit ADDR3 = P1^3;
    sbit ENLED = P1^4;
    unsigned char code image[30][8] = {
     {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}, //动画帧 1
     {0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F}, //动画帧 2
     {0xFF,0x3F,0x7F,0x7F,0x7F,0x7F,0x7F,0x3F}, //动画帧 3
     {0xFF,0x1F,0x3F,0x3F,0x3F,0x3F,0x3F,0x1F}, //动画帧 4
     {0xFF,0x0F,0x9F,0x9F,0x9F,0x9F,0x9F,0x0F}, //动画帧 5
     {0xFF,0x87,0xCF,0xCF,0xCF,0xCF,0xCF,0x87}, //动画帧 6
     {0xFF,0xC3,0xE7,0xE7,0xE7,0xE7,0xE7,0xC3}, //动画帧 7
     {0xFF,0xE1,0x73,0x73,0x73,0xF3,0xF3,0xE1}, //动画帧 8
     {0xFF,0x70,0x39,0x39,0x39,0x79,0xF9,0xF0}, //动画帧 9
     {0xFF,0x38,0x1C,0x1C,0x1C,0x3C,0x7C,0xF8}, //动画帧 10
     {0xFF,0x9C,0x0E,0x0E,0x0E,0x1E,0x3E,0x7C}, //动画帧 11
     {0xFF,0xCE,0x07,0x07,0x07,0x0F,0x1F,0x3E}, //动画帧 12
     {0xFF,0x67,0x03,0x03,0x03,0x07,0x0F,0x9F}, //动画帧 13
     {0xFF,0x33,0x01,0x01,0x01,0x03,0x87,0xCF}, //动画帧 14
     {0xFF,0x99,0x00,0x00,0x00,0x81,0xC3,0xE7}, //动画帧 15
     {0xFF,0xCC,0x80,0x80,0x80,0xC0,0xE1,0xF3}, //动画帧 16
     {0xFF,0xE6,0xC0,0xC0,0xC0,0xE0,0xF0,0xF9}, //动画帧 17
     {0xFF,0x73,0x60,0x60,0x60,0x70,0x78,0xFC}, //动画帧 18
     {0xFF,0x39,0x30,0x30,0x30,0x38,0x3C,0x7E}, //动画帧 19
     {0xFF,0x9C,0x98,0x98,0x98,0x9C,0x1E,0x3F}, //动画帧 20
     {0xFF,0xCE,0xCC,0xCC,0xCC,0xCE,0x0F,0x1F}, //动画帧 21
     {0xFF,0x67,0x66,0x66,0x66,0x67,0x07,0x0F}, //动画帧 22
     {0xFF,0x33,0x33,0x33,0x33,0x33,0x03,0x87}, //动画帧 23
     {0xFF,0x99,0x99,0x99,0x99,0x99,0x81,0xC3}, //动画帧 24
     {0xFF,0xCC,0xCC,0xCC,0xCC,0xCC,0xC0,0xE1}, //动画帧 25
     {0xFF,0xE6,0xE6,0xE6,0xE6,0xE6,0xE0,0xF0}, //动画帧 26
     {0xFF,0xF3,0xF3,0xF3,0xF3,0xF3,0xF0,0xF8}, //动画帧 27
     {0xFF,0xF9,0xF9,0xF9,0xF9,0xF9,0xF8,0xFC}, //动画帧 28
     {0xFF,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE}, //动画帧 29
     {0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF} //动画帧 30
    };
    void main()
    {
     EA = 1; //使能总中断
     ENLED = 0; //使能 U4,选择 LED 点阵
     ADDR3 = 0;
     TMOD = 0x01; //设置 T0 为模式 1
     TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
     TL0 = 0x67;
     ET0 = 1; //使能 T0 中断
     TR0 = 1; //启动 T0
     while (1);
    }
    /* 定时器 0 中断服务函数 */
    void InterruptTimer0() interrupt 1
    {
     static unsigned char i = 0; //动态扫描的索引
     static unsigned char tmr = 0; //250ms 软件定时器
      static unsigned char index = 0; //图片刷新索引
     TH0 = 0xFC; //重新加载初值
     TL0 = 0x67;
     //以下代码完成 LED 点阵动态扫描刷新
     P0 = 0xFF; //显示消隐
     switch (i)
     {
     case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=image[index][0]; break;
     case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=image[index][1]; break;
     case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=image[index][2]; break;
     case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=image[index][3]; break;
     case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=image[index][4]; break;
     case 5: ADDR2=1; ADDR1=0; ADDR0=1; i++; P0=image[index][5]; break;
     case 6: ADDR2=1; ADDR1=1; ADDR0=0; i++; P0=image[index][6]; break;
     case 7: ADDR2=1; ADDR1=1; ADDR0=1; i=0; P0=image[index][7]; break;
     default: break;
     }//因为这个不是下一个转换,而是数组元素的第几个,所以和纵向不一样,不用‘+’
     //以下代码完成每 250ms 改变一帧图像
     tmr++;
     if (tmr >= 250) //达到 250ms 时改变一次图片索引
     {
       tmr = 0;
       index++;
       if (index >= 30) //图片索引达到 30 后归零
       {
        index = 0;
       }
     } 
    }
    

    板子视频如下:

    点阵动画(横向)

    总结

    理论上听懂了,但是代码方面还是有一些问题,不过会慢慢学习的.!

    展开全文
  • 8乘8点阵led显示

    2009-11-09 17:49:46
    8乘8点阵led显示8乘8点阵led显示8乘8点阵led显示
  • 4个16x16点阵LED显示屏的设计 16x16点阵LED 点阵LED显示屏的设计
  • 16x16的点阵LED图文显示屏设计
  • 摘要:利用AT89S52 作为主控制芯片, 给出简单实用的外围电路来驱动16*16 的点阵LED 显示屏的设计方案,包括系统具体的硬件设计方案和各个外围电路部分的设计等方面。  0、引言  LED 显示屏是在20 世纪80 年代在...
  • 16点阵LED显示器汇编代码,单片机原理及应用设计大纲
  • 双色 8 × 8点阵 LED

    2012-07-28 10:55:03
    双色 8 × 8点阵 LED的使用信息,此点阵为双色共阴极的点阵
  • 汉字字库存储技术点阵LED显示汉字字库存储技术点阵LED显示
  • 点阵LED大屏幕的设计

    2010-04-04 23:54:15
    点阵LED大屏幕的设计,点阵LED大屏幕的设计,文章
  • 前段时间在创客群里看到一个用点阵LED屏做的超级萌萌哒的小玩偶,有声音LED屏就会有动画,非常有趣,恰好我有一个点阵LED,于是决定自己也做一个,在instructables上找了下发现真的有这个东西叫Lip Syncing Robot...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,764
精华内容 1,105
关键字:

点阵led