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

摘 要

本设计采用的是基于单片机的LED点阵显示屏设计,点阵显示屏的大小选择的是16x16的LED点阵,是由四个相同的
8x8的LED点阵连接组成。本章重点讲述了一种单片机的STC89C51芯片,作为控制器的16x16的LED点阵显示器,
STC89C51芯片具有高速、高功耗、超强抗静电、超强抗干扰、超低功耗等特点,此次选用该芯片来达到动态显示文字
的过程。该电子显示屏不仅可以显示各种文字、字符和各种图像等,而且在全屏模式下可以显示一个完整的汉字,包
括多种显示方式,通过延时函数和视觉暂留效果达到所需LED灯同时亮的状态,从而在LED点阵上显示一个完整的汉字
或者单色图像。设计使用了动态的显示方式,实现动态显示文本以及单一色彩图形,并进行文本的移入、移出、暂停
等显示方式。在文章中详尽阐述了LED点阵显示器的基本原理、显示模式、硬件电路设计、软件部分的设计,以及详
细的使用说明等。
  基于单片机的LED点阵显示屏设计使用的开发工具是Keil软件,是单片机编程用到的最常见的工具,采用的编程语
言是C语言,通过C语言编程控制各个显示点LED灯的阳极和阴极的电平,从而达到控制各个显示点LED灯的亮灭的效果,
LED灯的亮灭是通过延时函数来实现的,利用人的视觉暂留效果,从而达到动态显示一个文字的效果,通过对各个显示
点的移动,从而达到动态显示文字的效果。
关键字:STC89C51单片机,LED点阵显示屏,C语言基础

1.概述

在这个科学技术迅速发展的时代,人们对于科学技术的需求也越来越高,同时也为人们的生活提供了很多便
利。单片机作为当代科技的产物之一,也逐渐融入到我们生活的各个方面,例如,以前我们去车站接朋友都是拿纸张写上名字,银行叫号服务靠人工指引,公交车上有服务人员到站后提醒到站,现在,单片机的LED点阵显示屏解决
了这些问题,几乎很多地方都有单片机LED点阵显示屏的存在,它的出现代替了手写通知、人工服务的一些工作,为
我们的日常生活提供了极大的便利。将来,单片机将会涉及更多的领域。
1.1单片机的功能及应用
  单片机是指一个能够通过用编程语言(通常为C语言)操作的微处理器,但是一个独立的单片机芯片并不能独立参
与运行,单片机能参与独立运行的最小系统也需要复位电路、晶振电路共同组成,单片机可以依靠多个部分共同组成
一个电路,从而发挥出自身的强大功能。所以学习单片机的过程并不简单,首先,不仅要掌握单片机各种各样的芯片
的工作原理,尤其要注意单片机的调试方法和单片机外围电路的设计,以及模拟电路的知识。单片机应用于某种产品
上,就可以升级该产品。如智能型洗衣机。
  在这种数字化科技发展的年代,单片机也渐渐地渗入了我们生活的各个方面,应用也是越来越广泛了。航空器的
各类设备的电子控制系统,导弹的导航设备上的所有单片机的使用,计算机系统的通信和资料的传送,工业生产中自动
化的实时控制与信息处理,在高校、医疗等地方广泛使用的各类智能IC卡,在生活中常用的轿车的电子安全设备,家庭
常用的录像机、摄像机,家里日常生活中常用的自动洗衣机,小朋友玩耍的程控玩具、电子宠物等,以上所说的所有的
应用都有单片机的存在。综上所述,单片机已经是我们日常生活中不可缺少的一部分了,对于单片机的应用具体可归
类于以下几种:
(1)、工业方面的应用:通常单片机在工业方面主要用于测量各种数据,对数据进行采集。
(2)、常用检测仪器方面:实验中用到的感应电流表中也用到了单片机。
(3)、通信方面的应用:单片机在通信方面最常见的就是手机的使用、
(4)、武器装备方面的应用:虽然对导弹制造和原理不太清除,但是单片机确实应用到导弹方面
(5)、家用电器方面的应用:家用的很多电器都有单片机,例如,单片机应用于家用智能洗衣机。
1.2 LED点阵显示屏研究意义
  目前,由于社会市场经济发展得很快,对信息的传递规定也是更加严密,而对于LED点阵显示屏而言最大优势就是
