上一案例中的LED只能按某种单调的规律滚动显示,无法实现复杂多变的花样显示。图3-3所示电路中的两组LED分别连接在PB、PC端口,它们按预设的自定义花样变换显示,呈现了更为丰富自由的显示效果。
图3-3 多花样流水灯
(一)自定义花样数据编制
为实现本例两组(共16位)LED的自定义花样演示,源程序需要提供预先编制好的花样数据,花样数据用“字数组”或“双字节数组”保存,本例使用的是前者,每个16位的字数组元素Pattern[i]分别对应于16只LED的一种显示组合。
(二)演示控制语句设计
主函数循环读取数组中的每个显示组合送两个端口即可实现自定义花样的自由显示。发送Pattern数组中各元素的高8位到PORTB时,注意将Pattern右移8位,发送低8位到PORTC时,可直接发送Pattern[i],也可发送Pattern[i]&0x00FF。
① 重新设计规划花样数组内容,改变数组大小,实现自定义花样显示。
② 将源程序中INT16U类型的数组拆解为两个INT8U类型的字节数组,改写程序,仍实现相同的运行效果。
③ 掌握下一章的74HC595串入并出芯片程序设计技术以后,重新改进本设计,仅用PIC单片机的3只引脚控制多花样LED显示。