0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于51单片机的LED点阵屏显示

CHANBAEK 来源:滑小稽笔记 作者:51单片机 2023-01-17 16:20 次阅读

11.1 项目分析

11.1.1 点阵简介

LED点阵屏通过LED发光二极管组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统电源系统组成。 LED点阵屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。

LED点阵的显示原理很简单,以8×8点阵为例,8×8点阵具有64个像素点,可以显示数字和一些比较简单的汉字,但是显示汉字最好是用16×16以上的点阵,点阵的连接关系与矩阵键盘相似,将每一行的LED正极接在一起并引出接线端子,将每一列的LED负极接在一起并引出,这样8×8的点阵就会有16个端口被引出, 将行端口和列端口分别接在单片机的两个端口上,就可以控制点阵了。 点阵的显示主要是利用扫描实现的,可以扫描行也可以扫描列,以行扫描为例,假设单片机在八行中任选一“行”产生高电平,其余的”行“设为低电平,那么此时对于“列“只需要在任意一列产生低电平就可以点亮这一行的任意一个或多个发光二极管,然后当“行”不停地扫描,超过人眼的反应范围时,就会显示出对应的画面。 当一个点阵以三个发光二极管(R,G,B)组成一个像素,且发光二极管的体积足够小那就形成了彩色点阵,这种点阵可以利用像素点的R,G,B三种颜色混合成任意的颜色,只要像素点足够多,那么就可以显示彩色图像。

11.1.2 8×8单色点阵结构图

**11.2 **项目过程

11.2.1 项目需求

利用51单片机控制8*8点阵实现0~9的显示。

11.2.2 原理图

11.2.3 源代码

/*********************************************************************************************************
                头    文    件    引    用
*********************************************************************************************************/
#include <reg51.h>                                            //导入51单片机头文件
#include <intrins.h>
/*********************************************************************************************************
              数    据    类    型    定    义
*********************************************************************************************************/
#define u8 unsigned char                                        //定义无符号字符型数据(0~255)
#define u16 unsigned int                                        //定义无符号整型数据(0~65535)


u8 code TAB_L[] = { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F } ;                  //扫描码
u8 code TAB_H[] = {
  0x00, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x44, 0x7E, 0x40, 0x00, 0x00,
  0x00, 0x00, 0x64, 0x52, 0x52, 0x4A, 0x44, 0x00,
  0x00, 0x00, 0x44, 0x92, 0x92, 0x6C, 0x00, 0x00,
  0x00, 0x18, 0x14, 0x12, 0x7E, 0x10, 0x00, 0x00,
  0x00, 0x00, 0x86, 0x8A, 0x8A, 0x72, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x78, 0x94, 0x92, 0x62, 0x00,
  0x00, 0x00, 0x02, 0x02, 0xF2, 0x0A, 0x06, 0x00,
  0x00, 0x00, 0x6C, 0x92, 0x92, 0x92, 0x6C, 0x00,
  0x00, 0x00, 0x4C, 0x92, 0x92, 0x7C, 0x00, 0x00,
} ;                                                    //数字码
u8 Picture_Num ;
u8 TIM0_Count ;
/********************************************************
Name    :delay_ms
Function  :毫秒级别延时函数
Paramater  :
      ms:延时的ms数
Return    :None
********************************************************/
void delay_ms( u16 ms )
{
  u8 i ;
  while( ms-- )
    for( i=0; i<110; i++ ) ;
}
/********************************************************
Name    :Picture
Function  :点阵扫描算法
Paramater  :None
Return    :None
********************************************************/
void Picture( u8 num )
{
  u8 i ;
  for( i=0 ; i<8 ; i++ )
  {
    P3 = TAB_L[ i ] ;                                        //每一次扫描都会加入图片的 1/8
    P2 = TAB_H[ num*8+i ];                                      //取数字码
    delay_ms( 1 ) ;
  }
}
/********************************************************
Name    :TIM0_IRQHandler
Function  :定时器中断
Paramater  :None
Return    :None
********************************************************/
void TIM0_IRQHandler() interrupt 1
{
  TH0 = ( 65535-50000 )/256 ;
  TL0 = ( 65535-50000 )%256 ;
  TIM0_Count ++ ;
  if( TIM0_Count==20 )
  {
    Picture_Num ++ ;
    if( Picture_Num==10 )
      Picture_Num = 0 ;                                      //图像切换上限
    TIM0_Count = 0 ;
  }
}
/*********************************************************************************************************
                    主    函    数
*********************************************************************************************************/
void main()
{
  IE = 0x82 ;                                              //开启中断与定时器中断
  TMOD = 0x01 ;                                            //设定为16位定时器模式
  TH0 = ( 65535-50000 )/256 ;                                      //写入定时器初值
  TL0 = ( 65535-50000 )%256 ;
  TR0 = 1 ;                                              //开启定时器
  TIM0_Count = 0 ;
  Picture_Num = 0 ;
  while( 1 )
  {
    Picture( Picture_Num ) ;
  }
}