重量轻,方便携带,能够根据客户需要设计LED点阵显示屏的大小,并且LED点阵显示屏可以传播大量信息,因此将
来随着社会经济的发展和信息的传递将会更加依赖于单片机。
  记得之前大家用的是传统霓虹灯广告牌,自单片机发展起来后,人们逐渐的用单片机的LED点阵显示屏代替了传
统的霓虹灯广告牌,现在店门口、学校、银行以及其它的一些公共区域都用单片机的LED点阵显示屏,人们对于LED
点阵显示屏的需求以及显示内容的千变万化将会越来越高,或许将来单片机的LED点阵显示屏不仅局限于广告牌的设
计等方面,相信,在未来的生活中,单片机的LED点阵显示屏将会扮演越来越重要的角色。
1.3 LED点阵显示屏的原理
  LED点阵显示屏其实就是利用多个发光二极管组成的,LED灯的色彩很丰富,本次设计用到的LED灯是红色的,除
了红色的LED灯,绿色、蓝色LED灯也是单片机中常见到的,并且LED灯的色彩足够满足现实生活中对色彩的要求。
LED是一种固态的半导体材料,这种半导体材料可以直接将电能转化为光能。制作LED等的半导体材料工作效率非常
高,将电能转换为光能的速度非常快,然后对所用到的材料进行不同方面的化学处理,就可以得到不同颜色的LED
灯。这种LED灯的体积很小、耗电量也很低,具有较长的使用寿命,而且亮度很高、热量很低,最重要的是LED灯环
保卫生,不会产生污染,也不存在有害的金属汞污染等严重的环境问题,符合社会发展对环境保护的要求,有利于
促进自然和谐和生态和谐,是一个不错的选择。
  本次LED点阵显示屏的设计原本选用的是8x8的LED点阵,由于一些复杂的文字并不能在LED点阵显示屏上清晰的
显示出来,因此,把点阵显示屏的大小换成了16x16,LED点阵模块的电路图如图(1)所示,通过电路图可以看出,
16x16的LED点阵其实就是通过四个8x8的LED点阵连接组成的,因此,无论点阵显示屏的大小是多少,它们的工作原
理都是相似的。接下来,我们以8x8的LED点阵为例,了解一下LED点阵显示屏的原理。首先,研究一下8x8的LED点阵
引脚图以及等效电路图,如图(2)和(3)所示。在显示屏上显示一个完整的汉字,LED灯的亮灭是通过控制各个显示
点上LED灯两端阴极和阳极的电平来实现的,通过延时函数,利用视觉暂留原理,人眼在观察一样事物时,光信号迅
速串入人的大脑中,并且这一现象不会立即消失,会经过一段时间后才会消失,就是我们常说的视觉暂留效果。只
要延时时间合适,就可以控制多个LED灯的同时亮,这样就可以在LED显示屏上显示一个完整的汉字或者图像。图(4)
为四个8x8的LED点阵连接成的16x16的LED点阵等效电路图。
在这里插入图片描述

图1 LED点阵显示屏在这里插入图片描述

图(2)8x8点阵显示屏的LED外观及引脚图在这里插入图片描述

图(3)8x8点阵显示屏的LED等效电路
在这里插入图片描述

图(4)四个8x8LED点阵连接的16x16LED点阵
1.4 本章小结
   本章节主要对单片机的功能和主要用途进行了介绍,就现在LED点阵显示屏的发展作出了简单的分析,通过查
阅资料,大体了解了LED显示屏的优势,并以8x8点阵为例,简单了解了LED点阵显示屏的原理。

2.系统整体设计方案

通过上面对单片机的大体了解以及LED点阵显示屏的优势分析,以及本次设计需要设计到的内容,本章详细的介
绍了本次设计需要实现的功能,并根据这些需要实现的功能,给出了LED点阵显示屏设计的整体方案。
2.1 需要实现的功能
  这个设计主要是关于用一个16x16点阵显示屏动态显示一段文字,和一般我们常见的广告屏差不多,本次设计要
求显示的汉字的各点亮度要一致、充足,显示屏显示出来的汉字要清晰、稳定。本次设计主要是文字的水平移动:
分为从左边移入右边移出以及从右边移入左边移出,切换方式是通过按键进行控制的;移动速度;通过两个按键控
制文字的移动速度,一个按键用来控制加速,另一个按键用来控制减速;文字的移动和暂停:通过一个按键用来使
移动的文字暂停移动,按下控制左右移动的按键可以使文字由暂停恢复移动状态;复位按键:由于本次设计上电后
文字默认是从右往左移动的,因此每当按下复位按键,无论文字显示方式是什么,都会变成上电后默认的初始状
态,即文字会变成从右往左移动。
2.2 显示系统设计
  通过对本次设计需求的了解,进行设计了一款基于STC89C51单片机的LED点阵显示屏的设计,本次设计的显示系
