加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2018-09-18 13:16:00)
标签:

电子技术

c51

proteus

led

单片机

分类: Proteus


1.实验任务

8X8 LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。

2.实验目的

   掌握用单片机I/O口进行LED点阵扫描显示。

3.实验工具

    PROTEUS6.9, Keil uVision2软件

4. 原理图

http://s6/mw690/007joiLOzy7nIMhpwWx75&690

5. 相关知识

1LED点阵

八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点阵有4×44×85×75×88×816×1624×2440×40等多种;

根据像素的数目分为等,双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图1--5示出几种LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。

2LED点阵扫描驱动方案:

LED点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于LED管芯大多为高亮度型,因此某行或某列的单体LED驱动电流可选用窄脉冲,但其平均电流应限制在20mA内.多数点阵显示器的单体LED的正向压降约在2V左右.但大亮点10的点阵显示器单体LED的正向压降约为6V

大屏幕显示系统一般是将由多个LED点阵组成的小模块以搭积木的方式组合而成的,每一个小模块都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模块的命令和数据即可,这种方法既简单而且具有易展、易维修的特点。

3LED点阵显示系统中各模块的显示方式:

有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。

LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号.如5 x 7点阵显示器用于显示西文字母.5×8点阵显示器用于显示中西文,8 x 8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。

8X8 点阵LED工作原理说明

8X8点阵LED结构如下图所示

从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:对应的列置1,而行则采用扫描的方法来实现。

一根横柱:对应的行置0,而列则采用扫描的方法来实现。

http://s8/mw690/007joiLOzy7nIMeg6Fx07&690


6C语言源程序

#include

#include

 

unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code tabb[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

 

 

 

void delay1(void)

{

    unsigned char i,j,k;

    for(k=10;k>0;k--)

    for(i=20;i>0;i--)

    for(j=248;j>0;j--);

}

 

void main(void)

{

    unsigned char i,j;

    while(1)

    {

        for(j=0;j<3;j++)//from left to right 3 time

        {

            for(i=0;i<8;i++)

            {

                P2=taba[i];

                P0=0xff;

                delay1();

            }

        }

        for(j=0;j<3;j++)//from right to left 3 time

        {

            for(i=0;i<8;i++)

            {

                P2=taba[7-i];

                P0=0xff;

                delay1();

            }

        }

        for(j=0;j<3;j++)//from top to bottom 3 time

        {

            for(i=0;i<8;i++)

            {

                P2=0x00;

                P0=tabb[7-i];

                delay1();

            }

        }

        for(j=0;j<3;j++)//from bottom to top 3 time

        {

            for(i=0;i<8;i++)

            {

                P2=0x00;

                P0=tabb[i];

                delay1();

            }

        }

    }

}

智码电子

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有