![单片机C语言程序设计实训100例:基于STC8051+Proteus仿真与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/270/43738270/b_43738270.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.3 花样流水灯
在上述案例中,LED只能按某种单调的规律显示,无法实现复杂多变的花样显示。花样流水灯电路如图3-4所示,两组LED连接在P0和P1,实现了按预先设定花样的变换显示。
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-59-1.jpg?sign=1738883455-qedXhlhnnUYAQj3nYJxJsU8cKQZQFMIV-0-f47cf5358df6d528612a41f36385183c)
图3-4 花样流水灯电路
1. 程序设计与调试
为实现LED变换花样显示,可将相应的变换数据预设在数组中,每个数组元素对应一种显示组合,通过程序循环逐一读取数组中的显示组合并送往端口,即可实现LED自定义花样的自由显示。
分别送给P0与P1显示的花样字节可分别定义为两组字节数组(u8类型),也可合并定义为一个字数组(u16类型)。本案例程序中按第二种方式给出花样数组定义。
由于花样数组所占内存空间较大,且预设后相对固定,因此应将存储类型设为code,使其保存于Flash空间,而不会占用RAM空间。
2. 实训要求
① 调整数组内容,改变数组大小,实现其他自定义花样显示。
② 重新定义两组字节型花样数组,仍实现类似功能。
3. 源程序代码
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-60-1.jpg?sign=1738883455-JgII3bIvN0u63MouIW5BxMlmV4CrcShG-0-429838563177bc9341fcfc422592db01)