找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10610|回复: 4
收起左侧

单片机+74HC595驱动的16*16LED点阵点子显示屏幕设计论文

[复制链接]
ID:364537 发表于 2018-7-5 15:15 | 显示全部楼层 |阅读模式
摘要
  该论文介绍了一款以STC89C52为微处理器的LED点阵点子显示屏幕显示的设计。为了使显示屏上显示的字更加清晰,该设计采用论4块8 * 8点阵模块来构成一个16* 16的LED点阵显示屏,可以用来实现汉字和数字的显示及其动态显示效果。以STC89C52芯片作该核心控制器件,三极管和驱动继电器作为驱动电路器件,串并转换器和锁存器作为译码电路的器件,通过级连的方式来扩大显示屏幕的尺寸来增加显示的内容。STC89C52单片机处理控制命令和显示代码,通过IO口串行输出将显示内容和控制完成字符串并将并行输出译码电路,最后由显示器驱动电路模块,LED点阵显示屏扫描显示。概括来说本设计选取AT89S52作为微处理器件,74HC595和74HC154构成译码电路,三极管9012和电阻做行和列驱动。

1    
1.1  课题的研究背景

在现如今科技飞速发展的时代,信息传播速度极快。LED点阵显示屏已然占据了有利市场,因为LED显示屏具备工作电压低、亮度高且均匀、体积小、功率低、稳定性强[1]。正因为其广阔的发展前景,所以研究它更有显示意义,世界各国都大力研发。正向着更加强大的功能靠近,以便占据市场。由于材料技术和工艺技术的提高,LED显示屏的材料正朝着从金属材质向有机物材质的方向发展,OLED显示屏势必会取代LED显示屏,虽然OLED制作价格昂贵,但是不用多久就能解决这一问题,走进万千百姓家。目前LED显示屏常用于商场宣传广告,广场大屏幕显示,港口、车站、地铁站旅客引导指示动态信息,指挥中心显示信息[2]。

1.1.1 LED电子显示屏概述

LED(发光二极管)电子显示屏幕面板是数以百计的,甚至成千上万的像素构成的半导体发光二极管(LED),根据均匀排列的矩阵方法。使用不同的半导体材料可以产生不同颜色的LED像素[3]。

LED显示屏分类多样化。有单色、双色、三色显示屏;按不同的像素密度和像素直径划分的显示屏;户外显示屏一半都比室内的像素密度和直径更高;还有分为LED数码显示屏、LED点阵图文显示屏、LED视频显示屏;常规性LED显示屏和租赁型LED显示屏;广告媒体类显示屏和工业指示类显示屏。LED数码显示屏七段数码管的显示设备,适合时钟屏幕,让图形显示是由许多均匀排列的LED点阵显示模块,可以用来显示文字和图像。

LED显示屏的发展很好,是向更高的亮度和适应气候性强,更多的光密度,发光均匀,可靠稳定,三色的方向发展和进步。

选题意义

这个话题可以使我们理解和掌握的基本显示LED显示屏产业的原理和设计方法有一个初步的认识和理解。并且能够学习一些理论在大学必须实践,学会做一个进一步的理解和对理论知识的理解。并通过设计任务进一步掌握51单片机的使用硬件和软件开发工具。

1.1.2 LED电子显示屏的分类

按使用环境分为户内、户外、和半户外。

户内屏的面积一平半在1米到10几平米之间,屏幕亮度适中、重量较小,密度高,适合近距离观看。

户外屏面积在几十平米深圳大到几百平米,发光亮度高,密度较低,具有非常高的抗雷击能力。

按颜色可分为单色、双颜色,三种颜色,黑白是指发光材料只显示一种颜色,双色LED显示屏是由红色和绿色LED全彩LED显示屏是由红色、绿色和蓝色发光二极管。

              按照像素密度或者像素直径划分为各种型号大小的显示屏。

              按照控制方式分为同步和异步显示屏。

按性能分为视频显示,文本显示,图文显示,行情显示。

按照显示器件分LED数码显示管,LED点阵显示屏,LED视屏显示屏。

按照发展的方向可以分为广告传媒和工业指示类[4]。

1.1.4  设计任务

本设计的任务要求是完成一个16 * 16的点阵设计,并能滚动显示“2016届电子毕业设计”内容。

任务要求:

(1)              能同时流动显示汉字,

(2)              能实现显示汉字无闪烁,

