一、实操考题
主题:串口交互数字显示装置
器件:ESP32主控板、四位数码管、74HC595串口寄存器芯片(或模块)及相关器件。
要求:
使用74HC595串口寄存器芯片控制四位数码管显示数字,通过串口输入报文指定数字显示的位段及该位段所显示的数字。
报文的格式为:Sx:Nn,其中x表示数码管的位段编号,范围1~4;n表示该位段所显示的数字,范围0~9。报文示例S2:N9,表示在四位数码
管的第2个位段显示数字9。
具体要求如下:
1、程序启动后,四位数码管显示今天的日期:1212。
2、在串口监视器窗口输入框输入上述格式的报文后,在串口监视器窗口输出解析后的相应报文内容。以报文S2:N9为例,串口监视器窗口
输出的内容为Seg:2 - Num:9。
3、四位数码管根据报文的内容在指定的位段显示指定的数字,直至在串口输入新的报文数据。
4、任务呈现时,由测评老师发出指定的报文数据。
5、程序采用C代码编写,不得使用外部库调用。
6、未作规定处可自行处理,无明显与事实违背即可。
7、编写程序文件命名规则为:DJKS5_身份证号,考试完毕拷贝上交备案。
8、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
说明:
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接收缓冲区读取数据
read(); // 从UART接收缓冲区读取数据。
readString(); // 从UART接收缓冲区中读取字符串。
二、评分组成
实操题总分100分,由两部分组成,分别为:电路搭设和功能呈现。其中电路搭设分值20分,功能呈现80分。
三、电路搭设评分 -- 总分20分
本题可采用单块74HC595移位寄存器芯片、两块74HC595移位寄存器芯片或74HC595移位寄存器芯片模块进行电路搭设。如没有采用
7474HC595移位寄存器芯片,电路搭设为0分。
原器件:
1、装置中包含74HC595移位寄存器模块(或元器件),得5分。
2、装置中包含四位数码管,得 5分。
电路搭设:
3、8x8LED点阵与74HC595连接正确连接,得5分。
4、74HC595与主控板正确连接,得5分。
四、功能呈现评分 -- 总分80分
测评老师可以根据得分条款中给定的报文内容,要求考生显示,也可以依据报文规则,自己指定报文内容。
1、程序启动后,四位数码管显示数字“1212”,得20分。
2、测评老师通知学生输入报文:S1:N6,实现在串口监视器正确显示解析后的报文Seg:1-Num:6,得15分。
3、实现在四位数码管第1位段显示数字6,得15分。
4、测评老师通知学生输入报文:S4:N9,实现在串口监视器正确显示解析后的报文Seg:4-Num:9,得15分。
5、实现在四位数码管第4位段显示数字9,得15分。