当前位置:   article > 正文

新收获——蓝桥杯单片机第十四届国赛程序设计题_蓝桥杯单片机设计与开发14届国赛

蓝桥杯单片机设计与开发14届国赛

大家要是初学,可以去看西风那里的系统课程,非常全面,有利于形成你自己的代码风格

笔者发文章只是分享性的,有需要者才拿去用其中的一个小片段

代码在这:

一、这个是首写自主完成的,bug应该也是没有的,然后注释比较多,是优化前的版本

链接:https://pan.baidu.com/s/1IFWSZ8gDggN4YAuIGGIq2Q?pwd=1234 
提取码:1234

二、第一次默写,里面bug笔者是没发现有的,功能都实现了应该,因为第一次默写,所以有优化和新bug的修复

链接:https://pan.baidu.com/s/1RtNhYbRDkt2QBoK-v5z5pg?pwd=1234 
提取码:1234

三、第二次默写,边写文章边写的,代码注释很少,足够简洁。

链接:https://pan.baidu.com/s/1Gtoc8wBm_072GaaUoWIzcg?pwd=1234 
提取码:1234

这次文章里面就不以完成顺序来写了,这次新收获了很多知识,主要是以这个顺序进行分享。

1.seg_char[10]中10为什么不能是9

2.为什么按键在测试时会出错而且双按会影响到别的按键

3.限制新写法

4.有负数怎么办

1变量类型改一下

2可以直接比较

        电脑还是能识别出-90比0小的。

5.双按加长按怎么办

        直接使用差值法就不需要在定时器中加加time_6s。

6.一个数据俩种单位显示怎么办

7.遇到超声波测距怎么办(重要知识点)

1定时器0配置

2引脚和函数声明

3函数主体

       在main.c最下面写。

  1. float rd_distance(void)
  2. {
  3. //注释在之前的超声波模块文章里面讲得比较清楚了
  4. float distance_val=0.0;
  5. uc num=10;
  6. TX=0;
  7. TL0 = 0xF4;
  8. TH0 = 0xFF;
  9. TR0=1;
  10. while(num--)
  11. {
  12. while(TF0==0);
  13. TX=~TX;
  14. TF0=0;
  15. }
  16. TR0=0;
  17. TL0 = 0;
  18. TH0 = 0;
  19. TR0=1;
  20. while((RX==1)&&(TF0==0));
  21. TR0=0;
  22. if(TF0==1)
  23. {
  24. TF0=0;
  25. distance_val=255.0;
  26. }
  27. else
  28. distance_val=(((TH0<<8|TL0)*(tran_vate/20000.0))+cail_val);
  29. //20000刚好是将单位换算成cm/us 切记左边是float类型,一定要将20000写成20000.0进行浮点数运算
  30. return distance_val;
  31. }

              然后有个小建议就是将读取操作放在显示旁边,这样比较灵敏。

8.如果要同时改一坨数据怎么办

        最好是封装起来,简洁方便。

9.十进制转二进制

10.遇到继电器控制怎么办

        底层模板函数在之前文章三大模板之中。

        至此,国赛第十四届的代码也完成了,由于是自主完成,所以现象可能跟标准不太一样,但是要有的功能都是实现的了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/642875
推荐阅读
相关标签
  

闽ICP备14008679号