欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    16*16点阵图文显示屏 毕业论文.doc

    • 资源ID:25847       资源大小:1.09MB        全文页数:32页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    16*16点阵图文显示屏 毕业论文.doc

    1 1616 点阵图文显示屏 第一章 绪 论 1.1 设计课题背景知识 单片微型计算机(single chip microcomputer)简称单片机,它是为各类专用控制器而设 计的通用或专用微型计算机系统,高密度集成了普通计算机微处理器,一定容量的 RAM 和 ROM 以及输入 /输出接口,定时器等电路于一块芯片上构成的。 单片机自 20 世纪 70 年代问世以来,以极其高的性价比受到人们的重视和关注,所以应 用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价 格低廉,可靠性高,灵活性好,开发较为容易。在现代工业控制和一些智能化仪器仪表中, 越来越多的场所需要用点阵图形显示器显示汉字,汉字显示屏也广泛应用到汽车报站器,广 告屏等。所以研究 LED 显示有实用的意义。 LED 显示屏分为图文显示屏和视频显示屏,均由 LED 矩阵块组成。图文显示屏可与计 算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并 茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、 电视、VCD 节目以及现场实况。LED 显示屏显示画面色彩鲜艳,立体感强,静如油画,动 如电影,广泛应用于交通运输、车站、商场、医院、宾馆、证券市场、工业企业管理等公共 场所。 LED 显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用 于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。 LED 之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些 优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。 LED 的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高 的发光均匀性,可靠性、全色化方向发展。 现代 LED 的发展很快,很多研究领域非常已经深刻,实际情况是:很多相关的知识已 经远远超出我们在校学生的能力范围,所以在此只是简单的研究一下用单片机驱动的 LED 显示移动的汉字。目的有三:一是亲手制作一个简单实用的显示文字的 LED 点阵;二是通 过制作 LED 点阵增强对 LED 点阵的了解和应用,以及复习巩固单片机知识;三是通过团队 合作,增强团队合作的意识,为以后走向社会工作打下基础,并且增强了同学之间的友谊。 2 汉字显示方式是先根据所需要的汉字提取汉字点阵(如 16×16 点阵),将点阵文件存 入 ROM,形成新的汉字编码;而在使用时则需要先根据新的汉字编码组成语句,再由 MCU 根据新编码提取相应的点阵进行汉字显示。不论显示图形还是文字,都是控制与组成这些图 形或文字的各个点所在位置相对应的 LED 器件发光。通常事先把需要显示的图形文字转换 成点阵图形,在按照显示控制的要求以一定的格式形成显示数据。对于只控制通断的图文显 示屏来说,每个 LED 发光器件占据数据中的 1 位( 1bit),在需要该 LE D 器件发光的数据 中相应的位填 1,否则填 0。当然,根据控制电路的安排,相反的定义同样时可行的。这样 依照所需显示的图形文字,按显示屏的各行各列逐点填写显示数据,就可以构成一个显示数 据文件。显示图形的数据文件,其格式相对自由,只要能够满足显示控制的要求即可。文字 的点阵格式比较规范,可以采用现行计算机通用的字库字模。组成一个字的点阵,其大小也 可以有 16×16、24×24 、32×32、48×48 等不同规格。 用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计 好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要 变化的信息,是非常有效的。 图文显示屏的颜色,有单色、双色、和多色几种。最常用的是单色图文屏。单色屏多使 用红色或橘红色或橙色 LED 点阵单元。双色图文屏和多色图文屏,在 LED 点阵的每一个 “点”上布置有两个或多个不同颜色的 LED 发光器件。换句话说,对应于每种颜色都有自己 的显示矩阵。显示的时候,各颜色的显示点阵是分开控制的。事先设计好各种颜色的显示数 据,显示时分别送到各自的显示点阵,即可实现预期效果。每一种颜色的控制方法和单色的 完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。 为了吸引观众增强显示效果,可以有多种显示模式。最简单的显示模式是静态显示。与 静态显示模式相对应,就有各种动态显示模式,它们所显示的图文都是能够动的。按照图文 运动的特点又可以分为闪烁、平移、旋转、缩放等多种显示模式。产生不同显示模式的方法, 并不意味着一定要重新编写显示数据,可以通过一定的算法从原来的显示数据直接生成。例 如,按顺序调整行号,可以使显示图文产生上下平移;而顺序调整列显示数据的位置,就可 以达到左右平移的目的;刷新的时间控制,要考虑运动图形文字的显示效果。刷新太慢,动 感不显著;刷新太快了,中间过程看不清。一般刷新周期可控制在几十毫秒范围之内。 本次毕业设计中,由本人和钟桂,张维平组成一组,我负责硬件部分电路图的设计和软 件部分程序的设计和调试,目的是应用简单方便的电路连接和程序完成汉字的换色与移动。 钟桂负责用设计好的点阵电路制作 PCB 电路板,包括完成 PCB 板的制作,张维平负责制作 另外一块在面包板上连的点阵线连板子的焊接与调试,各人的分工不同只是工作侧重点的不 同,大家是在一起互相学习互相帮助,共同完成设计任务。 3 第二章 硬件设计 2.1 设计框图及介绍 LED 点阵总体框图如图 1.1 所示,点阵电路大体上可以分成微机本身的硬件、显示驱 动电路、控制信号电路三部分。控制电路部分包括一个 51CUP 和一些外围电路。在整个电 路当中此控制电路部分相当于一个上位机,它负责控制整个电路以及相应的程序的运行、与 PC 机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个 驱动电路。由于两部分的电路在制板时可以放到一起,所以可以将其字库放到控制电路部分 使用串行通讯方式来与屏体电路部分进行数据和命令的传送。 此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列 驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该 行与电源的一端接通)。另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列 与电源的另一端接通。接通的列,就在该行该列点燃相应的 LED;未接通的列所对应的 LED 熄灭。可通过扫描输出口的控制实现颜色的转换。 图 2.1 点阵显示的总体框图 2.2 51 系列单片机简介 单片机(Microcontroller,又称微处理器)是在一块硅片上集成了各种部件的微型机, 这些部件包括中央处理器 CPU、数据存储器 RAM、程序存储器 ROM、定时器/计数器和多 种 I/O 接口电路。 4 8051 单片机的基本结构见图 2.2。 图 2.2 8051 单片机的基本结构 8051 是 MCS-51 系列单片机的一个产品。MCS-51 系列单片机是 Intel 公司推出的通用 型单片机,8051 单片机系列指的是 MCS-51 系列和其他公司的 8051 衍生产品。这些衍生品 是在基本型基础上增强了各种功能的产品。这些产品给 8 位单片机注入了新的活力,给它的 开发应用开拓了更广泛的前景。 8051 系列的内部结构可以划分为 CPU、存储器、并行口、串行口、定时器/计数器、中 断逻辑几部分。 (1)中央处理器 8051 的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR) 。 算术逻辑单元 ALU 能对数据进行加、减、乘、除等算术运算;“与” 、 “或” 、 “异或”等逻 辑运算以及位操作运算。 ALU 只能进行运算,运算的操作数可以事先存放到累加器 ACC 或寄存器 TMP 中,运算结 果可以送回 ACC 或通用寄存器或存储单元中,累加器 ACC 也可以写为 A。B 寄存器在乘法 指令中用来存放一个乘数,在除法指令中用来存放除数,运算后 B 中为部分运算结果。 程序状态字 PSW 是个 8 位寄存器,用来寄存本次运算的特征信息,用到其中七位。PSW 的 格式如下所示,其各位的含义是: CY:进位标志。有进位/错位时 CY=1,否则 CY=0。 AC:半进位标志。当 D3 位向 D4 位产生进位/错位时,AC=1,否则 AC=0,常用于十 进制调整运算中。 F0:用户可设定的标志位,可置位/复位,也可供测试。 5 RS1、RS0 :四个通用寄存器组选择位,该两位的四种组合状态用来选择 03 寄存器组。 。 OV:溢出标志。当带符号数运算结果超出-128+127 范围时 OV=1,否则 OV=0。当无 符号数乘法结果超过 255 时,或当无符号数除法的除数为 0 时 OV=1,否则 OV=0。 P:奇偶校验标志。每条指令执行完,若 A 中 1 的个数为奇数时 P=1,否则 P=0,即偶 校验方式。 控制逻辑主要包括定时和控制逻辑、指令寄存器 、译码器以及地址指针 DPTR 和程序 寄存器 PC 等。 单片机是程序控制式计算机,即它的运行过程是在程序控制下逐条执行程序指令的过程: 从程序存储器中取出指令送指令存储器 IR,然后指令译码器 ID 进行译码,译码产生一系列 符合定时要求的微操作信号,用以控制单片机的各部分动作。8051 的控制器在单片机内部 协调各功能部件之间的数据传送、数据运算等操作,并对单片机发出若干控制信息。这些控 制信息的使用专门的控制线,诸如 PSEN、ALE、 EA 以及 RST,也有一些是和 P3 口的某些 端子合用,如 WR 和 RD 就是 P3.6 和 P3.7,他们的具体功能在介绍 8051 引脚是一起叙述。 (2)存储器组织 8051 单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻 址机构和寻址方式,这种结构称为哈佛结构单片机。这种结构与通用微机的存储器结构不同, 一般微机只有一个存储器逻辑空间,可随意安排 ROM 或 RAM,访存时用同一种指令,这 种结构称为普林斯顿型。 8051 单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据 存储器和片外数据存储器。 8051 片内有 256K 数据存储器 RAM 和 4KB 的程序存储器 ROM。除此之外,还可以在 片外扩展 RAM 和 ROM,并且各有 64KB 的寻址范围。也就是最多可以在外部扩展 2*64KB 存储器。 8051 的存储器组织结构如图 2.3 所示。 图 2-3 8051 存储器组织结构 6 64K 字节的程序存储器(ROM)空间中,有 4K 字节地址区对于片内 ROM 和片外 ROM 是公用的,这 4K 字节地址是 0000HFFFH。而 1000HFFFFH 地址区为外部 ROM 专 用。CPU 的控制器专门提供一个控制信号 EA 用来区分内部 ROM 和外部 ROM 的公用地址 区:当 EA 接高电平时,单片机从片内 ROM 的 4K 字节存储器区取指令,而当指令地址超 过 0FFFH 后,就自动的转向片外 ROM 取指令。当 EA 接低电平时,CPU 只从片外 ROM 取 指令。 程序存储器的某些单元是保留给系统使用的:0000H0002H 单元是所有执行程序的入 口地址,复位以后,CPU 总是丛 0000H 单元开始执行程序。0003H002AH 单元均匀地分为 五段,用做五个中断服务程序的入口。用户程序不应进入上述区域。 8051 的 RAM 虽然字节数不很多,但却起着十分重要的作用。256 个字节被分为两个区 域:00H7FH 时真正的 RAM 区,可以读写各种数据。而 80HFFH 是专门用于特殊功能寄 存器(SFR )的区域。对于 8051 安排了 21 个特殊功能寄存器,每个寄存器为 8 位,所以实 际上 128 个字节并没有全部利用。 内部 RAM 的各个单元,都可以通过直接地址来寻找,对于工作寄存器,则一般都直接 用 R0R7,对特殊功能寄存器,也是直接使用其名字较为方便。8051 内部特殊功能寄存器 都是可以位寻址的,并可用“寄存器名.位”来表示,如 ACC.0,B.7 等。 2.3 单片机最小应用系统电路设计 C130P C230P Y112M R1 R310K C3 10u S1VCC P1.0P1.1 P1.2P1.3 S2 S3 S4 P101 P112 P123 P134 P145 P156 P167 P178 RESET9 P30/RXD10 P31/TXD11 P3212 P3313 P3414 P3515 P3616 P3717 X218 X119 Vss20 P20 21P21 22P22 23 P23 24P24 25P25 26 P26 27P27 28 PSEN 29 ALE/P 30 EA 31 P07 32P06 33P05 34 P04 35P03 36P02 37 P01 38P00 39VCC 40 U1 AT89C51 VCC P2.7P2.6 P2.5P2.4 P0.1P0.2 P0.3P0.4P1.4P1.5 P1.6P1.7 P2.0P2.1 P2.2 VCC 4.7K*4 图 2.4 单片机最小应用系统原理图 注: 该最小系统由按键复位 RESET 电路、晶体振荡电路以及 I/O 接口电路组成。 复位的实现通常用 2 种方式: 开机上电复位和外部手动复位,本设计用的是外部手动 7 复位。电路图 2.5 如下: 图 2.5 单片机复位图 AT89C51 工作电压 VCC=5V,其 EA 引脚需接高电平,5V 电源电路如图 2.6 所示。 T1 AC 1 V+ 2 AC 3 V-4 D6 C4 100u/16V C6 100u/16v VCC Vin1 GN D 3 +5V 2 U2 7805C5104 C7104 图 2.6 单片机电源原理图 注: 该电源电路主要模块为 IC7805,它能输出稳定的 5V 电源,图中整流桥是将市电转变 为直流电,电容起到虑波作用由 7805 的 OUT 引脚输出 5V 电压。 2.4 LED 点阵介绍 8×8 单色点阵共需要 64 个发光二极管组成,且每个二极管是放置在行线与列线的叉点 上。本设计是一种实用的汉字显示屏的制作,制作的是单色点阵。直接使用了 51 单片机实 验箱 256 个高亮度发光管,组成了 16 行 16 列的发光点阵。实际使用时可以根据这个原理自 行扩充显示的字数。 对比下面的 8×8 单色点阵和 8×8 双色点阵可以看出,其实 8×8 双色点阵就是两块 8×8 单色点阵组合在一起的。要实现用两种颜色显示,只要在电路的设计中适当的连线就 可以了。 8×8 单色和双色点阵 LED 结构分别如下图 2.8 和 2.9 所示。 8 图 2.7 8×8 点阵外观及引脚图 图 2.8 8×8 单色点阵内部图 图 2.9 8×8 双色点阵内部图 2.5 LED 显示方式 汉字显示屏用于显示汉字、字符及图像信息,在公共汽车、银行、医院及户外广告等 地方都有广泛的应用。下面是简单的汉字显示屏的制作,由单片机控制汉字的显示内容。为 了降低成本,使用了四块 8×8 的 LED 点阵发光管的模块,组成了一个 16×16 的 LED 点阵 显示屏,如图 2.10 所示。在这里仅做了四个汉字的显示,在实际的使用中可以根据这个原 理自行的扩展显示的汉字,下面是介绍汉字显示的原理。 图 2.10 四块 8×8 的 LED 点阵组成 16×16 的 LED 点阵 LED 驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路 就可以实现多行的同名列共用一套列驱动器。以 16×16 点阵为例,把所有同一行的发光管 的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法) ,先送出对应第 1 行发光管亮灭的数据并锁存,然后选通第 1 行使其燃亮一定的时间,然后熄灭;再送出第 2 行的数据并锁存,然后选通第 2 行使其燃亮相同的时间,然后熄灭;.第 16 行之后,又重 新燃亮第 1 行,反复轮回。当这样轮回的速度足够快(每秒 24 次以上) ,由于人眼的视觉暂 9 留现象,就能看到显示屏上稳定的图形。该方法能驱动较多的 LED,控制方式较灵活,而 且节省单片机的资源。 显示数据传输采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位 传往列驱动器,在硬件方面无疑是十分经济的。但串行传输过程较长,数据按顺序一位一位 地输出给列驱动器,只有当一行的各列数据都已传输到位之后,这一行的各列才能并行地进 行显示。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下, 留给行显示的时间就太少了,以致影响到 LED 的亮度。 采用串行传输中列数据准备和列数据显示的时间矛盾,可以采用重叠处理的方法。即在 显示本行各列数据的同时,传送下一行的列数据。为了达到重叠处理的目的,列数据的显示 就需要有锁存功能。对于列数据准备来说,它应能实现串入并出的移位功能。这样,本行已 准备好的数据打入并行锁存器进行显示时,串行移位寄存器就可以准备下一行的列数据,而 不会影响本行的显示。 LED 点阵显示模块进行的方法有两种: (1)水平方向(X 方向)扫描,即逐列扫描的方式(简称列扫描方式):此时用一个 P 口输出列码决定哪一列能亮(相当于位码) ,用另一个 P 口输出行码(列数据) ,决定该行 上那哪个 LED 亮(相当于段码) 。能亮的列从左到右扫描完 16 列(相当于位码循环移动 16 次)即显示出一个完整的图像。 (2)竖直方向(Y 方向)扫描,即逐行扫描方式(简称行扫描方式):此时用一个 P 口输出决定哪一行能亮(相当于位码) ,另一个 P 口输出列码(行数据,行数据为将列数据 的点阵旋转 90 度的数据)决定该行上哪些 LED 灯亮(相当于段码) 。能亮的行从上向下扫 描完 16 行(相当于位码循环移位 16 次)即显示一帧完整的图像。 本设计应用的是第一种的扫描方法,即水平方向(X 方向)扫描。 每一个字由 16 行 16 列的点阵形成显示,即每个字均由 256 个点阵来表示,我们可以把 每一个点理解为一个像素。一般我们使用的 16×16 的点阵宋体字库,即所谓的 16×16,是 每一个汉字在纵横各 16 点的区域内显示的。汉字库从该位置起的 32 字节信息记录了该字的 字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在 256 像素范围内的任何图形。 我们以水平方向(x 方向)扫描显示汉字的“江”为例来说明其扫描原理,每一个字由 16 行 16 列的点阵组成显示,如图下的,如果用 8 位的 AT89S51 的单片机来控制,由于单片 机的总线为 8 位,一个字需要拆分成两个部分。一般我们把它分解成上部分和下部分,上部 分由 8*16 的点阵组成,下部分也由 8*16 的点阵组成。在本例中单片机首先显示的是左上角 的第一列的部分,即第 0 列的 P00P07 口。方向为 P00 到 P07,显示汉字“江”的时候, P00 到 P04 都是灭的,P05 亮,即二进制 00001000,转换为 16 进制为 08H,如图 2.11 所示。 上半部分第一列完成之后,继续扫描下半部分的第一列,为了接线的方便,我们仍设 10 计成由上往下的扫描方式,即从 P27 向 P20 方向扫描,从上图可以看到,这一列所有的都不 亮,所以代码为 00000000,16 进制为 00H,然后单片机转向上半部的第二列,除了 P05 亮, 其他的都不亮,即为 00000100,16 进制为 04H,这一列扫描完成之后继续进行下半部分的 扫描,除了 P21 亮,其他的为不亮,为二进制 00100000,即 16 进制 20H。 按照这个方法,继续进行下面的扫描,一共扫描 32 个 8 位,可以得出汉字“江”的扫 描代码为 :08H,20H,06H,20H,80H,7EH,63H,80H 0CH,04H,00H,04H,20H,04H,20H,04H 20H,04H,3FH,FCH,20H,04H,20H,04H 20H,04H,20H,04H,00H,04H,00H,00H 图 2.11 点阵显示原理图 由这个原理可以看到,无论显示何种字体或图像,都可以用这种方法来分析出它的扫 描代码从而显示在屏幕上。了解汉字的显示原理之后,那如何得到汉字的字模信息呢?现在 有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库,如图 2.12 所示的为一种字模生成软件,软件打开后输入汉字,点击“检取”后,十六进制数据汉字代 码即可以自动生成,把我们需要的竖排数据复制到我们的程序即可。 11 图 2.12 汉字字模生成软件 2.6 点阵的移动 以下以 16×16 点阵为例介绍点阵的移动。要显示一个字符,该字符的点阵数据可以列 向(纵向)16 点组字,又可以行向(横向)16 点组字。无论哪一种组字方法,都既可以显 示字符的水平方向的移动,又可以显示竖直方向的移动。 1显示字符的左右移动 (1)列扫描方式左移动:列向组字显示字符水平方向的移动(左滚动) 在这里有两个方法: 方法 1:延长数组法。将原来字符点阵数组的 16 个数据重复一遍延长,点阵数组的数 据个数为 32 个。每扫描仪帧取 8 个数据显示,下一帧取数要在数组中后移一个数取数。循 环一遍扫 16 帧。可以假想有两块 16×16 的点阵模块(共 32 帧)水平平行排列,用一个恰 好能罩住 8 列点阵的中空方框去罩这个点阵,第 1(第 1 帧)罩住最左边数起第一列开始的 16 列,就扫描显示这 16 列;第 2 次(第 2 帧)使方框右移一列,罩住做左边数起第 2 列开 始的 16 列,就扫描显示这 16 列;······;这样每扫描完一帧使方框右移一列,最后 第 16 次(第 16 帧)时,罩住左边数起的第 16 列开始的 16 列,就扫描显示这 16 列。如此 完成 16 帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现 显示字符沿水平向左移动的图像,如图 2.13 所示。 12 图 2.13 方框图法左右移动示意图 因为是列向组字(列扫描方式,点阵数据为行码,上边为地位下面为高位) ,希望显示 移动的一个字符,第 1 次扫描从行码的点阵数组中取第 116 个数据,送行码输出口,对应 于这 8 个数据,同时用列码输出口输出列码,分别控制第 116 列。扫描完前 16 个数据之后, 第 2 次扫描从点阵数组中取第 214 个数据(第 17 个数据与地 1 个数据同) ,送行码输出口, 对应于这 16 个数据,同时用列码输出口输出列码,仍分别控制扫地 116 列。第 3 次扫描从 点阵数组中取第 318 个数据(第 18 个数据码与地 2 个数据码相同)扫描······;如 此实现字符向左移动。 以上完成一个图形移动的方法,也可以看成是移动 16 个不同的字形。如图 2.13 所示, 首先扫描第一个字型,同样是 16 行,16 次扫描,16 次显示;完成一个字型的扫描以后,再 扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型······依此类推, 即可产生该文字的左移的感觉。 图 2.13 字形法左右移动示意图 假设如果原本某个汉字的字型(第一个字型) ,其编码为: 00H,10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H; 13 第二个字型的编码为: 10H,20H,30H,40H,50H,60H,70H,80H,90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H, 00H, 也就是把第一个字型的编码中,第 1 行显示数据,变为第 2 行显示数据;第 2 行显示数据, 变成第 3 行显示数据;第 3 行显示数据,变成第 4 行显示数据;第 4 行显示数据,变成第 5 行显示数据······以此类推。 当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。 同样的,当第二个字型扫描完成之后,就进行这样的调整动作,以产生第三个字型的编码。 这个调整动作时先将 16 个编码根据序填入存储器,例如第 1 行编码存入 20H,第二行编码存 入 21H······要进行左移调整时,则先将 20H 地址的数据转移到 36H 地址,再将 21 H 地址的数据转移到 20 H 地址,将 22 H 地址的数据转移到 21 H 地址,将 23 H 地址的数据 转移到 22 H 地址,将 24 H 地址的数据转移到 23 H 地址,将 25 H 地址的数据转移到 24 H 地址,将 26 H 地址的数据转移到 25 H 地址,将 27 H 地址的数据转移到 26 H 地址,将 28 H 地址的数据转移到 27H 地址······ 方法 2:数组数据“循环左移法” (适合用 C 语言编写,在此仅作了解) 。注意,不 是把二进制数据按位循环左移,而是把数组中的数据按其在数组中的位置循环左移。具体的 方法入下。 原字符点阵数组中的 16 个数据不延长,但下一帧取的 16 个数据,是把上一帧的 16 个 数据的位置(先后顺序) “循环左移”一次,即原来第 2 个移到第 1 个,原来第 3 个移到第 2 个······原来第 1 个移到第 16 个。实现数组数据循环左移的方法有:第一,遍一 个“数组数据循环左移子程序” ,该子程序每执行一次可把数组中的额数据循环左移一次, 主程序中先调用一次该子程序,时数组中的数据循环左移这一次,然后再从数组中取数据显 示。当数组中的额数据个数较多时,片内 RAM 将不够大,必须将数组定义在片外 RAM 中。 第二,不用子程序,而是用变量判断控制实现数组数据的循环左移。 (2) 行扫描方式左移:行向组字显示字符水平方向的左移。如果是行向组字(行扫描方 式,点阵数据为列码,左边为敌位右边为高位) ,希望显示向左移动的一个字符,第 1 次扫 描从列码的点阵数组中取第 116 个数据,送到列码输出口,对应的 8 个数据,同时用行码 输出口输出行码,分别控制扫描第 116 行。扫描完成这 16 个数据之后,第 2 次扫描的第 16 个数据,应将原来第 1 次扫描的 16 列码每一个都循环右移一位(如果是显示右移则应循 环左移) ,再进行扫描。如此,每进行下一次扫描,把上一次扫描的 16 个列码都循环右移一 位,再进行扫描。 数据的右移与数据的左移相似,只是取码的顺序相反而已,在此就不再赘述。 2数据的上下移动 (1)列扫描方式向上移动 列向组字显示字符竖直方向的移动。若是列向组字,希望显示向上移动一个字符,第 1 次扫描从行码的点阵数组中取第 116 个数据,送行码输出口,对应于这 16 个数据,同时 14 用列码输出口输出列码,分别控制扫描第 116 列。由于是列向组字(上高下低) ,扫描完成 这 16 个数据后,第 2 次扫描的 16 个数据,应将原来的第 1 次扫描的 16 个行码每一个都循 环右移一位,使显示的点都上移一行(如果是显示向下滚动则应循环左移) ,再进行扫描。 如此,每进行下一次的扫描,把上一次的 16 个行码都循环右移一位,再进行扫描就实现了 数据的向上移动。 也可以用字型的方法容易理解,以下的 16×16 的 LED 显示一个字是 8 个字型,首先 扫描的而是第一个字型,同样是 16 行,16 列扫描,16 次显示;完成一个字型后,再扫描第 二个字型;完成第二个字型后,再扫描第三个字型······以此类推,即可产生该文字 向上移动的感觉 当把第一个字型编码中,每行显示的数据都右移一位,以产生第二个字型编码,即可 产生字符向上滚动的感觉。 当第一个字符扫描完成后,就进行这样的调整动作,以产生第二个字型的编码。同样 的,当第二个字型完成之后,就进行这样的调整动作,以产生第三个字型的编码。调整的动 作是先将 8 个编码根据序填入储存器,例如第 1 行编码存入 20 地址,第 2 行编码存入 21 地 址······要进行上移调整时,则从 20 地址数据开始,每笔数据都右移一位即可。 下图 2.15 仅以字型移动的方法画图。 图 2.15 字形法上下移动示意图 (2)行扫描方式上下移动 行向组字显示字符竖直方向的移动 方法 1:延长数组法。如果是行向组字,希望显示向上移动的一个字符,第 1 次扫描从 15 列码的点阵数组中取第 116 个数据,送列码输出口,对应于这 8 个数据,同时用行码输出 口输出行码,分别控制扫描第 116 行。第 2 次扫描从点阵数组中取第 217 个额数据(第 17 个数据与地 1 个数据同) ,分别送列码输出口,对应于这 16 个数据,同时用行码输出口 输出行码,仍分别控制地 116 行。第 3 次扫描从点阵数组中取第 318 个数据(第 18 个数 据与地 2 个数据同)扫描;······如此就实现了字符的向上移动。 方法 2:数组数据“循环左移法” 。实现数组数据循环左移的方法与上类似。也有:用 数组数据循环左移子程序;不用子程序,而是用变量判断控制实现数组数据的循环左移。 2.7 点阵颜色的转换 图 2.16 双色 8×8 点阵扫描接口图 为了简便起见,以下以 8×8 双色点阵为例介绍双色的转换原理。前面已经介绍过了, 8×8 双色点阵其实就相当于 2 个 8×8 单色点阵组合在一起,上图 2.16 的 2 个 8×8 单色点 阵就相当于一个 8×8 的单色点阵。在设计电路的时候可以使显示信号从公用的引脚接入, 接到 89C51 的一个 PORT 口,把显示红色的部分和显示黄色的部分分别接到 89C51 的另外 两个 PORET 口,在编写程序的时候,使显示红色的扫描信号输出就显示了红色,当显示黄 色的扫描扫描信号输出时,就显示了黄色。 2.8 LED 阵列驱动电路 正向点亮一颗 LED,至少也得 10 到 20 毫安,若电流不够大,则 LED 不够亮!而不管 是 8051 的输入还是输出端其高态输出电流都不是很高,不过 12 毫安而已。因此,很难直 接高态驱动 LED。这时候就需要额外的驱动电路,分别针对共阳极和共阴极 LED 阵列,有 两种不同的驱动方式。针对输出态的不同,分为:高态扫描-高态显示,高态扫描-低态显示, 16 低态扫描-高态显示和低态扫描-低态显示四种方式。下面针对设计中实际用到的一种驱动方 式介绍一种:共阴型低态扫描-低态显示信号驱动电路。 图 2.17 所示是针对共阴性 LED 阵列而设计的驱动电路,在这种驱动电路采用低态扫描, 也就是任何时间只有一个高态信号,其他则为低态。一行扫描完成之后,再把高态信号转到 临近的其他行。扫描信号经限流电阻接到 PNP 晶体管的基极,晶体管的集电极接地,射极 则连至 LED 点阵的列引脚,若要同时点亮该列的 16 个 LED,则晶体管的电流必须大于 200 毫安才行。常用的 2N3904 之类就可以达到当低态的列扫描信号输入晶体管的基极后,该晶 体管即为正向,而产生电流,即可使该列的 LED 具有点亮的条件 所要的显示信号连接到一个 PNP 晶体管的基极,而该晶体管的射极连接到 VCC,同样 的,当低态的显示信号输入时,晶体管的集电极电流将流入行 LED 的阳极,即可点亮该行 的 LED。如图 2.17 所示. 图 2.17 共阴型低态扫描-低态显示信号驱动电路 若要并接多个 LED 阵列,如连接使用 4 个 8×8LED 阵列,连接成 16×16LED 阵列, 则一个扫描信号同时驱动两个 LED 阵列。如在本设计中要显示的字比较大,用一个 8×8 的 点阵无法显示完整,这就需要用四块 8×8 的点阵组成一块 16×16 的点阵,这样就可以显示 完整的汉字了,若要并联多个 8×8 的 LED 组成 16×16 的点阵,则一个扫描信号同时要驱 动两行的 LED。如下图 2.18 所示。 17 图 2.18 16×16 的点阵驱动图 这时候就需要靠锁存器(74LS373)将这两组显示信号锁住,此处的锁存器是以低态输出的, 其输出的电压可达 24 毫安,足以驱动一个 LED;若嫌不足,可以选用 74A373 其输出的电 压可达 48 毫安,当 74LS373 得 G 脚为高态时,数据可以从输入端传输到锁存器中; G 脚为 低态时,数据被锁住,不会随输入端而变。另外 OC 脚为输出控制引脚,当 OC 脚为高态时, 输出呈现高阻抗;OC 为低态时,数据会由锁存器输出。 在这个电路之中驱动的扫描信号总共有 16 条,如果直接由 8051 输出,将占用 2 个 PORT 口,浪费了宝贵的资源,不太理想,在此使用的是一个 4 对 16 的译码器 (74LS154) ,这个译码器是将输入的 16 进位码解码输出低态的扫描信号。输出的低态扫描 信号可直接接到 PNP 晶体管的基极,如果太大的话也可以先经过限流电阻再接到 PNP 晶体 管的基极,信号最后经过晶体管的放大后即可推动 16 个 LED 点阵了。 第三章 软件设计 3.1 单片机延时子程序 延时程序在单片机编程中使用非常广泛,也很重要,在本毕业设计的程序中用到了延时 子程序,所以在此详细的叙述一下。在弄清延时程序指令的用法

    注意事项

    本文(16*16点阵图文显示屏 毕业论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开