77范文网 - 专业文章范例文档资料分享平台

单片机点阵课程设计1(3)

来源:网络收集 时间:2018-11-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(2)竖直方向扫描,即逐行扫描方式,简称行扫描方式。此时用一个P口输出决定哪一行能亮,另一个P口输出列码,决定该行上哪些LED灯亮。能亮的行从上向下扫描完16行即显示一个完整的字体。

本设计应用的是第一种的扫描方法,即列扫描。

每一个字由16行16列的点阵形成显示,即每个字均由256个点阵来表示,我们可以把每一个点理解为一个像素。一般我们使用的16×16的点阵宋体字库,即所谓的16×16,是每一个汉字在纵横各16点的区域内显示的。汉字库从该位置起的32字节信息记录了该字的字模信息。事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。

我们以水平方向扫描显示汉字“欢”为例来说明其扫描原理,每一个字由16行16列的点阵组成显示,如果用8位的AT89S51的单片机来控制,由于单片机的总线为8位,一个字需要拆分成两个部分。一般我们把它分解成上部分和下部分,上部分由8*16的点阵组成,下部分也由8*16的点阵组成。在本例中单片机首先显示的是左上角的第一列的部分,即第0列的P2.0~P2.7口。方向为P2.0到P2.7,显示汉字“欢”的时候,P2口都不亮,即二进制00000000,转换为16进制为0x00,如图2.11所示。

上半部分第一列完成之后,继续扫描下半部分的第一列,为了接线的方便,我们仍设计成由上往下的扫描方式,即从P3.0向P3.7方向扫描,从图中可以看到,这一列只有P3.0亮,所以代码为10000000,16进制为0x80。然后单片机转向上半部的第二列。由于第二行和第一行一样,所以这里再说一下第三行,P2口中P2.0到P2.5都亮,既二进制为11111100,转换为十六致为0xfc。P3口只有P3.0亮,既二进制为10000000,转换为十六致为0x80????

按照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“欢”的扫描代码为 :

0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x45,0x04,0x46,0x48,0x28,0x40,0x28,0x40,

0x10,0x40,0x28,0x40,0x24,0xA0,0x44,0xA0,0x81,0x10,0x01,0x08,0x02,0x0E,0x0C,0x04

图5-6 16*16点阵

5.3.2字模提取

由这个原理可以得知,无论显示何种字体或图像,都可以用这种方法来分析出它的扫描代码从而显示在屏幕上。了解汉字的显示原理之后,那如何得到汉字的字模信息呢?现在有一些现成的汉字字模生成软件,可从网上下载汉字字库提取程序直接提取字库。如图5-7所示的为一种字模生成软件,软件打开后输入汉字,在Mode一栏中选中C51,然后点击提取字模,这样就能得到我们所需要的十六进制数据汉字代码。软件有粗体和斜体两种字体,还可以加下划线、删除线??软件还不错,在这里功能就不一一撰述了。提取出了字模把它复制到我们的程序即可。

图5-7 编辑程序中使用的字模提取软件

下面为在编程中使用的字模

“0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x45,0x04,0x46,0x48,0x28,0x40,0x28,0x40,

0x10,0x40,0x28,0x40,0x24,0xA0,0x44,0xA0,0x81,0x10,0x01,0x08,0x02,0x0E,0x0C,0x04”(欢)

“0x00,0x00,0x41,0x84,0x26,0x7E,0x14,0x44,0x04,0x44,0x04,0x44,0xF4,0x44,0x14,0xC4,

0x15,0x44,0x16,0x54,0x14,0x48,0x10,0x40,0x10,0x40,0x28,0x46,0x47,0xFC,0x00,0x00”(迎)

“0x01,0x00,0x21,0x08,0x11,0x0C,0x09,0x10,0x09,0x20,0x01,0x04,0xFF,0xFE,0x04,0x40,

0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x40,0x08,0x42,0x10,0x42,0x20,0x3E,0x40,0x00”(光)

“0x10,0x80,0x10,0x80,0x51,0x04,0x51,0xFE,0x52,0x00,0x54,0x80,0x58,0x60,0x50,0x24,

0x57,0xFE,0x54,0x44,0x54,0x44,0x54,0x44,0x54,0x44,0x14,0x44,0x17,0xFC,0x14,0x04”(临)

六、protesu仿真

6.1 仿真电路图

Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision2,在新建Keil项目时选择AT89C51单片机作为CPU,将源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选好所需要的仿真元件,并连接好,电路如图6-1所示。选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil μVision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,说明程序和电路图都没有问题。

图6-1 总体仿真电路

6.2仿真效果(显示“欢迎光临”)

图6-2 点阵显示字幕

10

七、调试过程及分析

在16*16的点阵屏中,既有16根行线和16根列线,我们在这里用P0口控制行线,列线由P2、P3口控制,所以我们这个是列扫描控制的点阵屏。要让一个字显示出来其实就是控制这256个LED灯的亮灭问题。因为有字模提取软件所以这个问题就显得很容易了。

LED点阵显示字体的交替出现。交替出现文字采用if判断语句和延时函数,当满足条件既会显示出文字,每个字都是延时1s出现。

16×16点阵点阵的移动。要显示一个字符,该字符的点阵数据可以列向16点组字,又可以行向16点组字。无论哪一种组字方法,都既可以显示字符的水平方向的移动,又可以显示竖直方向的移动。 7.1 字体的移动

1、显示字符的左右移动

列扫描方式左移动:数组数据循环左移法 注意,不是把十六进制数据按位循环左移,而是把数组中的数据按其在数组中的位置循环左移。具体的方法入下。

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

2、显示字符的上下移动 列扫描方式向上移动

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

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

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

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

11

开始,每笔数据都上移一位即可。

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

12

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机点阵课程设计1(3)在线全文阅读。

单片机点阵课程设计1(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/303088.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: