基于 AT89C51 单片机 16×16 LED 汉字滚动显示屏的设
计
O 引言
LED 显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏 幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适 应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银 行、高速公路等公共场所的信息发布和广告宣传。LED 显示屏发展较快,本文 讲述了基于 AT89C51 单片机 16 乘以 16LED 汉字点阵滚动显示的基本原理、 硬件组成与设计、程序编写与调试、Proteus 软件仿真等基本环节和相关技术。 1 硬件电路组成及工作原理
本产品采用以 AT89C51 单片机为核心芯片的电路来实现,主要由 AT89C51 芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16 乘以 16LED 点阵 5 部分组成,如
我们把行列总线接在单片机的 I/0 口,然后把上面分析到的扫描代码送 入总线,就可以得到显示的汉字了。但是若将 LED 点阵的行列端口全部直接 接入 89S5 1 单片机,则需要使用 32 条 I/0 口,这样会造成 I/0 口资源的耗尽, 系统也再无扩充的余地。因此,我们在实际应用中只是将 LED 点阵的 16 条行 线直接接在 P0 口和 P2 口,至于列选扫描信号则是由 416 线译码器 74HCl54 来 选择控制,这样一来列选控制只使用了单片机的 4 个 I/O 口,节约了很多 I/O 口资源,为单片机系统扩充使用功能提供了条件。考虑到 P0 口必需设置上拉 电阻,我们采用 4.7 kΩ排电阻作为上拉电阻。汉字扫描显示的基本过程 是这样的:通电后由于电阻 R,电容 c1 的作用,使单片机的 RST 复位脚电平 先高后低,从而达到复位;之后,在 C、C3、X 以及单片机内部时钟电路的作用
下,单片机 89C51 按照设定的程序在 P0 和 P2 接口输出与内部汉字对应的代码 电平送至 LED 点阵的行选线(高电平驱动),同时在 P1.1,P1.2,P1.3,P1.4 接 口输出列选扫描信号(低电平驱动),从而选中相应的象素 LED 发光,并利用人 眼的视觉暂留特性合成整个汉字的显示。再改变取表地址实现汉字的滚动显示。
2 汉字的点阵显示原理及字库代码获取方法
我们以 UCDOS 中文宋体字库为例,每一个字由 16 行 16 列的点阵组成 显示。即国标汉字库中的每一个字均由 256 点阵来表示。我们可以把每一个点 理解为一个象素,而把每一个字的字形理解为一幅
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。 汉字可拆分为上部和下部,上部由 8 乘以 16 点阵组成,下部也由 8 乘以 16 点 阵组成。本例通过列扫描方法首先显示左上角的第一列的上半部分,即第 0 列 的 P00~P07 口,方向为 P00 到 P07,显示汉字我时,为全灭,第一列的下半 部分也为全灭。第二列的上半部分 P06、点亮,由上往下排列,为:PO.0 灭, PO.1 灭,P0.2 灭 PO.3 灭,PO.4 灭,P0.5 灭,P0.6 亮,P0.7 灭。即二进制 00000010,转换为十六进制为 02h。上半部第二列完成后,继续扫描下半部的 第二列,为了接线的方便,我们仍设计成由上往下扫描,即从 P27 向 P20 方向 扫描,从 00H,02H,08H,06H,28H,02H,24H,22H 0FCH,3FH,24H,2 1H,20H,10H,3CH,08H 0E2H,07H,20H,0AH,0E4H,11H,0A8H,20H 20H,30H,00H,00H,00H,00H,00H,00H 由这个原理可以看出,无论显示何种字体或
可见,汉字点阵显示一般有点扫描、行扫描和列扫描 3 种。为了符合视 觉暂留要求,点扫描方法的扫描频率必须大于 16 乘以 641 024 Hz,周期小于 1 ms 即可。行扫描和列扫描方法的扫描频率必须大于 16 乘以 8 一 128 Hz,周期
小于 7.8 ms 即可,但是一次驱动一列或一行(8 颗 LED)时需外加驱动电路提高 电流,否则 LED 亮度会不足。
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!