洛阳理工学院毕业设计(论文)
二组的8位均不亮,代码为0xFF,所以第二行的代码为0xFE,0xFF。
其他各行依照相同的方法取模。
但如果每个字都要这样手工的进行计算,工作效率太低。在本设计中,我们采用取模软件取模,选用的取模软件是汉字字模点阵数据批量生成工具。该工具具有丰富的功能,如能对字体、字型、大小进行设置,对字体位置可以手动进行调整,可以选择甚至自定义点阵的大小,还提供水平扫描、垂直扫描两种扫描方式。本设计对字模数据设置为取反(低电平为有效电平),点阵大小设置为16×16,扫描方式设置为水平扫描,字体为楷体_GB2312,字型常规,大小为小四。
设置好后如图2-22所示,然后在上方的编辑区输入要显示的字,如输入“洛”字,然后再点击“创建点阵数据-创建单个字模”,便会自动生成一个记事本文档,字模的代码就在写在该记事本里。
图2-22 取模软件
27
洛阳理工学院毕业设计(论文)
如对“洛”字取模的代码为
/* @0 洛(16x16,H)@ [suki software]*/
0xFF,0xFF, 0xFE,0xFF, 0xEE,0xFF, 0xF6,0x1F, 0xFD,0xDF, 0xBA,0xBF, 0xDF,0x7F, 0xFE,0xBF, 0xED,0xCF, 0xEB,0xF1, 0xD6,0x1F, 0x9D,0xDF, 0xBD,0xDF, 0xFC,0x3F, 0xFF,0xFF, 0xFF,0xFF,
点阵汉字的显示可以认为是取模的逆过程,先由行线选中第一行,向列线输入第一行的代码,这样便可以看到第一行应该显示的图形。紧接着行线选中第二行,向列线输入第二行的代码,然后是第三行、第四行直至第十六行。只要每一行的扫描时间间隔恰当,由于人眼有视觉暂留作用,就可以看到一个完整的16×16图形。对于16×64点阵或者更大的点阵或者除汉字以外的其他图形,其显示原理与此也都与此相同。
2.5 硬件系统的整体设计图与原理分析
图2-23 硬件系统的整体设计图
28
洛阳理工学院毕业设计(论文)
硬件系统的整体设计图如图2-23所示。 原理分析:
Proteus 7.4软件中只有8×8和5×7等LED点阵,所以需要由小的LED屏拼接成一个大的LED显示屏。上图的LED显示部分是由16个8×8的点阵构成整体的16×64点阵屏。点阵屏的拼接方法已经在前面叙述过了。
本设计中 LED点阵显示屏采用的是逐行扫描的工作方式。XTAL1与XTAL2接12MHz的晶振;RST接复位电路;P1.7口与74HC154的E1相连,以此控制74HC154是否工作即是否产生输出;E2直接接地,即E2保持为低电平;P3.0与74HC154的地址线A相连,P3.1与74HC154的地址线B相连,P3.2与74HC154的地址线C相连,P3.3与74HC154的地址线D相连,以此选择74HC154有效的输出端口;74HC154的输出端口(0到15脚)分别连接一个反相器74HC04,需要说明的是,Proteus中的74HC04是一相反相,而实物中的74HC04是六相反相;反相器74HC04的输出直接与点阵屏的行线对应相连接,即输入端与74HC154的0号输出引脚相连的反相器74HC04的输出端与点阵最上端的行线相连,其余各行按顺序对应相连;P2.0口与左边第一个74HC595的DS端口相连,然后下一个74HC595的DS端口与上一个74HC595的Q7’相连,这样能够实现串行数据的依次“向后传递”;每一个74HC595的SH_CP端口均与P2.1端口相连;与此类似,每一个74HC595的ST_CP端口均与P2.2端口相连;每一个74HC595的MR与电源相连、OE与地相连;74HC595按从左向右,输出端口按Q0—Q7的顺序,依次与列线(自左向右)相连。
在画仿真图的过程中,我们会发现很多线需要连接,尤其是列线与行线,如果直接端口与端口连线,仿真图会占很大的面积而且不满密密麻麻的线,为了节省空间,我们只需要将需要连接在一起的端口各引出一条小短线,然后给其命上相同的名字便可,这样Proteus就默认为这两条线是连接在一起的。其操作方法是,选中要命名的线,右键选择“Place Wire Label”(给线写标签),然后在弹出的对话框中的“String”(线)中选择或者输入名称。
接线方式与方法已经叙述完,下面讲解本设计整体硬件的工作原理。
29
洛阳理工学院毕业设计(论文)
由接线图可知,所有74HC595的SH_CP移位寄存器时钟输入端、ST_CP存储寄存器时钟输入端分别接在一起,也就是它们共用一个移位寄存器时钟和存储寄存器时钟,由前面叙述的74HC595的功能表可知,这样的连接可以使8片74HC595同时进行数据移位和数据输出。
由单片机的P2.0口按位向左边第一个74HC595的DS端口输入数据,当数据输入到DS后,此时若SH_CP产生一个上升沿,然后ST_CP产生一个上升沿,那么在输出端口Q0上便会输出该数据,如果再继续向DS端口输入新的数据,同时SH_CP和ST_CP相继产生上升沿,那么Q1上就会输出原本在Q0上输出的数据,同时Q0上输出新输入在DS端口的数据,依此进行,当SH_CP和ST_CP的第八个上升沿产生以后,Q7’上输出Q7上的数据。因此,本设计中,将左边的74HC595的Q7’端口与其右边的74HC595的DS端口相连,这样,上一片的输出Q7’作为下一片的DS的输入,可以使数据连续向右传递,从而实现64位的串行输入,64位的并行输出。
在此我们要考虑一个问题,在该设计中,每一行均是64位,这64位是四个字的第一行的代码,而且74HC595的数据时不断向右传递的,那么我们从P2.0发送数据时,要先发送那个字的哪一组数据呢?经过观察和思考,我们不难发现,最先从P2.0发送的数据将会被传送到点阵的最右端,所以最先发送的数据应该是第四个字的第一行的第二组代码,然后是第四个字的第一行的第一组代码,再是第三个字的第一行的第二组代码,以此类推。
这样一行行的发送代码,同时选中对应行,就可以显示出我们将要显示的图形。
下面介绍移动显示原理,我们先介绍图形的左右移动,以向右移动为例。向右移动中,静态时第一个字就在最右边,那么P2.0首先发送的是第一个字的代码然后是第二个字,此时,若第一个字向右移动了一列,那么第二个字也应该紧跟着向右移动一列。如此,我们便可以看到字体向右一点一点的移动。向左移动的道理与此相同。具体实现方法,将在程序中具体举例说明。
向上向下移动的扫描方式与向左向右不同。此处以从底部向上移动为
30
洛阳理工学院毕业设计(论文)
例介绍。要实现字体从底部向上移动,第一帧仅扫描最底部的一行,发送四个字第一行代码;第二帧仅扫描从下向上的第一二行,发送四个字的第一、二行代码;第三帧直至第十六帧,依次类推,这样便可以看到图形从底部慢慢的“钻”出来。实现向下移动的方法与此类似,第一帧扫描16行,即显示一个完整的字;第二帧扫描从下自上的15行,但发送的是字的从上自下的15行代码,第三帧及至第十六帧依照这个方法进行,最终会看到一个字慢慢的向下移动。
31
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的LED滚动显示屏设计(7)在线全文阅读。
相关推荐: