- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、实操题
1、1.实操考题(共1题,共100分)
1.主题:按键控制心形图案交互显示
器件:ESP32主控板1块,按键模块1个,8x8LED点阵1个,74HC595移位寄存器芯
片(或模块)及相应辅件。以上模块也可使用分立器件结合面包板搭建。
任务要求:
通过按键控制8x8LED点阵屏在黑屏-小心形图案-
大心形图案之间循环切换显示,具体任务要求如下:
(1)程序启动后,8x8LED点阵最外侧四边的LED灯点亮,中间区域LED灯熄灭;
(2)第1次点击按键,8x8LED点阵屏所有的LED熄灭,呈现黑屏状态;
(3)第2次点击按键,8x8LED点阵屏显示小心形图案;
(4)第3次点击按键,8x8LED点阵屏显示大心形图案;
(5)
依次类推,当再次点击按键时,8x8LED依次在黑屏、小心形图案、大心形图案之
间循环切换显示;
(6)按键输入须进行消抖处理;
(7)程序采用ArduinoC/C++代码编写,不得使用外部库调用;
(8)未作规定处可自行处理,无明显与事实违背即可。
说明:请考生在考试结束前,按照如下要求提交相关文件。
(1)
将程序放在一个文件夹中,压缩为1个“rar或zip”格式文件,并命名为:DJKS5_身
份证号,大小5M以下;
(2)将程序文件通过“上传附件”按钮进行上传;
(3)程序编写过程中不得打开其它示例程序,如发现,实操成绩按照0分处理。
参考资料:
数组heartB[]和heartS[]分别为大小心形的点阵数据。编程时可参考使用。
byteheartB[]={0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF};
byteheartS[]={0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF,0xFF};
评分项:
1.器件及器件连接(20分)
2.功能实现(80分)
(1)
程序启动后,实现8x8LED点阵最外侧四边的LED灯点亮,中间区域LED灯熄灭;
(20分)
(2)
实现第1次点击按键,8x8LED点阵屏所有的LED熄灭,呈现黑屏状态;(15分)
(3)实现第2次点击按键,8x8LED点阵屏显示小心形图案;(15分)
(4)实现第3次点击按键,8x8LED点阵屏显示大心形图案;(15分)
(5)
再次连续点击按键,实现8x8LED依次在黑屏、小心形图案、大心形图案之间循环
切换显示。(15分)
参考答案:由于题目要求使用Arduino
C/C++代码编写,且不得使用外部库调用,因此,我们需要自己编写代码来实现按
键控制8x8LED点阵屏在黑屏-小心形图案-
大心形图案之间循环切换显示的功能。首先,我们需要定义8x8LED点阵的数据,
以及按键输入的处理函数。在程序启动后,将8x8LED点阵最外侧四边的LED灯
亮,中间区域LED灯熄灭。当按下按键时,根据按键次数来显示不同的图案。按键
输入需要进行消抖处理,以防止误判。具体的实现方式可以参考以下代码:```c++
#include#defineBUTTON_PINGPIO_NUM_2#defineDATA_PIN
GPIO_NUM_15#defineCLK_PINGPIO_NUM_14#defineSTROBE_PIN
GPIO_NUM_13byteheartB[]=0x99,0x00,0x00,0x00,0x81,0xC3,0xE7,0xFF;byte
heartS[]=0xFF,0xDB,0x81,0x81,0xC3,0xE7,0xFF,0xFF;bytedisplayData[8]=
0;voidsetup()pinMode(BUTTON_PIN,INPUT_PULLUP);pinMode(DATA_PIN,
OUTPUT);pinMode(CLK_PIN,OUTPUT);pinMode(STROBE_PIN,
OUTPUT);digitalWrite(DATA_PIN,LOW);digitalWrite(CLK_PIN,
LOW);digitalWrite(STROBE_PIN,LOW);for(inti=0;i8;i++){displayData[i]=
0xFF;}for(inti=0;i4;i++){displayData[i]=0x00;displayData[i+4]=
0x00;}shiftOut(DATA_PIN,CLK_PIN,MSBFIRST,
displayDat
原创力文档


文档评论(0)