统可以分为四个部分,分别是行驱动电路、列驱动电路、显示屏模块以及STC89C51芯片。除此以外,还添加了按键
部分,通过按键控制LED显示屏上文字的移动方向、移动速度以及移动暂停的切换。行驱动电路如图2-2所示,列驱
动电路如图2-3所示。
在这里插入图片描述

图2-2 行驱动电路在这里插入图片描述

图2-3 列驱动电路
2.3 本章小结
   本章主要详细的介绍了本次设计需要实现的具体功能,简单介绍了一下显示系统部分的设计,并给出了显示系
统的电路图,为后面进行软件设计提供了方便。

3.系统硬件电路的设计

~~
  一个成功的设计中系统的硬件电路部分的设计对于后面的软件部分的设计来说非常重要,硬件部分的选择更是
决定了本次设计成败的关键。因此,在硬件电路设计上选择什么的芯片是非常重要的,这就要求可以根据设计的需
求尽量简单电路设计,这样做可以降低线与线之间的干扰问题,对于后期软件部分的设计也会相对简单一些,而且
还可以节约成本。
3.1 单片机系统及外围电路设计
3.1.1 单片机的选择
51单片机其实是一个泛称,我们常见的单片机分为AT89C51、AT89S51、STC89C51、STC89S51等等,而这些单片机我
们通称为51单片机,本次设计就用到了51单片机,具体应该选择哪一款单片机是本次设计过程中很重要的一步,在
不同的领域选择不同类型的单片机,找到最合适的单片机对接下来的设计会有很大的帮助,对于单片机的选择有下
面两种方案:
  方案一:第一种方案是选择传统的AT89C51单片机。AT89C51单片机最早是由ATMEL公司研发生产的,也是最先投
入使用的一款单片机,AT89C51单片机中有T0、T1两个16位的定时计数器,32个输入/输出口,其ROM为4K、RAM为
128Byte,片内置通用8位中央处理器以及Flash存储单元。本次设计用到了三个定时计数器,因此,对于本次设计来
说,AT89C51单片机并不是最好的选择。
  方案二:第二种方案是选用一款后来更新的STC89C51单片机。STC89C51单片机与传统的AT89C51单片机不同,这
款单片机中包含T0、T1、T2三个16位的定时计数器,存储空间也进行了升级,具有512字节数据存储空间,与
AT89C51单片机不同的是STC89C51单片机在AT89C51单片机的基础上还添加了很多新的模块。
  STC89C51单片机具有更高的稳定性和抗干扰能力,低功耗,更高速率,再综合上面一些性能的比较,本次设计
我选择了方案二,STC89C51单片机不仅具有传统单片机所具有的各种功能,还在传统单片机的基础上做了升级,具
有一些传统单片机没有的功能,添加了蓝牙模块、GUI人机实验、PZ模块等,可以说相当于一个片上系统了。
3.1.2 驱动模块的选择
  根据本次设计的具体要求,结合51单片机的选择,下面给出了列驱动模块以及行驱动模块芯片的选择,对选择
此模块给出了理由。
1、行驱动模块的选择:本次设计的行驱动芯片在进行多次对比之后还是选择了74HC138芯片,这种芯片是一款三个
通道用来输入以及八个通道用来输出的译码器,此芯片最大的优势是一款低功耗的译码器,其开发功能也很丰富,
74HC138目前已经广泛应用于各种电子产品上了。综合74HC138芯片的功能和特点,最终选择了用74HC138作为本次设计的行驱动部分。
   2、列驱动模块的选择:此次硬件设计中的列驱动部分选用的是74HC595芯片,74HC595芯片和74HC164芯片都是
单片机中常用的芯片之一,但相比较而言,74HC595芯片操作起来更简单一些,是一款低功耗、高速度的常用芯片,
可以说用于单片机接口对驱动LED显示来说会更加方便一些,具有三态输出锁存器,都是上升沿触发。74HC595芯片
最多只需要五根控制线,它们分别是SDA、SCLK、SLCK、CLR、EN,把SDA、SCLK和SLCK这三根线和单片机的输入/输
出口相连接,就可以实现对LED的控制。综合上面的特点,最终选择了74HC595芯片作为本次设计的列驱动模块。
3.1.3 单片机最小系统知识
  所谓的单片机最小系统,也可以说是单片机的最小应用系统,就是指由几个元器件组成就可以直接进行工作的