(3)              能实屏幕亮度较高,

(4) 显示文字稳定、清晰无串扰。

1.2  MCS-51系统单片机简介

应用:

  • 在智能仪器表面上的应用
  • 在工业控制中的应用
  • 在家电电器中的应用
  • 在计算机网络和通信领域中的应用
  • 在医用设备领域中的应用
  • 在各种大型电器中的模块化应用
  • 在汽车设备领域中的应用[5]
1.3  论文主要内容

根据本论文设计的的要求特点,我将对论文的内容和结构将做如下安排:

  • 初步方案的论证和选择

    查找该论题的相关资料,并参考眼下通用的设计思路和设计方法选取几套设计方案然后进行比较分析。最终选取了以单片机为核心微处理器,再加上译码电路和驱动电路的设计方案来完成设计。

2)方案实现

实现要求功能时要根据器件特性来进行选择和论证。经过对比选择选定以STC89C52单片机控制整个电路,7HC595控制行,74HC154和三极管9012控制列。

3软件编写

根据硬件特点和设计要求,选用C语言编写软件程序。程序按功能分为多个模块,模块之间相对独立。然后按照所划分的模块逐个编写和调试,最后将独立的模块整合起来。

4结论

硬件测试和软件测试都要进行,确保无任何错误后再进行焊接电路板的工作。进行总结在设计做完之后对设计中遇到的问题、经验和想法,遇到问题时要查找书籍,力争做到最好。


2  总体设计2.1  系统概述

一个完整有效的系统必须要全面考虑到多种问题和功能的实现,点阵的设计也应该如此,下面我详细说明地我的设计过程。

2.1.1  显示单元的选择

首先要在显示上显示一个简体的汉字,为将采用16*16点阵来描述显示。为了能够在距离较远的地方看的更清晰,本设计选区来4个8*8的点阵,像素直径为5mm的红色LED模块拼成16*16点阵的LED点阵阵列模块。这样使每个16*16点阵的汉字能够得得12*12的显示尺寸,因此在距离较远的地方仍然能看得清晰。本论文设计要求整个屏幕能显示“2016届电子毕业设计”一串数字和汉字,则应该需要使用16*16红色点阵来回循环滚动显示。

2.1.2  滚屏方式选择

字符串的位置在屏幕上实现不断地移动,即为“滚屏”可以设置不同的滚动方向,本轮文设计以从右到左的方向为例。要实现该功能,可以用硬件来进行操作,但是增加了额外的硬件成本以及设计的难度。所以本论文设计选取软件的方法来实现从右向左滚屏显示的常见的滚屏方式。之所以选择软件来完成滚屏显示,其最大的优点就是成本低廉,而且可维护、可扩展性强。

2.1. 3   单片机控制器的考虑

因为本文设计为使用软件实现滚动显示,和传输方式是连续的。所以微处理器的处理速度单位需求较高,ARM7和高速8位微控制器的选择。ARM的处理速度非常快,但应用程序的屏幕,里面的ARM严重浪费资源,成本很高。所以选择高速8位单片机作为处理器。AVR系列单片机,51系列单片机,STC单片机等这几个单片机处理速度可以达到1 MIPS / MHz(在时钟频率是1 MHz的处理能力是每秒100万条指令),但AVR系列单片机的时钟频率的限制16兆赫,只可以使用AT89C51单片机或STC89C52单片机系列,最大40 MHz时钟,并拥有丰富的接口和内存资源,价格相对便宜,大大降低了产品的成本。

2.1. 4  关于点阵数据的存储方式

目前使用最广的技术之一是通过单片机软件将转换为相应的字符串显示位图字体数据,然后将这些字体数据后按照一定的顺序存储在E2PROM芯片[6]。因为设计需要显示内容,所以直接存储在STC89C52就够了,所以没有使用外部设备。

3 硬件电路设计3.1 整体设计框图

              通过对该论文设计的分析,为了能够很好的实现论文要求,利用单片机STC89C52作为该系统的主控模块。数据通过单片机模块处理后传输给LED电子显示屏模块,并且实现滚动显示。整体设计框图如图1所示:


1  硬件整体设计

3.2 主控电路

              该方案通过STC89C52微处理器来控制完成LED电子点阵显示屏的字符串的滚动显示。

3.2.1 STC89C52 单片机简介

