提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
关于竞赛这块,我也是新手小白一枚,21年刚学了单片机的课程,觉得自己还是挺感兴趣的,因而走上了备赛之路。这篇文章将详细记录我自己的学习心得和做题过程,算是整理一个自己的学习笔记,也希望能够帮助到其他人。
提示:以下是本篇文章正文内容,下面案例可供参考
一、单片机理论知识
这部分推荐一个我自己在跟的课程,就是B站上面的小蜜蜂。但需要注意的是蓝桥杯使用的板子与普中和亚博的不同,备赛还是建议使用比赛的国信板子。同时因为IAP15F2K61S2是比赛指定的单片机芯片,我个人偏好于使用STC15头文件,训练时如果从未接触过单片机的,可以从51单片机的代码学起,进而转向STC15。
二、备赛内容
1.单片机基础知识
01开发板外设问题
由于蓝桥杯使用的开发板于普中和亚博的不同,所以在正常编程过程中需要关注外设问题,即LED和蜂鸣器的问题。根据大赛所给到LED的电路图可以得知:

电路采用M74HC573M1R锁存器对P0口的输出信号进行缓冲,所以针对LED我们要关注的就是Y4,而Y4又是根据HC138译码器得出的。

因而可以得出
P2=(P2&0x1f)|0x80 //Y4
P2=(P2&0x1f)|0xa0 //Y5
P2=(P2&0x1f)|0xc0 //Y6
P2=(P2&0x1f)|0xe0 //Y7
所以外设关闭代码为
P2=(P2&0x1f)|0x80;
P0=0xff;
//LED
P2=(P2&0x1f)|0xa0 ;
P0=0x00;
//蜂鸣器
之所以用到(P2&0x1f)|0x80的赋值方式,是因为直接P2&0x1f,就是保留P2的低5位,将其他高位置0,然后与0x80进行或运算。
简单提一下HC138译码器的工作原理,就是三个输入控制八路互斥的低有效输出,学过数字逻辑的同学可以绘制真值表加深理解,没有学过的同学记住下表就可以
|C |B |A | 输出
|1 |0 |0 | Y4
|1 |0 |1 | Y5
|1 |1 |0 | Y6
|1 |1 |1 | Y7
通过38译码器的输出,结合HC573锁存器来控制各个模块的电路。新手小白如果有其他不懂的问题,可以跟一下B站的数字逻辑课程。
当然在正式比赛过程中的代码肯定是需要有一些封装来灵活使用的,大家可以根据具体题目要求再去打开外设LED或者蜂鸣器。
比如LED就是使能端Y4C输入高电平1,从P0端口输入低电平0,LED灯亮,为1,灯熄灭。也可以通过sbit一个变量来具体解决
如:sbit L1=P0^0; L1=1;(或者L1=0;)来控制等的亮灭
或者可以用:L8=P0^7;L8=~L8;等方式来增加闪烁效果等。
本文记录了一名新手在备赛蓝桥杯单片机竞赛过程中的学习心得,主要涉及单片机理论知识和实战技巧。文章详细解析了IAP15F2K61S2单片机的使用,特别是针对蓝桥杯开发板的外设问题,如LED和蜂鸣器的控制,并介绍了HC138译码器和M74HC573锁存器的工作原理。此外,还分享了如何通过代码控制LED的亮灭以及封装技巧,为后续的模块测试打下基础。
626

被折叠的 条评论
为什么被折叠?