系统。其实无论是哪种类型的单片机,它们最小工作系统的组成是,都是分为三个部分,分别是单片机、晶振电路
和复位电路。本此设计的最小系统的电路图如图3-1-3所示。
图3-1-3 最小系统在这里插入图片描述

复位电路:
  复位电路的工作原理:复位电路是单片机系统中必不可少的,这次的设计也用到了复位电路,其复位电路在这
次设计的作用是无论LED点阵显示屏上文字的移动状态是什么样的,都会停止现在所运行的状态,回到上电后的默认
状态,也就是上电时默认的文字移动的方式。复位电路的分为方式可以分为两种,一种是高电平复位另外一种是低
电平复位。但无论是高电平复位还是低电平复位,其工作原理都是一样的,所谓高电平复位就是指正常的工作电压
是低电平,若接入高电平就会实现复位功能;低电平复位和高电平复位正好相反,低电平复位的正常工作电压是高
电平,若给接入一个低电平,此时就会实现复位功能,本次设计中用到的是高电平复位。但无论是高电平复位还是
低电平复位,其复位引脚的电平必须持续一定的时间,一般为2us,这样做的目的是检验按键是否是真的按下,若给
出的复位电平持续时间不够,复位电路不会作为反应,只有真正检测到并持续了一定的时间时,复位电路才会做出
反应。
3.2 按键模块
   根据本次设计的需要,除了复位按键以外,还添加了四个按键,这四个按键分别用来控制LED显示屏上文字的
显示模式,S2为减速键,每按下一次按键就可以使文字的移动速度减1个等级;S3是加速键,每当按下一次按键就可
以使文字的移动速度加一个等级,当加速和减速到一定程度时,再继续按下按键,文字的移动速度将不会再进行变
化;S4是暂停键,每当按键此按键,无论文字的显示方式是什么状态都会使文字立即进入暂停状态;S5按键是水平
移动方向切换键,上电时默认文字从右边移入左边移出,按下按键文字移动方向变成从左边移入右边移出,再按一
次按键,文字移动方向又会切换回之前的状态。
图3-2-1 按键模块在这里插入图片描述

需要我们特别注意的是在使用按键函数时,本次设计中要加上一个按键松开标志的函数,一定要去抖动,否则
当按键没有真正按下,只是轻触了一下就会检测到按键按下,与设计要求不符。
3.3 本章小结
   本章设计的主要方面是关于单片机的选择,在二个方案进行对比下,选择了一个更适合本次设计的单片机,介
绍了一下本次设计选用的列驱动芯片和行驱动芯片,简单的了解了一下单片机最小系统的知识,并对这次的按键模
块进行了详细的介绍。

4.系统软件部分的设计

在整个设计过程中最容易出错的地方就是软件部分的设计,由于需要实现的功能有很多,这就要求不能直接编
写程序,要对所有模块进行分类,要考虑很多因素以及程序设计过程中的细节问题。程序设计本身就是一个非常复
杂的过程,这就要求我们需要先把所有要实现的功能进行细化,分模块进行设计。
4.1 编程语言选择
  本次设计是基于单片机的LED点阵显示屏设计,本次设计用到的主要控制器件是STC89C51单片机,本次设计采用
的编程语言是C语言,和其它类型的编程语言相比,C语言是目前应用最广泛的编程语言,同时C语言也是比较简单的
编程语言,对于大多数学计算机专业的同学来说C语言是入门编程语言。C语言作为最常用的编程语言,自然存在很
多优势,例如,C语言的编程效率比较高,对于很多软件工程师而言,C语言的功能丰富多样,表达能力强,深受广
大软件工程师的喜爱;而对于大学生或者刚入门的编程爱好者而言,C语言具有书写简单、阅读性比较好的特点,学
习起来相对简单一些,比较容易入门。据了解,在最近的几年,C语言是世界上使用最广泛的编程语言。
  由于本次设主要是基于单片机的设计,再加上和其它编程语言相比,用C语言进行编程更方面设计、阅读和了
