一、实操题
1、主题:串口交互心形图案显示
器件: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、编写程序文件命名规则为:DJKS5_身份证号,考试完毕拷贝上交备案。
7、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
说明:
参考答案:
略
解析:【喵呜刷题小喵解析】该程序主要是基于ESP32和74HC595驱动8x8LED点阵显示心形图案,并可以通过串口输入报文设置显示时间。程序采用了FreeRTOS作为任务调度器,同时使用了ESP32的GPIO库来控制LED点阵。首先,在`main`函数中,程序会不断从串口读取用户输入的指令,然后调用`parse_command`函数解析指令并设置心形图案的显示时间。`init_gpio`函数用于初始化GPIO,将LED点阵的引脚设置为输出模式。`delay`函数用于产生延时,这里使用了简单的循环延时方式。`set_big_heart`和`set_small_heart`函数分别用于设置大心形和小心形图案的显示时间。这两个函数通过控制LED点阵的引脚电平来显示心形图案。`parse_command`函数用于解析用户输入的指令,提取出大心形和小心形图案的显示时间,并调用`set_big_heart`和`set_small_heart`函数进行设置。如果输入的指令中的时间不在100~999毫秒之间,程序会输出错误信息。以上解析仅供参考,由于无法获取实际的心形图案数据,`set_big_heart`和`set_small_heart`函数中用于显示心形图案的代码并未给出。实际编写时需要根据具体的心形图案数据来实现。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!