主题: 串口交互心形图案显示
器件: ESP32 主控、 8x8LED 点阵、 74HC595 串口寄存器芯片(或模块) 及相关器件。
要求:
使用 74HC595 串口寄存器芯片控制 8x8LED 点阵循环显示大小心形图案, 通过串口输入报文来设置大小心形图案各自的显示时长。
报文的格式示例为: B100S300
其中: B100 表示显示大的心形图案时长 100 毫秒; S300 表示显示小的心形图案时长 300 毫秒。 显示时间范围在 100~999 毫秒之间。
具体要求如下:
(1) 程序启动后, 8x8LED 点阵最外侧四边的 LED 灯点亮, 中间区域 LED 灯熄灭。
(2) 在串口监视器窗口输入框输入上述格式的报文后, 在串口监视器窗口输出解析后相应的
报文内容。 以报文 B100S300 为例, 串口监视器窗口输出的内容为 B-100:S-300。
(3) 8x8LED 根据报文的内容连续切换显示大小两个心形图案。 以报文 B100S300 为例, 先显示大的心形图案, 时长 100 毫秒, 然后显示小的心形图案, 时长 300 毫秒, 依次反复, 直至输入新的报文数据。
(4) 程序采用 C 代码编写, 不得使用外部库调用。
(5) 未作规定处可自行处理, 无明显与事实违背即可。
(6) 程序编写过程中不得打开库例程和其它程序, 如发现, 实操成绩按照 0 分处理。
说明:
请考生在考试结束前, 按如下要求提交程序文件
(1) 将所有程序放在一个文件夹, 并将文件夹命名为: DJKS5_身份证号;
(2) 将程序文件压缩为 1 个文件, “rar或 zip”格式, 大小 5M 以下;
(3) 将程序文件通过“上传附件”按钮进行上传。
参考资料
(1)数组 heartB[]和 heartS[]分别为大小心形的点阵数据。 编程时可参考使用。
byte heartB[] = {0x99, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xE7,0xFF};
byte heartS[] = {0xFF, 0xDB, 0x81, 0x81, 0xC3, 0xE7, 0xFF, 0xFF};
(2)String 类库的成员函数及其功能描述如下:
indexOf(val);// 自左向右查找字符 val 在字符串对象实例中的位置。
substring(from,to)// 从字符串对象实例中截取指定位置的字符串。
toInt();// 将字符串转换为整数。
(3)Serial 类库的成员函数及其功能描述如下:
avaiable();// 返回 UART 接收缓冲区中的字节数。
read(); 从 UART 接收缓冲区读取数据。
readString();// 从 UART 接收缓冲区中读取字符串。