解,因此,本次毕业设计选用了C语言进行编程。
4.2系统程序设计
  本次设计的系统软件与传统的51单片机一样,都采用的是C语言编写,首先把整个设计进行模块化,分成几个部
分进行设计,这样就简化了软件设计的步骤。第一步我们先来分析一下本次设计我们总共要实现哪些功能,然后把
这些要实现的功能主要分为五个部分,分别是:74HC595输出部分、74HC138输出部分、定时计数器部分、按键函数
以及主函数。
  软件设计中我们用到了三个定时计数器,这也是我们选用STC89C51单片机的原因之一。除上述内容之外,最重
要的一个部分就是文字的显示部分,文字显示可以用传统的计算的方式获得也可以用取模软件对需要显示的文字就
行取模,本次设计直接用取模软件进行取模,字体库选用的是宋体,在文字取模软件的选择上其实有很多种,本次
设计是选用了PCtoLCD2002软件,就个人而言,这个软件是我接触最早的一款取模软件,这个软件的取模方式的功能还是相当不错的,同时,这也是我个人认为最好用的一款取模软件。取模结果如图4-2所示。在这里插入图片描述

图4-2 设计流程图
  无论是哪种类型的编程语言,在进行编程时最重要的一步就是对单片机进行初始化设置,其中初始化的内容包
括以下几个方面:中断优先级的设定,中断初始化,按键串口初始化以及延时函数的选择,各I/O口功能的设定等。
这里延时函数的选择非常重要,延时函数选择若存在问题将直接影响LED显示屏能够准确显示出所要求的文字,如果
延时函数选择过长,就会导致文字显示时变得断断续续,能够明显LED灯的闪烁,不能准确显示出想要表达的汉字;
如果延时函数选择的过短就会产生不能完整表达出一个汉字的效果。因此,在设计延时函数时也进行了一些尝试,
最终找到了最合适的延时时间。设计中用到了两个外部中断源和串行口中断,在定时器0的中断服务程序中先给出了
定时10ms中断一次,并给定时器地位和高位重装初始值,即50ms一个中断。

4.3显示程序的设计
  程序的显示分为左移显示、右移显示、暂停、加速、减速五种显示方式。而且左右移动动态显示方式就是利用
静态显示的延时和视觉暂离原理来达到移动的效果。
  上文我们已经对大体的程序设计有了了解,接下来我们看一下此次设计要到的左右移动的具体程序流程:根据
显示数据的存储原理,其实文字的移动就是一个把静态显示的文字按照人们的要求,把每个点同时往左或者往右进
行移动,每次移动一格,直到所有的文字都完成了移动,如此循环下去,就达到了在LED点阵显示屏上显示出一幅稳
定运行的画面了。
  对于文字的上下移动的流程和左右移动差不多,由于本次设计没有涉及上下移动功能,因此就不进行详细的介
绍了。其流程图如图4-2所示
12

图4-2 左右移/上下移
4.4主程序设计
   首先,主程序是软件设计过程中的核心部分,本次设计中的主程序先是进行初始化,在主程序先开启定时器
0,首先要先判断暂停标志,此处理的主要目的是为了防止暂停再启动方向会变。接下来就是各个按键按下的时候会
引起的文字各种显示方式的变化。
主程序流程图如图4-2所示。在这里插入图片描述

4-2 主程序流程图
4.5点阵移动函数
  点阵移动分为行驱动和列驱动,在行驱动函数先是循环8次移入数据,然后上沿触发移入数据,然后上升沿触发
使数据并行输出,列数据输出完成;接下来是列驱动函数,列驱动函数和行驱动函数差不多,特别注意的是要加消

影函数,否则会造成LED显示屏上会有重影的现象存在。
4.6本章小结
  本章主要介绍了软件设计的主要内容以及程序的分步编程,对于水平移动的原理进行了简单的介绍,把程序设
计的过程通过流程图更直观的表达出来,简单介绍了部分模块需要用到的函数。

5.调试及结果分析

5.1 系统调试
  在51单片机的设计过程中,软件调试和硬件调试是相辅相成的,首先,我们要先完成硬件部分的设计,在硬件
设计完成之后,接下来就是对硬件进行调试了,只有当硬件调试没有出现任何问题之后,我们才可以进行软件编程
,也就是所说的软件调试部分,当对编写的程序进行编译成功后,就可以把硬件和软件联合起来,进行联合调试,
只有当所有调试的结果都没有问题后就可以得出的如图5-1所示的一个实物图片。我们在完成实物后就要对其进行调
试,检查我们所得到的内容的是否和我们所需要的功能一样。
在这里插入图片描述