STC89C52抗干扰,加密性强,可任意编程,运行速度快,功耗低的CMOS 8位单片机。具有 8kb 系统可编程的Flash存储器和512b的随机数据存储器(RAM),32位I/O口线[7]。器件选用MCS-51作为内核,与MCS-51指令集合输出管脚相兼容,其中片内具用8位中央处理器和Flash存储单元, STC89C52单片机适用于很多比较复杂的控制场所,其功能非常强大。

1STC89C52 外部结构及特性

其外部封装有两种形式:双列直插式40脚封装(DIP)和方形44脚封装 (PLCC),直插式40 脚封装(DIP)和外部总线结构如图2和图3所示:

2 STC89C52引脚排列             3外部总线

STC89C52的功能及引脚说明:

Vcc:电源电压

GND:地

P0口:P0口是8位双向I / O端口。地址/数据总线复用。当用作输出,每个吸收电流驱动TTL逻辑电平。P0口读“1”时高阻状态。 [8]

P1:P1口是一个内部上拉电阻8位双向I / O端口,P1输出缓冲区可以驱动四个TTL逻辑门[9。

P2:P2口是一个内部上拉电阻与8位双向I / O端口,P2可以驱动4 TTL逻辑电路输出缓冲阶段。P2端口写“1”,内部上拉电阻置于高电平,可用于输入端口。作为输入,因为内部上拉电阻,确定由外部信号输入电流。

P3:P3口与内部上拉电阻8位双向I / O端口,P2可以驱动4 TTL逻辑电路输出缓冲阶段。P3写“1”,内部上拉电阻置于高电平,这个时候可以作为一个输入端口。使用左边的输入使用时,由于内部阻力,确定由外部信号输入电流。P3口也被用作一个特定的使用,如下所示:

  P3.0  RXD(串行输入口)

  P3.1  TXD(串行输出口)

  P3.2  INTO(外部中断0 输入口)

  P3.3  INT1(外部中断 1 输入口)

  P3.4  TO(定时器 0 外部输入)

  P3.5  TI(定时器 1 外部输入)

  P3.6  WR(外部数据存储器写选通信号)

  P3.7(外部数据存储器读选通信号)

2)功耗特性

              (1)掉电模式:

                            典型功耗 <0.1uA,通过外部中断来唤醒,中断返回后,继续执行原来的程序

              (2)空闲模式:

                            典型功耗 2mA

              (3)正常工作模式:

                            典型功耗 4mA-7mA

              (4)掉电模式可由外部中断唤醒,适用于水表,气表等电池供电系统及便携设备

3STC单片机的命名规则:









4STC89C52的内部组成

STC89C52单片机内包含的具体部分如下:

  一个8 位 CPU。

  一个片内振荡器及时钟电路。

  8KB Flash 程序存储器。

  256 B RAM 数据存储器。

  三个16 位定时器/计数器。

  64KB 的外部程序存储器空间和外部数据存储器的电路。32 条可编程的 I/O线。

  一个可编程全双工串口通信。

  8 个中断源、两个优先级嵌套中断结构。

STC89C52单片机的框图如下图所示,其间的功能部件通过内部总线接在一起。

                           4STC89C52单片机框图

3.3 LED点阵显示电路

本论文设计采用的是4块8 * 8单色点阵屏设计构成16 * 16点阵屏,采用单色显示,进行显示所要显示的字符串,通过74HC154译码器来控制点阵的列方向的显示,而列方向的16条线则由74HC595的八位并行输出端控制[10]。

3.3.1 74HC154的总体特点和内部结构

1)总体特点

74HC154是一款高速CMOS器件,是4线-16线译码器,可接受4位高有效二进制地址输入,其DIP封装引脚图如图5所示:

   5  74HC154引脚图

              地址输入对应输出表1:

                                                                                                  1  74HC154输出表

引脚说明

1-11 ,13-17:输出端;12:GND ;18-19:使能输入端,低电平有效;20-23:地址输入端;24:VCC电源。

2)内部结构

①参数列表如表2:



                                                                      2  74HC154参数

74LS154

基本参数

电压

2.0~6.0V

驱动电流

+/-5.2mA

传输延迟

11ns@5V

逻辑电平

CMOS

功耗考量

低功耗或电池供电应用

封装与引脚

SO24,SSOP24,DIP24,TSSOP24


②逻辑图:74LS154的内部逻辑由与门和非门电路组成。

其逻辑图如图6所示:

                              6  74HC154逻辑图

