![e81abc0252db501aa266c8e5000ab4ab.gif](https://i-blog.csdnimg.cn/blog_migrate/9d6c372233394ffb53ddce8960d6ec85.gif)
上周日,曾获得蓝桥杯国赛二等奖的杨文哲学长为准备参加蓝桥杯的同学们进行了线上直播经验分享,大家都看了吗?
错过的话也没有关系,这里给大家做了相关的总结,方便没有看直播的同学进行学习~
01
赛前准备
获取相关资料:
http://39.105.218.125/files/data/Blue-Bridge-Data/
要善用官方资料,死记硬背很少,比赛时会提供驱动和单片机手册等资料,会从里面出选择题,准备时应尽量以代码为主,练习几次以后再看官方的电路图,便于理解。
开发板:国赛常考矩阵键盘,省赛主要是用板子上四个按键的键盘,省赛不会考超声波,国赛某年考过一次,适当了解。
开发软件:比赛第一件事—添加头文件,注意系统频率与比赛题目要求的匹配。
熟练从零构建基本框架:
1.STC软件 添加头文件
2.新建工程代码,添加main.c文件和官方提供的几个驱动(无论是否需要)
3.对官方提供的驱动进行基本的修改
4. 在main.c中放入软件生成的常用的延时、数码管配置、按键检测、初始化等函数,并在主函数中初始化,while(1)等框架。
放题后:
1.根据需要,在main.c函数中使用extern关键词连接驱动中的变量——共享变量
2.首先对整体要求做出评估,分配好资源(定时器等),构想出大概的代码结构,适当使用中间变量,善用函数封装,对刷新时间做好认识,然后按功能一个一个地加入实现,以功能为单位进行测试。
活用多文件共享变量:
![a56bfd9b783cfbaa7096d956de5b3f2e.png](https://i-blog.csdnimg.cn/blog_migrate/153e3cec5d8cce07bf2e34ffde8f43c1.png)
![142a294d83e8855944c169a97d4bdbab.png](https://i-blog.csdnimg.cn/blog_migrate/2f320f3c7d2419c402d29cb36101ab0e.png)
•模块的官方驱动修改
•对于比赛提供的官方驱动代码,一定去下最新的,注意自己需要改动的地方。
•如时间外设的修改一般就是BCD码的来回映射,比较容易
•而其他的两个,是延时上的处理或者是自己需要额外添加函数(如A/D)
•对于延时类的一定多加注意,多进行实测,背下来正确的修改方式,比赛时注意官方提供的代码。
•多自己实践,唯一需要多加记忆的地方就是这个驱动的修改。
http://39.105.218.125/files/data/3.21.rar
关于外设,按复杂度分级:
第一级:LED 数码管 蜂鸣器 键盘(建议不要占用宝贵的定时器资源)
第二级:EEPROM 温度传感器 A/D DS1302
第三级:各类中断以及超声波
1.键盘的注意点:
![fb49d4389bbcf7b8797eca376d9be131.png](https://i-blog.csdnimg.cn/blog_migrate/d46e48ac3c91353401369d718d2b8eb7.png)
电路图要牢记
记得消抖,消抖时间100ms
矩阵键盘时,记得P42、P44
检测代码优化、熟练
进阶要求:长按检测、双击(赛前练习)
2.数码管的注意点:
(1)时间分配、资源分配、代码正确组织结构。需要额外注意,也是硬件和软件的最大区别;单片机的执行——单线程,对于数码管的刷新以及上级要求,经常题目会用到两个定时器,定时器的分配和时间的分配要多加练习,数码管的时间牢(2ms),防止数字不清晰。
(2)正确理解单片机控制外设过程,思考打断过程。P0、P2的配合,对照原理图可发现,是寻址-赋值的过程;对于定时器的打断,特别是非常快的定时器等需要注意;切换地址后是否在退出中断函数时需要还原地址,还原现场。
(3) 巧用缓存。降低定时器中断内的计算量;对于很多需要计算类的显示,可利用刷新函数,对中间结果进行刷新,而不是放在定时器里处理,防止数码管刷新频率太高而计算不完!
刷题技巧:
往年题目练习——求质不求量
刷往年题是后期准备,前面功夫差不多情况下,刷往年题巩固一下,一般三四个即可。
主要把握不同功能的组合和形成自己的开发思路,自圆其“码”,无论是否看答案,一定完整自己敲一遍。
对于定时器、串口、中断等知识的内容要分为两阶段,一是会用,二是理解,理解每个代码背后的意义,有助于提高认识,也有助于后续单片机嵌入式等学习。
对于模电数电知识,需要找点比赛的原题进行总结反思,考的都是比较简单但实用或是重要的知识,如:
• 运算放大器的基本电路分析(必考)
• 二极管特性基础知识
• 欧姆定理等电路方面的基本计算
建议复习方式:以刷往年题为主,国赛15道选择题,且为不定项选择。
02
比赛过程
放题前:
检查座位号!
STC导入库
建工程
码框架—初始化、数码管、按键(有 时间就码出矩阵的)
改驱动
放题后:
20min 解决基础题目
设计结构、写伪代码
挨个模块功能进行添加、验证
完成后仔细对照功能需求检查验证基 础题目。
对于大题,先在草纸上列结构框架,伪代码和标志位一定要写清楚,防止复现时候犯糊涂和卡壳。
03
学长经验分享各类易坑点:
1.各类代码驱动模块的修改
2.数码管亮度不正常及相关原因
3.按键检测、以及变形按键检测
4.高频的中断换址后没有恢复P2(自己去摸索)
5. 时钟频率与题目一致,软件配置时也要一致!
6. 注意代码精简和可维护,善用中间状态变量、代码函数封装减少冗余,代码嵌套布局,特别是中断嵌套的函数需要多加小心、练习和熟悉
7.闲着没事多看看电路原理图,对照一下,能更深度理解代码的过程,也有助于记忆或减少代码记忆
8. 计数器、超声波等应用,要善用STC软件设置辅助记忆
国赛经验分享:
整体而言,国赛的题目比省赛更认真了些,难度没有很大提升,但复杂度相对提升了些,以下几点需要额外关注:
• 基础知识
• 代码构建的可维护性(先思考再动手)
• 题目理解的准确性
•实现过程的效率和层次性
提早出发,不要迟到!
从基础出发,不要执着难怪
多攒、多练、多看
回顾基础知识
积累注意点并熟记,建议准备一个小本,专记相关的关键代码和记忆点
最后提醒一下:比赛可以输,蜂鸣器必须关。
录播视频链接:https://bhpan.buaa.edu.cn:443/link/6152E8A0535E16FF24ED7AFE7C59DE6A
有效期限:2020-04-21 23:59
新闻 / 高天宇
文案 / 潘小羽
排版 / 赵金静
![7775f752afeecee67e7dc6f676e65cbd.png](https://i-blog.csdnimg.cn/blog_migrate/9988c12a1d9734eacdaf3183310b05de.jpeg)