5-1 实物图
5.1.1 硬件调试
  所谓的硬件调试主要为调试硬件各部分的焊接是否存在问题,是否存在短路或者断路的情况存在,各个芯片的
输入输出电压是否能够符合本次设计的要求,然后就是检查各个硬件部分是否能够完成本次设计所需要实现的功
能。因此,我把硬件调试按照下面给出的流程进行调试:
  (1) 首先,当我们拿到单片机开发板以后,要先对开发板中所有焊接点进行检测,检测一下每一个器件之间的
焊接是否存在问题,以及是否存在多个电路焊接到一起的现象存在。通常在电路的检测中常用万用表,逐个测试相
邻两个焊接点,检测是否存在短路的现象。
  (2) 若上面检查合格之后,我们在对开发板进行上电的方式进行测试,首先,开发板在和电脑的串口进行连接
后,若电源开关处于关闭状态,单片机上的接口处有一个电源开关,当我们连接电脑的串口,按下电源开关,给开
发板通电一段时间后,电路板若有烧焦的味道出现或者冒烟的状态出现,就代表电路有短路的现象存在,反之,则
代表电路板没有出现短路的情况,可以正常使用。
  (3)第三步就是通过测试串口系统看通信功能是否能够实现。这个主要用来检查电脑和单片机连接的串口是否能
够正常使用,若电脑接口能够被正常使用,就代表程序能够被正常下载到开发板上,反之,就证明电脑的接口不能
被正常使用,此时就需要我们针对出现的问题进行验证,看问题是出在开发板上还是电脑的接口上。
  在本次毕业设计中最重要的部分就是硬件中的LED点阵显示屏的显示功能,而LED点阵显示屏能否可以正常显
示,这就需要结合软件配合才能完成调试,所以在硬件调试部分我们只对单片机的各种芯片的连接情况以及单片机
和电脑的接口是否能够被正常使用,LED点阵显示屏能够可以正常显示出我们所需要的内容,就需要我们对软件和硬
件进行联合调试才能完成。开发板实物图如图5-1所示
在这里插入图片描述

图5-1 开发板实物图
5.1.2 软件调试
  前面我们已经对硬件部分进行了相应的调试,接下来最重要的就是对于软件部分的调试了,在软件的调试过程
中最主要就是软件编译部分和各个功能块能够正常工作的测试,在进行软件调试之前,我们首要要用KELL软件对所
有的程序进行编译,编译成功后会自动生成一个.hex文件(在程序下载中所需要下载的就是.hex文件),之后我们
就可以对要实现的功能进行调试了。在软件调试过程中,可以采用分模块调试,先进行部分程序进行编程,每当编
程完一个模块就先编译一次,若在编译过程中出现问题,就说明是在编写该模块时出现了错误,这样做的目的是更
清楚的找到出现问题的地方,可以提高软件编程的效率,并且可以节约找错误的时间,提高时间利用率。
需要主要的是在进行编程之前要先把.c文件导入进去,否则在编译程序之后,可能不会自动生成一个.hex文件。
5.1.3 系统联合调试
  对单片机进行了硬件调试以及通过进行了软件调试之后,排除了硬件存在短路或者断路问题和串口功能是否可
以成功实现。除此以外为了验证单片机功能的正确性。对软硬件进行了联合调试,具体方法如下:
  (1)、首先选择一行或者一列,编写一个程序看是否能够实现一行或者一列逐个点亮的功能,再和单片机开发
板联合起来运行。这样可以有效检验LED点阵显示屏的各个灯是否有损坏和各个元器件是否能够正常运行。调试结果
表明LED点阵显示屏的各个灯并没有被烧坏,其他的元器件也能够正常运行。
  (2)、将各个能够动态显示的程序结合硬件电路进行调试,看是否能够成功实现想要得到的结果。系统运行时
显示结果如图5-1所示,显示的文字清晰,亮度比较均匀,各种要求达到的动态显示都能够达到想要的结果。
16

如图 5-1
5.2 调试结果分析
对调试结果进行分析总结,得出以下原因及修改办法。
  (1)、刚开始调试时,显示的文字不够清晰,LED灯一闪一闪的,每一行或者一列的LED灯能够明显看出LED灯
