同学们好~!相信大家做完第九届真题之后,再来看第八届试题,一定会觉得似曾相识吧。其实不只是第八届的试题,包括之前的各届试题在内,大家只要仔细看题都会发现,这些试题,几乎都是按键+显示(数码管)+存储+传感器的套路。只是在每一届对传感器的使用以及按键的逻辑要求稍有不同罢了。因此,对于备赛来说,熟悉开发板上每一个模块的使用,还是非常有必要的。
我们在本节中主要分析蓝桥杯第八届省赛题--电子钟,试题pdf文档请摸下方超链接下载。
经过读题分析我们可以简单总结出其中的五大考点:数码管、ds18b20温度传感器、led指示灯、ds1302时钟部分以及独立按键。
有同学很担心,在私下还问我,说:老师,像超声波、温度传感器DS18B20这些模块,我们需要把所有的代码都记住么?到时候会不会只给时序图让自己从头写这些类似传感器等器件的驱动啊?
在研究过历年的考试情况后,在这里我可以较为肯定的跟大家讲,凡是涉及到相关传感器或者是相关芯片的驱动,在考试的时候,这些相关的驱动代码都是会提供的。例如本题中的ds18b20以及ds1302时钟的驱动程序,在考试的时候都会完整提供,大家只需要会用就行了。当然,什么叫做会用呢?举例说明一下,例如使用DS18B20提供的基础函数,能够将温度数据准确的从传感器中读出来,并对该数据进行解析,将其中的有用数据进行存储或者是显示,能达到这个要求,就足够了。在进行第一阶段的练习之后,大家能发现,其实这个要求并不难达到~
另外需要注意在ds1302驱动程序使用时需注意Read_Ds1302读函数中数据的进制转化,否则显示数码管上不会出现相应的数据,而ds18b20温度传感器在每次获取温度时一定要进行忽略rom指令,具体结合数据手册与程序进行分析即可。
本届赛题难点依然在于独立按键的逻辑问题上,跟第九届试题类似。大家在按键处理数据的问题时一定要学会使用标志位,然后通过按键按下后将标志位的返回数值在主函数进行判断,并进行数据加减后显示在数码管上。如何熟练掌握独立按键的逻辑问题还是需要多思考,按键逻辑基本上是一个题目成败的关键。本题中务必采用定时器来控制led小灯的闪烁,否则会对按键扫描产生较大的影响。由第九届和第八届试题看来,定时器的使用是非常重要的。好在我们在第一阶段的练习中都有过系统讲解,大家可以自行前往查看哦。
下面是主函数的简易程序流程图,大家可以参考下:
还是建议大家最好自己先尝试做这些赛题,形成自己独立解决问题的思维,这点非常重要。依照惯例,最后将参考代码奉上,本代码已经在蓝桥板上测试通过。欢迎大家批评指正哦~!
----------------所有代码打包下载链接------------------
14. 2017年蓝桥杯省赛真题解析--电子钟_代码.zip