自动化学院毕业设计论文模板 - 图文 联系客服

发布时间 : 星期日 文章自动化学院毕业设计论文模板 - 图文更新完毕开始阅读712ac0cb05087632311212a7

西安理工大学本科生毕业设计(论文)

×16的点阵模块(共32帧)水平平行排列,用一个恰好能罩住8列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;······;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像,如图2-11所示。

图2-11 方框图法左右移动示意图

因为是列向组字(列扫描方式,点阵数据为行码,上边为地位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第1~16个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第1~16列。扫描完前16个数据之后,第2次扫描从点阵数组中取第2~14个数据(第17个数据与地1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫地1~16列。第3次扫描从点阵数组中取第3~18个数据(第18个数据码与地2个数据码相同)扫描······;如此实现字符向左移动。

13

张楠:基于AVR单片机的点阵屏系统的设计与仿真

以上完成一个图形移动的方法,也可以看成是移动16个不同的字形。如图2-12所示,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型······依此类推,即可产生该文字的左移的感觉。

图2-12 字形法左右移动示意图 假设如果原本某个汉字的字型(第一个字型),其编码为:

00H,10H,20H,30H,40H,50H,60H,70H,

80H,90H,0A0H,0B0H,0C0H,0D0H,0E0H,0F0H; 第二个字型的编码为:

10H,20H,30H,40H,50H,60H,70H,80H,

90H,0A0H,0B0H,0C0H,0D0H0E0H,0F0H, 00H;

也就是把第一个字型的编码中,第1行显示数据,变为第2行显示数据;第2行显示数据,变成第3行显示数据;第3行显示数据,变成第4行显示数据;第4行显示数据,变成第5行显示数据,以此类推。

当第一个字型扫描显示完成之后,就进行这样的动作调整,以产生第二个字型的编码。同样的,当第二个字型扫描完成之后,就进行这样

14

西安理工大学本科生毕业设计(论文)

的调整动作,以产生第三个字型的编码。这个调整动作时先将16个编码根据序填入存储器,例如第1行编码存入20H,第二行编码存入21H,要进行左移调整时,则先将20H地址的数据转移到36H地址,再将21H地址的数据转移到20H地址,将22H地址的数据转移到21H地址,将23H地址的数据转移到22H地址,将24H地址的数据转移到23H地址,将25H地址的数据转移到24H地址,将26H地址的数据转移到25H地址,将27H地址的数据转移到26H地址,将28H地址的数据转移到27H地址。

方法2:数组数据“循环左移法”(适合用C语言编写,在此仅作了解)。注意,不是把二进制数据按位循环左移,而是把数组中的数据按其在数组中的位置循环左移。具体的方法入下。

原字符点阵数组中的16个数据不延长,但下一帧取的16个数据,是把上一帧的16个数据的位置(先后顺序)“循环左移”一次,即原来第2个移到第1个,原来第3个移到第2个······原来第1个移到第16个。实现数组数据循环左移的方法有:第一,遍一个“数组数据循环左移子程序”,该子程序每执行一次可把数组中的额数据循环左移一次,主程序中先调用一次该子程序,时数组中的数据循环左移这一次,然后再从数组中取数据显示。当数组中的额数据个数较多时,片内RAM将不够大,必须将数组定义在片外RAM中。第二,不用子程序,而是用变量判断控制实现数组数据的循环左移。

(2) 行扫描方式左移:行向组字显示字符水平方向的左移。如果是行向组字(行扫描方式,点阵数据为列码,左边为敌位右边为高位),希望显示向左移动的一个字符,第1次扫描从列码的点阵数组中取第1~16个数据,送到列码输出口,对应的8个数据,同时用行码输出口输出行码,分别控制扫描第1~16行。扫描完成这16个数据之后,第2次扫描的第16个数据,应将原来第1次扫描的16列码每一个都循环右移一位(如果是显示右移则应循环左移),再进行扫描。如此,每进行下一次扫

15

张楠:基于AVR单片机的点阵屏系统的设计与仿真

描,把上一次扫描的16个列码都循环右移一位,再进行扫描。

数据的右移与数据的左移相似,只是取码的顺序相反而已,在此就不再赘述。

2.数据的上下移动 (1)列扫描方式向上移动

列向组字显示字符竖直方向的移动。若是列向组字,希望显示向上移动一个字符,第1次扫描从行码的点阵数组中取第1~16个数据,送行码输出口,对应于这16个数据,同时用列码输出口输出列码,分别控制扫描第1~16列。由于是列向组字(上高下低),扫描完成这16个数据后,第2次扫描的16个数据,应将原来的第1次扫描的16个行码每一个都循环右移一位,使显示的点都上移一行(如果是显示向下滚动则应循环左移),再进行扫描。如此,每进行下一次的扫描,把上一次的16个行码都循环右移一位,再进行扫描就实现了数据的向上移动。

也可以用字型的方法容易理解,以下的16×16的LED显示一个字是8个字型,首先扫描的而是第一个字型,同样是16行,16列扫描,16次显示;完成一个字型后,再扫描第二个字型;完成第二个字型后,再扫描第三个字型,以此类推,即可产生该文字向上移动的感觉

当把第一个字型编码中,每行显示的数据都右移一位,以产生第二个字型编码,即可产生字符向上滚动的感觉。

当第一个字符扫描完成后,就进行这样的调整动作,以产生第二个字型的编码。同样的,当第二个字型完成之后,就进行这样的调整动作,以产生第三个字型的编码。调整的动作是先将8个编码根据序填入储存器,例如第1行编码存入20地址,第2行编码存入21地址,要进行上移调整时,则从20地址数据开始,每笔数据都右移一位即可。

下图2-13仅以字型移动的方法画图。

16