找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8X8LED点阵显示原理与编程技术实验

[复制链接]
跳转到指定楼层
楼主
ID:282735 发表于 2018-2-6 23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.实验任务
在8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
2.实验目的
               掌握用单片机I/O口进行LED点阵扫描显示。
3.实验工具
              PROTEUS6.9, Keil uVision2软件
4. 原理图


5. 相关知识
1)LED点阵
八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点阵有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种;
根据像素的数目分为等,双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图1--5示出几种LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。
2)LED点阵扫描驱动方案:
由LED点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于LED管芯大多为高亮度型,因此某行或某列的单体LED驱动电流可选用窄脉冲,但其平均电流应限制在20mA内.多数点阵显示器的单体LED的正向压降约在2V左右.但大亮点∮10的点阵显示器单体LED的正向压降约为6V。
大屏幕显示系统一般是将由多个LED点阵组成的小模块以搭积木的方式组合而成的,每一个小模块都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模块的命令和数据即可,这种方法既简单而且具有易展、易维修的特点。
3)LED点阵显示系统中各模块的显示方式:
有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。
LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5 x 7点阵显示器用于显示西文字母.5×8点阵显示器用于显示中西文,8 x 8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。
8X8 点阵LED工作原理说明
8X8点阵LED结构如下图所示
从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。


6.C语言源程序

  1. #include <reg51.h>
  2. #include <intrins.h>

  3. unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  4. unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

  5. /*void delay(void)
  6. {
  7.               unsigned char i,j;
  8.               for(i=10;i>0;i--)
  9.               for(j=248;j>0;j--);
  10. }*/

  11. void delay1(void)
  12. {
  13.               unsigned char i,j,k;
  14.               for(k=10;k>0;k--)
  15.               for(i=20;i>0;i--)
  16.               for(j=248;j>0;j--);
  17. }

  18. void main(void)
  19. {
  20.               unsigned char i,j;
  21.               while(1)
  22.               {
  23.                             for(j=0;j<3;j++)//from left to right 3 time
  24.                             {
  25.                                           for(i=0;i<8;i++)
  26.                                           {
  27.                                                         P2=taba[i];
  28.                                                         P0=0xff;
  29.                                                         delay1();
  30.                                           }
  31.                             }
  32.                             for(j=0;j<3;j++)//from right to left 3 time
  33.                             {
  34.                                           for(i=0;i<8;i++)
  35.                                           {
  36.                                                         P2=taba[7-i];
  37.                                                         P0=0xff;
  38.                                                         delay1();
  39.                                           }
  40.                             }
  41.                             for(j=0;j<3;j++)//from top to bottom 3 time
  42.                             {
  43.                                           for(i=0;i<8;i++)
  44.                                           {
  45.                                                         P2=0x00;
  46.                                                         P0=tabb[7-i];
  47.                                                         delay1();
  48.                                           }
  49.                             }
  50.                             for(j=0;j<3;j++)//from bottom to top 3 time
  51.                             {
  52.                                           for(i=0;i<8;i++)
  53.                                           {
  54.                                                         P2=0x00;
  55.                                                         P0=tabb[i];
  56.                                                         delay1();
  57.                                           }
  58.                             }
  59.               }
  60. }
复制代码

全部资料51hei下载地址:
8X8_LED点阵显示原理与编程实验.doc (187.5 KB, 下载次数: 41)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:248486 发表于 2018-3-3 11:13 | 只看该作者
下载了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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