草庐IT

蓝桥杯单片机快速得奖方法(分享一些实用技巧)

花落已飘 2023-05-20 原文

文章目录


前言

又快到一年一度的蓝桥杯了,相信有很多小伙伴都开始在准备蓝桥杯了吧,假如你参加的是蓝桥杯单片机组那么你有福了,请认真看我这篇文章。下面我将为大家讲解蓝桥杯得奖技巧。

一、蓝桥杯单片机痛点

1.LED灯微亮

2.数码管微亮

3.蜂鸣器乱叫

4.驱动程序不会写

5.按键程序灵敏度低容易误操作

6.矩阵按键代码总是记不住一写就忘记

7.使用大量延时函数导致程序运行效率低下

二、痛点解决方法

1.锁存器的错误操作

我们将LED灯微亮、数码管微亮、蜂鸣器乱叫等归结为锁存器的操作错误。因为蓝桥杯单片机板子的特性,我们在操作锁存器中很容易发生错误,从而导致各种各样的错误。
在比赛中出现这种失误是非常可惜的,明明实现了功能为什么我却还是省三?这不公平啊。很多小伙伴会发出这样的质疑。我理解大家的心情,这确实很可惜,但是你为什么不想自己身上的原因呢?
功能实现了不代表就会有高分,写一个代码实现了功能不代表就是好代码。我们写代码不仅仅要考虑功能的实现,而且还要考虑程序的运行效率和流畅度,尽可能的减小误差和错误的出现。这些我们才能立于不败之地。
说了那么多我们上重点问题的解决方法:
这里我引用了蓝桥之路里面的一些内容:
大家可以学习一下此书精华部分(本人通过学习此书得到国二)

2.代码不熟练

很多小伙伴都困于驱动函数和矩阵按键中,怕比赛中出现了自己不会的驱动程序或者出现了矩阵按键。
为什么怕矩阵按键?因为矩阵按键代码长啊,背不住啊。这是一个原因,那我想问问大家我们写程序是通过背住的吗?作为一个程序员我们是需要去背代码吗?如果是那么我可以说你是一个差的程序员。矩阵按键我们需要去理解他的原理,然后再自己多练习多写,这样不需要背我们也能快速写出代码。
这里附上使用蓝桥之路编写的高效矩阵按键写法供大家参考:
矩阵按键算法

为什么怕驱动程序:因为看不懂时序图,编码能力差。比如IIC驱动甚至连开始信号和停止信号都看不懂是什么意思,这就会导致写不出驱动程序。

3.没有高效的代码

使用了大量的延时函数将导致我们的代码实时性差,系统卡顿,这样将会导致各种各样的BUG,这里我们需要使用定时器对程序进行修改。减少程序中对延时函数的依赖性,提高系统运行效率。

总结

说了那么多,大家可以去学一下蓝桥之路这本书,他可以帮你从0基础变成国赛大佬,哈哈哈多说不如大家自己去尝试,大家有蓝桥杯单片机的问题都可以找我留言。
希望大家都能在今年比赛中取得好成绩,加油!