的闪烁,LED显示屏上显示的文字比较模糊,不能清晰、稳定的显示出一个完整的汉字。对于造成这一现象的原因进
行了分析,得出的总结主要有两个:一是延时函数的延时时间比较长;二是工作电压不稳定。对此选择一个相对容
易实现的方法先对延时函数进行更改,缩短延时函数后,LED点阵显示屏成功达到了要求,就排除了工作电压不稳定
的情况。
  (2)、对于按键控制文字移动方式的调试过程中,刚开始调试时,文字改变移动方向的同时,LED显示屏上显
示的文字也出现了问题,当文字从右往左移动切换为从左边往右边移动时,文字会出现重影,分析这一现象出现的
原因是没有进行消影,当后面加上消影函数之后,文字的重影现象就消失了。
经过各方面的调试,以及就遇到的各种问题,进行查阅并对此给出解决方法,最终,通过各方面的努力,终于完成
了本次设计中所要求的文字的水平移动显示以及文字移动速度的控制等要求。
5.3 本章小结
本章主要介绍了在设计过程中调试的过程,对设计过程中遇到的问题进行了分析并给出了具体的解决方案。
总结
  本次是基于单片机的LED点阵显示屏设计,在和其它点阵显示屏进行对比之后,最终选择了16x16的LED点阵显示
屏。在进行调试之后,可以实现按键控制文字水平移动方向的改变的功能,按键控制显示的文字移动速度等要实现
的功能,以及对于如何进行行信号控制以及列信号控制的驱动问题进行了研究。简单的介绍了此次使用的单片机的
硬件电路的原理以及各个芯片之间的连接方法、程序设计流程,经过对硬件调试和软件的调试后可以正常显示文
字,并且可动态显示。

总结

本次设计工作的问题,主要分为以下几个方面:
  一、在做一个设计之前要有足够的理论基础。所以,在开始进行软硬件设计之前要先查阅一些有关单片机知识
的资料,只有当我们对LED点阵显示屏的工作原理有了一定的了解,只有理解LED灯发光原理才能更好的进行本次设
计工作,对于LED点阵显示屏的移动原理的掌握也非常重要,只有理解了这些原理,才能通过软件编程实现点阵的移
动,在本次设计开始之前,我们首先要清楚地了解单片机的LED点阵显示屏与其他类型的显示工具进行比较,了解
LED点阵显示屏有哪些优势,对接下来的设计进行具体的分工,明确接下来的设计工作。并且对常用的几种单片机的
芯片功能及作用进行查阅,研究STC89C51芯片的优势及工作原理,对接下来的单片机软件部分的设计提供了思路。
  二、本次设计中的要求就是在LED点阵显示屏上可以清晰稳定的显示出文字,并且可以满足文字的多种动态显示
模式。
  三、本文给出了具体的硬件设计电路方案以及硬件部分电路图的设计,软件程序的主要流程图和汇编语言(C语言)程序设计与编译调试等方面。
  四、这次设计的过程中不仅对单片机的知识有了一定的了解,还学会了一些常用画图软件的使用,以前画电路
图都是用仿真软件,现在对于其它的画图软件也有了一定的了解,画图软件对学计算机专业的同学来说是一个很方
便的软件,能够大大提升画图的速度。除此以外,以前对单片机有过一点了解,此次设计让我对单片机有了新的认
识,对于单片机在各方面的应用也有了更深的了解。
  五、本次设计让我收获最大的是让我更加明白了实践的重要性,只有理论知识而不进行实践,再充分的理论知
识也只是纸张谈兵,充分的理论知识和实践相结合才能更好的完成此次设计,这将是本次设计最大的收获。
  六、存在问题:本次设计存在的最大的问题就是想要利用仿真软件代替实物,没有考虑到仿真软件对于硬件设
计方面还是存在很大的不同,仿真软件是一个理想的环境,不存在实际电路中出现的各种连接问题,以及相邻器件
间的干扰等问题。本此设计也更加证明了做实物更能体现对于单片机的工作原理是否真正的了解。
  总结这次设计相对而言还是比较成功,能够达到想要的结果,学到了很多关于单片机的新的知识,提高了动手
能力,完成了此次设计的任务。有点遗憾的是时间有限,没有把想实现的内容全部实现出来,不能对单片机的其他
模块知识进行更加深入的学习。希望以后有时间能够对本次设计添加更多的功能,例如能够实现按键控制LED点阵的
竖直移动的方向,串口控制等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值