3.3.2 74HC595的总体特点和程序说明

(1)总体特点:74HC95是具有8位移位寄存器,具有相互独立的时钟,三态输出功能[11]。8位串行输入/输出或者并行输出移位寄存器,具有高阻状态,三态。其DIP封装引脚图如图7所示:

7  74HC595引脚图

各引脚及其功能如表3所示:

3  74HC595引脚图

符号

引脚

描述

Q0-Q7

第15脚,第1-7脚

8位并行数据输出

GND

第8脚

Q7’

第9脚

串行数据输出

MR

第10脚

主复位(低电平)

SHCP

第11脚

数据输入时钟线

STCP

第12脚

输出存储器锁存时钟线

OE

第13脚

输出有效(低电平)

DS

第14脚

串行数据输入

VCC

第16脚

电源


2程序说明:

每当上升沿到来时,DS引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7’也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当STcp上升沿到来时,将会被锁存到锁存器里,并从Q1~7引脚输出[12]。

3.4整体电路图如图

8 整体电路图


图9为单片机系统部分,其中包含晶振电路和复位电路。

9  单片机部分

图10和图11分别是74HC154和74LS595芯片,负责本设计的译码电路部分。

     

10  74HC154                      11  74LS595


3.5实物图

              图12和图13分别是我制作的16*16点阵实物图的。

             

12  16*16正面点阵图                                                                      13  16*16背面点阵图

图14和图15分别是焊接电路版实物进行检测时的图片。

      

14  实物图                           15  实物图

测试方法:本设计采用的是直接接入电源的方法进行测试。当电源端口接入5V电源后,按下电路板上的开关键,就会直接显示“2016届电子毕业设计”字样,并且从左往右进行滚动显示,因为本设计中没有加入暂停程序,所以一经开启电源,无法暂停屏幕显示的字符,只能直接关闭,再开启电源时,又重新从左往右显示字符。



4 软件实现4.1 概述

整个设计的功能是由硬件电路配合软件来实现的,当硬件已经基本定型后,软件的功能也就基本定下来了。包括主程序和子程序。子程序是用来实现各种实质性的功能。每一个执行软件也即是一个小的功能模块。将多个模块独立实现构成一个整体模块。根据实质性功能的要求,合理地调用主程序和各子程序执行模块 [13]。

4.2系统程序方案设计

系统程序主要包括了:主程序、点阵显示驱动程序。

主程序:主要控制整个显示部分的初始化,使系统在LED显示屏上显示出各点亮度均匀、充足,可以显示稳定、无显影的数字和文字,文字显示可以移入移出。本设计的显示内容为“2016届电子毕业设计”实现从左向右移动显示。

下面是主程序部分:

程序中首先对各个变量进行初始化,并对74HC595进行初始化,当初始化过程结束后,开始显示处理。

//主函数

void main()

{

              uchar i=1,j=0;

              uchar X=0;                            //595c初始化

              Init595();                            //循环演示

              //字符的处理

              while(1)

              {

                            for(j=0;j<10;j++)//循环显示10次

                            {

                                          //送入16个位数据

                                          for(i=1;i<17;i++)

                                          {

                                                        WriteS(0xff,0xff);              //消影

                                                        Wei_154(i);

                                                        WriteS(HanZi[i*2-2+2*X],HanZi[i*2-1+2*X]);                            //显示内容

                                                        Wei_154(i);

                                                        delay(7);              //显示

                                                        G2=0;              //关闭

                                          }

                            }

                            X++;

                            if(X==17*16)

                                          X=0;

              }

}

在主函数中完成函数的调用和字符串的移动处理,所以能够看见可以移动字体显示。

点阵显示驱动程序

主要实现对74HC595和74HC154的驱动编写,已实现画面的动态刷新。


//74HC595初始化

void Init595()

{

              SI=1;

              SCK=0;

              RCK=0;

}

//向595中写一个字节

void Write_byte595(uchar temp)

{

              uchar i,data_=temp;

              G2=1;

              for(i=0;i<8;i++)//传值8位

              {

                            if(data_&0x01==0x01)//低位为1

                            {

                                          SI=1;

                            }

                            else                                                                      //低位为0

                            {

                                          SI=0;

                                          }

                                          //产生一个上升沿

                                          SCK=0;

                                          SCK=1;

                                          SCK=0;

                                          data_>>=1;

              }

              RCK=0;//显示数据

              RCK=1;

              RCK=0;

}

