电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个字符的显示。再改变取表地址实现字符的滚动显示。硬件电路组成框图如图5所示。
2.2 系统各单元电路设计
2.2.1 STC89C52单片机最小系统
最小系统包括晶体振荡电路、复位电路和电源部分。图2-2为STC89C52单片机的最小系统。
3
图2-2 STC89C52单片机最小系统
2.2.2 按键控制电路
单片机开始工作时,P2.0是高电平。当按键按下时,检测到一个低电平信号,改变P0口输出信号,控制8×8 LED点阵显示屏显示不同字符。
R110kP2.0图2-3 按键控制电路
2.2.3 三极管驱动电路
扫描驱动电路的功能主要是有P1口输出高电平使三极管发射结导通,发射结输出足够大的电流使二极管导通。
4
P1.0P1.1P1.2P1.3R14.7kQ1s8050R24.7kQ2S8050R34.7kQ3S8050R44.7kQ4S80500123P1.4P1.5P1.6P1.7R54.7kQ5S8050R64.7kQ6S8050R74.7kQ7S8050R84.7kQ8S80504567 图2-4 三极管驱动电路
2.2.4 8×8 LED点阵介绍
图(4)为8×8点阵LED外观及引脚图,,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则电子模块中的0口为1,A口为0即可。应用时限流电阻可以放在横轴或列轴。
图2-5 8×8点阵LED外观及引脚
(1)把“单片机系统”区域中的P0端口用8芯排芯连接到“点阵模块”区域中的“A~H”端口上;
5
(2)把“单片机系统”区域中的P1端口用8芯排芯连接到“点阵模块”区域中的“0~7”端口上;
为了方便于单片机连接,我们在焊接的过程中特意将0~7接口排列出来作为列,将A~H接口作为行,这样我们就可以直接将STC89C52单片机的P0口与0~7接口一次连接,将STC89C52单片机的P1口与A~H接口一次连接。要使LED发亮即使给予数字端高电平,字母端给予低电平,就能使二极管发亮。
2.3 字符的点阵显示原理及字库代码获取方法
我们以UCDOS中文宋体字库为例,每一个字由8行8列的点阵组成显示。我们可以把每一个点理解为一个象素,而把每一个字的字形理解为一幅图像。事实上这个汉字屏不仅可以显示汉字,也可以显示在64象素范围内的任何图形。如查用8位的STC89C52单片机控制,如图所示
图2-6 8×8点阵等效电路
为了弄清楚汉字的点阵组成规律,首先通过列扫描方法获取汉字的代码。首先将8行分成4位的上、下两部分,把发光的象素位编为0不发光的象素位为1的十六进制代码。这样就把要显示的“土“字编为如下代码:
{0xff,0xbf,0xb7,0xb7,0x81,0xb7,0xb7,0xbf}
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出他的扫描代码从而显示在屏幕上。上述方法虽然能够让我们弄清楚字符点阵代码的获取过程。字符点阵显示一般有点扫描、行扫描和列扫描3种。为了符合视觉暂留要求,点扫描方法的扫描频率必须大于16×64—1024 Hz,周期小于1 ms即可。行扫描和列扫描方法的扫描频率必须大于16×8—128 Hz,周期小于7.8 ms即可。
6
3 程序设计
3.1程序流程图
图3-1 主程序流程图
3.2程序设计
根据上述所说的程序流程图,设计程序如附录3。
7