毕业论文-基于at89c51系列单片机的液晶点阵式矩阵电子广告牌设计与制作内容摘要:
16 线数据分配器。 一般工作环境 的 温度为 0~ 70℃。 LED,50 年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于 1960 年。 LED 是英文 light emitting diode(发光二极管)的缩写,它的 基本结构是一块电致发光的半导体材料,置于一个有引线的架子上, 接着用 四周 环氧 7 树脂密封, 也是 固体封装,所以能起到保护内部芯线的作用, 因此 LED 的抗震性能好 , 该电路的显示采用逐行扫描方式。 当 工作时, 它 由单片机 提 取出第一行需要显示的 内容 经 过 延时一段时间后再进行下一行点阵数据的显示。 二、 1616LED 点阵显示制作 (一) 1616LED 点阵的内部结构及工作原理 我们先以 UCDOS 中文宋体字库为例,每一个字由 16 行 16 列的点阵组成来进行 显示。 即国家标准汉字库中的每一个字均由 256 点阵来表示。 可以把每一个点理解为一个像素, 把每一个字的字形理解为一幅图像。 事实上这个汉字屏不但 可以显示汉字, 而且 也可以显示在 256 像素范围内 任何图形。 这里我们以“龙 ”字说明,如图 所示。 14 用 8 位的 AT89C51 单片机控制,由于单片机的总线为 8 位,一个字需要拆分为 2 个部分。 一般 把它拆分为上部 和下部, 上部由 8 16 点阵组成, 下部也是 由 8 16 点阵组成。 此例中单片机首先显示的是左上角 第一列的上半部分,即第 0 列的 p00— p07 口。 方向从 p00 到 p07 ,显示汉字“高”时 ,p02 点亮 ,由上往下的顺序排列 ,为 灭, 灭 , 灭 , 灭 , 亮 , 亮 ,灭 , 灭。 则 二进制 为 00001000,转换为 十六 进制为 08h。 上半部第一列完成后, 则 继续 的 扫描下半部的第一列,为了接线的方 便,我们仍设计成由上向下扫描,也就是 从 p27 向 p20 方向扫 描,从 图 可以看到,这一列全部为不亮,即为 00000000, 十六 进制则为 00h。 然后单片机转向上半部第二列, 应用这个方法继续扫描往下读二进制数,得出汉字 “龙 ”的扫描代 : 00H,08H,08H,08H,08H,08H,0FFH,08H,0FH,48H,28H,08H,08H,18H,08H,00H 00H,00H,02H,06H,30H,0C4H,04H,08H,0FCH,24H,44H,84H,04H,04H,3CH,00H 由 以上的 这个原理可以看出 来 ,无论 是 显示何种字体或图像,都可以用这个方法来 进行 分析出 来 它的扫描代码从而显示在屏幕上面。 只 不过现在有很多现成的汉字字模生成软件,就不必自己去画表格算代码了。 如图 龙 15 (二) 用 88LED 点阵构成 1616LED 点阵 在 Proteus 中只有 57 和 88 等 LED 点阵, 没有 1616LED 点阵, 但是 在实际 的 应用中,要 更 好地显示一个汉字,则 需要的是 1616 的 点阵。 下面 介绍如何用 88 点阵构建 1616 点阵的方法, 同时 构建一块 1616 LED 点阵,用于本例的显示任务。 首先 , 在 Proteus 的 元件库中找到 “MATRIX8X8BULE”元器件,将四块该器件放入文档区编辑 窗口 当 中。 这时候应该 注意 ,如果 该器件保持初始的位置 ,首先将其 转动并将 水平放置, 使它 左面 8 个引脚 是 行线,右边 8 个引脚是 列线。 然后 将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16 个 LED,列线也相同。 并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。 连接好的 1616 点阵如 图 所示。 成如上图的 1616 点阵只是第一步,这样分开的数块并不能达到好的显示效果 ,下面我们要将其进一步组合。 组合实际上很简单,首先选中如上图中右侧的两块 88 点阵,然后拖动并使其与左侧的两块相并拢,如 图 所示。 又上可得 原来的连线自动隐藏, 对于 线上交点, 最好 不要去动。 最后, 再来选中下侧两块 的 点阵, 将其 拖动与上侧的两块并拢 ,最终的 效果如图 所示。 基本上 原来杂乱连线现在全部隐藏 , 那么 一块 1616 的 LED 点阵 就完成了。 但是应该 注意, 已经 做成的 LED 点阵的行线为左侧的 16 个引脚,其行线为高电平有效 , 下侧的 16 个引脚为其列线,列线为低电平有效。 然后, 则 8*8LED点阵构成了 16*16LED 点阵。 如 图 点阵模块组合 16 如图 如 图 三、 AT89C51 的接口说明 在 AT89C51 中有 P0,P1,P2,P3 四个口,其中 18, 19 号引脚它则提供外部时的管教说明 : P0口: P0口是一个 8位漏极开路型双向 I/O 口,并且也是 地址 /数据总线复制 的用口,它 为输入口时,每位能吸收 8 个 TTL 逻辑门电流,对端 17 口输入 “ 1 可作为高阻输入端。 在 Flash 编程时, PO 口作为原码输入口时,此时 P0 口输出原码,则 P0 外部必须被拉高。 但是 在程序校检时,输出指令字节, 同时,校检时,必须 外接上拉电阻。 P1 口: P1 口是一个由 内部 提供 上拉电阻的 8 位双向 I/O 口, P1 口的 缓冲级可驱动(吸收 或输出电流) 4 个 TTL 门电流。 对 p1 端口输入 “ 1” 后,通过内部提供的上拉电阻把端口拉到高电平,这时它 可作输入口, P1 端口被外部下拉为低电平时,这时它输出电流,原因是内部上拉的缘故 作输入口, 此时 因为内部存在上拉电阻 上 , 它当中某个引脚被外部信号拉低会输出 电流 I。 P2 口 :P2 口是一个 内部 带有 上拉电阻的 8 位双向 I/O 口, P1 的 缓冲级可驱动(吸收或输出电流) 4 个 TTL 门的电流。 对端口输入 “ 1” 时, 内部的上拉电阻 可把端口拉到高电平,即可 作输入口, 当 作输入口 时,因为内部有 上拉电阻, 则某个引脚被外部信号拉低时输出 电流 I。 P2 口当访问外部程序存储器或16 位地址外部数据存储器进行存取时, P2 口输出高八位的地址。 P3 口: P3 口是一个 内部 带有 上拉电阻的 8 位双向 I/O 口。 P3 口 缓冲级可驱动(吸收或输出电流) 4 个 TTL 门的电流。 对 P3 口输 入“ 1” 时,它 被内部的 上拉电阻拉 为 高 电平,当它作为输入端口, 被外部 的 拉 为 低 电平, 输出电流I, P3 口也可作为 AT89C51 的一些特殊功能口。 RST( 9 脚) :作为 复位输入,当震荡器工作时, RST 引脚 可同时 出现两个机器周期以上 的 高电平将使单片机复位。 建议在这个脚与 Vss 引脚之间接一个约 千欧的下拉 电阻,同时,与 Vcc 引脚之间连接一个 10 毫砝的电容,这样子可以保证可靠地复位。 HOMS 制造工艺的 8051 是 MCS51 系列单片机的典型产品,其采用 40 引脚的 双列直插分装( DIP 方式),就如上面图。 18 ALE/PROG:当访问外部存储器时 ,ALE(地址锁存允许)输出 电平,用于锁存地址的地位字节。 在平常时, ALE 端以不变的频率周期可输出正脉冲信号 时钟振动频率的 1/6 固定的正脉冲信号,因此它可 作为 对外输出时钟 脉冲 或用于定时 的 目的。 但是应该 注意的是 :每当访问外部数据存储器时 ,要 跳过一个 ALE脉冲。 /PSEN:是一个外部程序存储器的选通信号。 在外部程序存储器的取指时间,它的每个机器周期两次 /PSEN 有效。 如果在访问外部数据存储器时,这两次有效的 /PSEN 信号则不会出现。 /PSEN 同样可以驱动八个 TTL 门电路。 VCC: ( 40 脚) 供电电压 ,接 +5V 电压。 GND: ( 20 脚) 接地。 XTAL1:它是一个反向振荡放大器输入和内部时钟工作电路输入。 XTAL2:它是一个来自反向振荡器输出。 /EA:当 /EA 为高电平的时候,可以访问内部程序的存储器,但是当 PC 程如图 AT89C51 管脚图 19 序计数器的值超过片内程序存储器容量时候,就会 自动转向执行外部程序存储器。 但是,当 /EA 保持低电平的时候,则只访问外部程序存储器,这时候不管是否有内部存储器, ALE:当它访问外部存储器时, ALE 允许地址锁存, 即使不访问外部存储器, ALE 可以任然的以不变的频率周期出现正常的脉冲信号出现这个信号的振荡频率是它的 1/6。 它可以作为对外输出的时钟,或者用作定时。 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1( 记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 它们中的 XTAL1 和 XTAL2 分别 是 反向放大器的输入和输出。 这个 反向放大器可以配置为片内振荡器。 同时, 石晶 振荡和陶瓷振荡均可 以 采用。 比 如采用外部时钟源驱动器件, 这时 XTAL2 应不接。 有余输入至内部 时钟信号 要通过一个二分频触发器, 这时候则 对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 四、 LED 硬件 原理图 左移动汉字的的硬件连接 原理图 20 如图 设计一原理图 如图 设计二原理图 21 第四章 字模 的 生成 一、 字模简介 汉字的字模是一组数字,而且意义与数字意义有着根本的差异,它是以数字 信息来记载英文或汉字的形状。 电脑硬件中,即 没有汉字这个 基本的 概念,也没有英文的概念,其认识的概念 也只有 — 个 内码将 ASCII 表的高 128 个很少用到的数值以两个为一组来 表示汉字,为 汉字的内码。 而剩下的低 128 位则留给英文字符使用,为 英文的内码。 假如 你用启动盘 的 启动系统后 可 用 DIR命令有可能得到很多的 莫名其妙的字符,但 是 那 也是确确实实的汉字,假如 你启动 UCDOS 或者 其 他的汉字系统之 后, 则那就会看到 是一个个熟悉的汉字 出现。 而在硬件系统当中 , 它的英文字模 的信息一般固定 在 ROM 里 面,即还 没有进入系统的 CMOS 里 时,也可以使 你看到英文 的字符。 但是 在 DOS 的 下 面 , 其中 中文的字模信息 都 一般记录在汉字库 的 文件里 ,它使制作好的字模放到 标准的库 当 中,这 也 就是点阵字库文件。 就我所查的资料,提取字模主要有以下几种方法: 第一、 从字模库中直接 的进行提取。 这种方法只 限于字模库, 就 比如你需要 16*16 的字模和 20*20 的字模, 那么 你就必须去找到这 2 个字模库。 第二、 从 TTF 库中 进行直接提取。 这种 方法提取出来的字模很光滑, 它的效果很好。 同样你需要一个 TTF 库,它是矢量的,可以支持不同的大小。 第三 、 可以 在内存的位图上画出文字,然后 在生成字模。 这种 方法写出来的程序 则 不需要额外的字库文件, 它将 依赖于操作系统中的字体。 但是 它的 一般操作系统中都带有大量的字体, 完全 足够我们使用,还可以很自由的选择自己喜欢的字体、大小等等。 22 二、 字库生成 “何 ”的自摸代码为: DB :01H,00H,02H,00H,04H,00H,1FH,0FFH,0E0H,00H,20H,00H,27H,0F0H,24H,20H DB24H,20H,2FH,0F0H,24H,02H,20H,01H,3FH,0FEH,60H,00H,20H,00H,00H,00H 如图 字模 23 如图 字模 “金”字代码为: DB 01H,00H,01H,02H,02H,02H,04H,52H,0AH,4AH,12H,46H,22H,42H,0C3H,0FEH DB 22H,42H,16H,46H,0AH,4AH,04H,52H,02H,06H,03H,02H,02H,00H,00H,00H 如图 字模 “荣”字代码为: DB: 21H,00H,26H,42H,24H,42H,24H,44H,24H,48H,0F4H,50H,24H,60H,27H,0FFH DB: 24H,60H,0F4H,50H,24H,48H,24H,44H,24H,46H,65H,44H,26H,00H,00H,00H 24 第五章 软件的设计 一、 程序设计总体思路 首先,先使 用简短的汇编程序设计, 从而来进行 实现 LED 点阵。毕业论文-基于at89c51系列单片机的液晶点阵式矩阵电子广告牌设计与制作
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。