A21137. 主题:串口交互可调红绿灯倒计时牌仿真器件:ESP32主控板、按键模块、四位数码管、74HC595移位寄存器芯片(或模块)及相关器件。以上模块也可以采用分立器件结合面包板进行搭设。任务要求:使用四位数码管模拟交通路口红绿灯的倒计时牌,倒计时牌的显示内容通过串口输入报文实现控制。报文的格式为:XX-YY-ZZ,其中XX表示总的通行时长,范围10~20;YY表示闪烁显示的时间,范围0~9;ZZ表示闪烁…
题目描述
主题:串口交互可调红绿灯倒计时牌仿真
器件:ESP32主控板、按键模块、四位数码管、74HC595移位寄存器芯片(或模块)及相关器件。以上模块也可以采用分立器件结合面包板进行搭设。
任务要求:使用四位数码管模拟交通路口红绿灯的倒计时牌,倒计时牌的显示内容通过串口输入报文实现控制。
报文的格式为:XX-YY-ZZ,其中XX表示总的通行时长,范围10~20;YY表示闪烁显示的时间,范围0~9;ZZ表示闪烁显示的时间间隔。系统默认的报文为:15-5-100,表示路口总的通行时长为15秒,当倒计时时间还剩下5秒时,四位数码管开始闪烁显示,闪烁显示的时间间隔为100毫秒。
具体要求如下:
(1) 装置通电启动后,在四位数码管显示今天的日期:1214;
(2) 点击按键,装置进入工作状态,四位数码管按照默认的报文数据开始倒计时显示;
(3) 在串口监视器窗口输入框输入上述格式的新报文后,在串口监视器窗口输出解析后的相应报文内容。以报文“15-5-100”为例,串口监视器窗口输出的内容为:总时长:15 倒计时:5 间隔:100;
(4) 在串口监视器中,输入新的报文数据后,四位数码管按照新输入的报文数据倒计时显示;
(5) 四位数码管须使用74HC595移位寄存器芯片驱动显示。如采用其他方式,本实操成绩得0分;
(6) 程序采用Arduino C/C++代码编写,不得使用外部库调用;
(7) 未作规定处可自行处理,无明显与事实违背即可。
说明:程序编写过程中不得打开其它示例程序,如发现,实操成绩按照0分处理。
请考生在考试结束前,按照如下要求提交相关文件。
(1) 将程序放在一个文件夹中,压缩为1个“rar或zip”格式文件,并命名为:DJKS5_身份证号,大小5M以下;
(2) 将程序文件通过“上传附件”按钮进行上传。
参考资料:
(1) 数组NUM[] 保存的是0~9和'.'十六进制形式的数码管显示的段位信息。编程时可参考使用。
// 保存0~9
byte NUM[] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
(2) String类库的成员函数及其功能描述如下:
indexOf(val); // 自左向右查找字符val在字符串对象实例中的位置。
substring(from,to) // 从字符串对象实例中截取指定位置的字符串。
toInt(); // 将字符串转换为整数。
(3) Serial类库的成员函数及其功能描述如下:
avaiable(); // 返回UART接收缓冲区中的字节数。
read(); // 从UART接收缓冲区读取数据。
readString(); // 从UART接收缓冲区中读取字符串。
参考答案
评分组成
1. 电路搭设(20分)
元器件:
(1) 装置中包含74HC595移位寄存器模块(或元器件);(2分)
(2) 装置中包含按键模块(或元器件);(2分)
(3) 装置中包含四位数码管;(2分)
电路搭设:
(4) 四位数码管与74HC595移位寄存器模块(或元器件)正确连接;(5分)
(5) 74HC595移位寄存器模块(或元器件)与主控板正确连接;(5分)
(6) 按键模块(或元器件)与主控板正确连接。(4分)
2. 功能实现(80分)
(1) 实现装置通电启动后,在四位数码管显示今天的日期:1214;(10分)
(2) 点击按键后,装置进入工作状态,实现四位数码管从15开始倒计时显示,时间间隔为1秒;(15分)
(3) 实现当通行时长还剩下5秒时,四位数码管开始闪烁显示,闪烁时间间隔为100毫秒;(15分)
(4) 听从测评师老师的指令输入新的报文数据后,实现在串口监视器中按任务要求的照格式输出解析后的数据;(10分)
(5) 四位数码管实现按新输入的报文数据开始倒计时显示,时间间隔为1秒;(15分)
(6) 四位数码管实现按新输入的报文数据的时间和间隔闪烁显示。(15分)