//595写入一行的字节

void WriteS(uchar data1,uchar data2)

{

              Write_byte595(data2);

                            Write_byte595(data1);





4.2.1主程序设计

              通过主程序对74hc595的初始化和对子程序的调用来实现单片屏幕的动态刷新完成到点阵显示屏的动态显示。

4.2.2子程序设计

              把每个功能程序以子程序的形式编写好, 当写主程序的时候, 只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和 I/O 冲突就可以。程序应该尽可能多使用调用指令替代跳转指令。因为跳转指令容易使程序难以看懂各程序段之间的结构关系。[14] 而调用指令则不同,调用指令能够使程序结构清晰,在修改或者是维护时都比较方便。将功能程序写成子程序的形式,除了方便调用之外,还有一个好处就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。

4.2.3 汉字显示

              在取模软件中编写一个要输入端汉字,如编写一个“电”字,如下所示:



0000 0000 0000 0000              0x00              0x00

0000 0001 0000 0000              0x00              0x80

0000 0001 0000 0000              0x00              0x80

0000 0001 0000 0000              0x00              0x80                                         

0001 1111 1111 0000              0x0f              0xf8                           

0001 0001 0001 0000              0x08              0x88

0001 0001 0001 0000              0x08              0x88

0001 1111 1111 0000              0x0f              0xf8

0001 0001 0001 0000              0x08              0x88

0001 0001 0001 0000              0x08              0x88

0001 1111 1111 0010              0x4f              0xf8

0000 0001 0000 0010              0x40              0x80

0000 0001 0000 0010              0x40              0x80

0000 0001 1111 1110              0xef              0x80

0000 0000 0000 0000              0x00              0x00



有4种取模方式,分别为:横向取模,字节正序;横向取模,字节倒序;纵向取模,字节正序;纵向取模,字节倒序。正序即为从左到右显示,倒序则相反。[15]

在这只列取一种显示方式,也即是该设计的显示方式,按照上图取模软件显示的汉字“电”按每一行扫描显示,从右到左读数,读出的“电”字代码为:0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x08,0x88,0x08,0x88,0x0F,0xF8,

0x08,0x88,0x08,0x88,0x4F,0xF8,0x40,0x80,0x40,0x80,0xEF,0x80,0x00,0x00,0x00,0x00.

4.2.4延时函数

              因为显示原理是视觉暂留原理需要有延时控制显示。延时函数如下:

//等待函数

void delay(uint z)

{

              uint x,y;

              for(x=z;x>0;x--)

                            for(y=7;y>0;y--);

}

4.2.4行选控制

              通过单片机IO口控制74HC154,可以实现5线控制16线的过程,如程序所示:


5 测试结果
硬件测试结果:在软件proteus中模拟仿真显示,本设计16*16LED显示屏能够很好地从右往左滚动显示若干汉字及数字。在proteus中画完图后运行仿真测试,LED显示屏能够往左显示如图13所示。
13  LED点阵显示屏

实物测试结果如图14所示:



14  实物测试图


总    结

              在本设计中STC89C52芯片负责控制整个电路,74HC595作为电路的行驱动,驱动点阵的行;以三极管和电阻作为列驱动,三极管主要取到开关的作用。74HC154作为列驱动,控制列扫描电路。实验中使用了高速单片机,使得显示屏稳定显示,达到题目的要求。

在本次毕业设计实验中,学习能力得到进一步提高,在完成硬件和软件设计的过程中遇到的苦难,通过查书籍和网上查找,并通过向同学请教稳固了知识。通过这次的毕业设计,不仅对理论的基本知识得到更深一步的巩固,还提高了自学能力和解决问题的能力,增强克服困难的决心。

              总之,我从这次论文设计中学到了很多。要善于借鉴,借鉴别人好的成果,转化为自己成功的动力。



完整的Word格式文档51黑下载地址(内含源码):

课设.docx (1.55 MB, 下载次数: 117)

回复

使用道具 举报

ID:219507 发表于 2019-11-4 16:30 | 显示全部楼层
感谢楼楼主
回复

使用道具 举报

ID:676293 发表于 2019-12-30 11:10 | 显示全部楼层
楼主有仿真的原理图和代码不
回复

使用道具 举报

ID:641607 发表于 2020-6-9 16:55 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

ID:778635 发表于 2020-6-16 12:47 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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