例.利用Proteus仿真一块16×16LED点阵,并在其上循环显示汉字“郑州大学”。
Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本例的显示任务。
首先,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90°,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。
连接好的16×16点阵如下图所示:
连接成如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如下图所示:
我们可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如下图所示:
可以看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。然后,我们将其保存,以便以后使用。
制作好16×16LED点阵,我们接下来来进行本例的实验。
由于本例的软件程序需要首先注意硬件连接,所以,我们首先来看一下本例的电路图。电路图中用到了74159集成芯片,其功能是将4位输入译为16输出(低电平有效),刚好满足我们的要求。电路图中的其他元器件我们在以前的仿真实例中都已介绍过,此处不再赘述。最终完成的电路图如下所示:
绘制好电路图,下面我们来编辑程序源文件,如下图:
编辑好源文件,我们就可以编译、链接并产生源代码了,生成源代码以后,打开我们刚才在Proteus中绘制好的电路图,并将生成的源代码装入单片机进行仿真。
仿真中的一个画面如上面的电路图所示。也可能你的画面和上图中的不同,可能会有红绿小点闪烁,事实上那是Proteus中实时显示的电平信号。我们可以在“System”菜单下点击“Set Animation Options...”子菜单来打开“Animated Circuits Configuration”对话框,然后将“Animation Options”选项下面的“Show Logic State of Pins?”复选框去掉选中来改变设置。如下图所示:
改变设置以后,重新仿真运行,是否就看到了和上图中一致的效果了。