任务3 “爱心”灯光设计

设计要求

使用单片机P1端口控制32个LED (D1~D32) 实现 “爱心”显示控制。

硬件设计

单片机的P1端口只有8个引脚,不能直接控制32个LED的显示,因此需要单片机外接扩展芯片(如译码器74154)。在桌面上双击图标,打开Proteus 8 Professional窗口。新建一个DEFAULT模板,添加表3-5所列的元器件,并完成如图3-23所示的硬件电路图设计。

表3-5 “爱心”灯光设计所用元器件

程序设计

所谓 “爱心”灯光,是指在图3-23所示电路中,首先是 D1 和 D17 点亮,延时片刻后D2和D18点亮,……,延时片刻后D16和D32点亮;然后是D15和D31点亮,延时片刻后D14和D30点亮,……,延时片刻后D1和D17点亮;循环重复上述过程。从显示规律可以看出,其显示效果可以理解为灯光左移与灯光右移的结合。由于使用了两个译码器芯片(U2和U3),其中U2驱动D1~D16,U3驱动D17~D32,而且每次有两个 LED 同时点亮,所以应该每次给单片机 P1 端口的高、低字节相同的值,如 0x00 可实现 D1 和 D17 点亮,0x11可实现D2和D18点亮,等等。

源程序

图3-23 “爱心”灯光电路图

调试与仿真

首先在Keil中创建项目,输入源代码并生成Debug.OMF文件,然后在Proteus 8 Professional中打开已创建的“爱心”灯光电路图并进行相应设置,以实现Keil与Proteus的联机调试。单击Proteus 8 Professional模拟调试按钮的运行按钮,进入调试状态。此时可以看到“爱心”灯光的显示效果:首先是D1和D17点亮,延时片刻后D2和D18点亮,……,延时片刻后D16和D32点亮,实现了灯光从上到下的显示;然后是D15和D31点亮,延时片刻后D14和D30点亮,……,延时片刻后D1和D17点亮;循环重复上述过程,其运行仿真效果图如图3-24所示。

图3-24 “爱心”灯光运行仿真效果图