有关蓝桥杯单片机快速得奖方法(分享一些实用技巧)的更多相关文章

  1. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  2. ruby-on-rails - 如何生成传递一些自定义参数的 `link_to` URL? - 2

    我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些

  3. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  4. 动漫制作技巧如何制作动漫视频 - 2

    动漫制作技巧是很多新人想了解的问题,今天小编就来解答与大家分享一下动漫制作流程,为了帮助有兴趣的同学理解,大多数人会选择动漫培训机构,那么今天小编就带大家来看看动漫制作要掌握哪些技巧?一、动漫作品首先完成草图设计和原型制作。设计草图要有目的、有对象、有步骤、要形象、要简单、符合实际。设计图要一致性,以保证制作的顺利进行。二、原型制作是根据设计图纸和制作材料,可以是手绘也可以是3d软件创建。在此步骤中,要注意的问题是色彩和平面布局。三、动漫制作制作完成后,加工成型。完成不同的表现形式后,就要对设计稿进行加工处理,使加工的难易度降低,并得到一些基本准确的概念,以便于后续的大样、准确的尺寸制定。四、

  5. ruby - 找一些句子 - 2

    我想找到在某些文本中找到一些(让它是两个)句子的好方法。什么会更好-使用正则表达式或拆分方法?你的想法?应JeremyStein的要求-有一些例子示例:输入:ThefirstthingtodoistocreatetheCommentmodel.We’llcreatethisinthenormalway,butwithonesmalldifference.IfwewerejustcreatingcommentsforanArticlewe’dhaveanintegerfieldcalledarticle_idinthemodeltostoretheforeignkey,butinthis

  6. ruby block 并从 block 中返回一些东西 - 2

    我正在使用ruby​​1.8.7。p=lambda{return10;}deflab(block)puts'before'putsblock.callputs'after'endlabp以上代码输出为before10after我将相同的代码重构到这里deflab(&block)puts'before'putsblock.callputs'after'endlab{return10;}现在我收到LocalJumpError:意外返回。对我来说,这两个代码都在做同样的事情。是的,在第一种情况下我传递了一个过程,在第二种情况下我传递了一个block。但是&block将该block转换为pro

  7. Unity Shader 学习笔记(5)Shader变体、Shader属性定义技巧、自定义材质面板 - 2

    写在之前Shader变体、Shader属性定义技巧、自定义材质面板,这三个知识点任何一个单拿出来都是一套知识体系,不能一概而论,本文章目的在于将学习和实际工作中遇见的问题进行总结,类似于网络笔记之用,方便后续回顾查看,如有以偏概全、不祥不尽之处,还望海涵。1、Shader变体先看一段代码......Properties{ [KeywordEnum(on,off)]USL_USE_COL("IsUseColorMixTex?",int)=0 [Toggle(IS_RED_ON)]_IsRed("IsRed?",int)=0}......//中间省略,后续会有完整代码 #pragmamulti_c

  8. ruby - 如果键存在,向散列值添加一些东西? - 2

    我在Ruby中有一个哈希:hash=Hash.new里面有一些键值对,比如说:hash[1]="One"hash[2]="Two"如果散列包含键2,那么我想将“Bananas”添加到它的值中。如果散列没有键2,我想创建一个新的键值对2=>"Bananas"。我知道我可以通过首先使用has_key?检查散列是否具有key2来做到这一点,然后采取相应的行动。但这需要一个if语句和不止一行。那么是否有一种简单、优雅的单行代码可以实现这一目标? 最佳答案 这个有效:hash[2]=(hash[2]||'')+'Bananas'如果您希望所有

  9. 蓝桥杯备赛(二) - 2

    目录前言: 一、ASC分析代码实现二、 卡片分析代码实现三、 直线分析代码实现四、货物摆放分析代码实现小结:前言:  在刷题的过程中,发现蓝桥杯的题目和力扣的差别很大。让人有一种不一样的感觉,蓝桥杯题目偏向对于实际问题用编程去的解决,而力扣给人感觉很锻炼自己的编程思维,逻辑能力。两者结合去刷,相信会有不一样的收获。 一、ASC  已知大写字母A的ASCII码为65,请问大写字母L的ASCII码是多少?分析  这道题目看上去很简单,我们需确定自己计算的准确,所以我建议用编程去解决。代码实现publicclassTest8{publicstaticvoidmain(String[]args){Sy

  10. ruby - 使用 gmail gem 跟踪一些电子邮件 - 2

    我正在使用gmailgem发送电子邮件,我需要跟踪这些电子邮件。我该怎么做?我正在尝试搜索带有message_id的电子邮件,但它会从我的收件箱中提取所有电子邮件,而我只想要特定电子邮件的回复。这是我的实际代码:*使用message_id保存电子邮件*mail=gmail.deliver(email)Email.create(:message_id=>mail.message_id,:from=>user.email,:to=>annotation.to,:body=>annotation.content,:title=>annotation.title,:annotation=>an

随机推荐