11.2.4 仿真截图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23235

    浏览量

    660475
  • 发光二极管
    +关注

    关注

    13

    文章

    1197

    浏览量

    66272
  • 51单片机
    +关注

    关注

    274

    文章

    5702

    浏览量

    123460
  • 点阵屏
    +关注

    关注

    4

    文章

    71

    浏览量

    31939
  • 单片机
    +关注

    关注

    0

    文章

    211

    浏览量

    16658
收藏 人收藏

    评论

    相关推荐

    基于单片机控制的LED点阵显示屏系统

    本文介绍了一种由单片机控制的80*16 的点阵显示屏,该系统利用低成本的单片机来控制LED 显示屏
    发表于 08-14 10:36 302次下载

    单片机LED点阵显示keil程序

    本内容提供了单片机LED点阵显示keil程序,欢迎大家下载学习 //单片机LED
    发表于 11-09 17:58 343次下载

    基于P89V51RD2单片机LED点阵显示屏的实现

    为了LED点阵显示屏显示的信息可以方便更新,提出了一种基于P89V51RD2单片机
    发表于 04-20 10:55 58次下载
    基于P89V<b class='flag-5'>51</b>RD2<b class='flag-5'>单片机</b><b class='flag-5'>LED</b><b class='flag-5'>点阵</b><b class='flag-5'>显示屏</b>的实现

    基于51单片机LED点阵显示系统

    发表于 09-14 14:25 35次下载

    基于51单片机LED点阵显示屏系统的设计与实现

    基于单片机LED点阵显示屏系统的设计与实现,论文,原理图,仿真图
    发表于 11-05 16:10 48次下载

    51单片机LED点阵显示设计

    51单片机LED点阵显示设计,主要是点阵方面的知识
    发表于 03-17 11:12 19次下载

    基于单片机点阵电子LED显示屏的设计

    显示屏的设计。整个设计介绍了以美国ATMEL公司生产的40脚单片机AT89C51为核心的控制系统的LED点阵电子
    发表于 12-02 10:45 52次下载
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>点阵</b>电子<b class='flag-5'>LED</b><b class='flag-5'>显示屏</b>的设计

    如何使用AT89S51单片机进行LED点阵显示屏设计

    LED 电子显示屏是利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕, 在信息显示领域得到了广泛的应用。实现
    发表于 10-26 17:39 40次下载
    如何使用AT89S<b class='flag-5'>51</b><b class='flag-5'>单片机</b>进行<b class='flag-5'>LED</b><b class='flag-5'>点阵</b><b class='flag-5'>显示屏</b>设计

    51单片机——LED点阵

    51单片机——LED点阵LED点阵
    发表于 11-12 09:51 53次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>——<b class='flag-5'>LED</b><b class='flag-5'>点阵</b><b class='flag-5'>屏</b>

    基于51单片机按键控制8×8LED点阵显示图形仿真设计

    基于51单片机按键控制8×8LED点阵显示图形仿真设计,资料包含仿真及源程序文件
    发表于 04-20 16:30 15次下载

    基于AT89C51单片机LED点阵仿电梯数字滚动显示Proteus仿真及程序

    基于AT89C51单片机8×8LED点阵仿电梯数字滚动显示Proteus仿真及程序
    发表于 05-04 14:56 58次下载

    基于AT89C51单片机8×8LED点阵显示数字仿真及代码

    基于AT89C51单片机8×8LED点阵显示数字仿真及代码
    发表于 05-04 14:55 8次下载

    基于AT89C51单片机按键控制8×8LED点阵显示图形

    基于AT89C51单片机按键控制8×8LED点阵显示图形仿真及代码
    发表于 05-04 15:43 2次下载

    51单片机点阵显示程序

    51单片机点阵显示程序
    发表于 05-17 18:04 6次下载

    51单片机88点阵LED显示原理

    电子发烧友网站提供《51单片机88点阵LED显示原理.doc》资料免费下载
    发表于 10-25 09:38 3次下载
    <b class='flag-5'>51</b><b class='flag-5'>单片机</b>88<b class='flag-5'>点阵</b><b class='flag-5'>LED</b><b class='flag-5'>显示</b>原理