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
    +关注

    关注

    237

    文章

    22449

    浏览量

    645878
  • 发光二极管
    +关注

    关注

    13

    文章

    1138

    浏览量

    65680
  • 51单片机
    +关注

    关注

    269

    文章

    5649

    浏览量

    120700
  • 点阵屏
    +关注

    关注

    4

    文章

    71

    浏览量

    31811
  • 单片机
    +关注

    关注

    0

    文章

    168

    浏览量

    16658
收藏 人收藏

    评论

    相关推荐

    单片机原理及应用:键控LED点阵显示器#单片机

    单片机LED点阵点阵
    学习硬声知识
    发布于 :2022年11月06日 13:21:56

    采用STC89 C54RD与单片机点阵LED显示屏的设计

    采用STC89 C54RD与单片机点阵LED显示屏的设计摘要:以单片机系统组成的点阵
    发表于 11-03 10:20

    51单片机制作LED点阵显示模块

    设计内容利用51单片机LED点阵显示模块,来设计点阵显示
    发表于 11-22 17:11

    想自己做一个51单片机LED显示屏,求大神指教

    本人想自己制作一个LED显示屏,用51单片机控制,遇到一些问题,希望有大神指点。1.LED8*8 16*16的
    发表于 03-19 16:58

    51单片机是如何点亮LED点阵

    51单片机是如何点亮LED点阵
    发表于 09-30 06:02

    怎样去设计一种基于51单片机LED点阵

    51单片机——LED点阵LED点阵
    发表于 11-18 06:37

    led点阵08接口能否用51单片机驱动?

    led点阵08接口能否用51单片机驱动,还是说一定要用控制卡控制led
    发表于 10-16 06:26

    单片机LED点阵显示keil程序

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

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

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

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

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

    51单片机LED点阵显示设计

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

    基于51单片机的I/O以及LED点阵显示实验

    (1) 实验内容令8*8位LED点阵显示2;循环显示1-8。(2) 实验硬件电路88LED点阵
    发表于 11-23 16:36 14次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的I/O以及<b class='flag-5'>LED</b><b class='flag-5'>点阵</b><b class='flag-5'>显示</b>实验

    51单片机点阵显示程序

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

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

    电子发烧友网站提供《51单片机88点阵LED显示原理.doc》资料免费下载
    发表于 10-25 09:38 0次下载
    <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>原理

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

    发表于 11-07 08:31 0次下载
    基于<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>屏系统的设计