当前位置:   article > 正文

蓝桥杯第十四届-电子类单片机国赛_蓝桥杯第14届单片机国赛实验报告

蓝桥杯第14届单片机国赛实验报告

        第十四届国赛的参数调节部分与以往不同,出现了负参数。由于平时这类参数都使用的是unsigned int和unsigned char类型,因此突然遇到负数会让人感到有些困惑。下面提供一个实例以供参考。

        代码中的“voltage”是需要使用按键调节的电压参数,其阈值为-5V至5V。通过以下程序,可以实现按下按键一次,电压参数自增0.5V,超过5V时切换至-5V。为了方便数码管显示,abs((int)(voltage10)/10)用于获取电压参数的整数部分,abs((int)(voltage10)%10)则获取小数部分。通过判断“voltage”是否小于0,可以让数码管在电压参数为负数时显示负号。

  1. #include <stdio.h>
  2. #include <math.h>
  3. char keyboard;
  4. float voltage = 0; // -5v-5v
  5. void test()
  6. {
  7. keyboard = getchar();
  8. if( keyboard == 'k' ) //按键被按下
  9. {
  10. voltage += 0.5;
  11. if( voltage == 5.5 ) //范围控制 电压参数-5v-5v
  12. voltage = -5;
  13. printf("voltage:%f\r\n",voltage);
  14. printf("%d",(int)(voltage*10));
  15. if(voltage < 0) printf("是负数\t");
  16. else printf("是正数\t");
  17. printf("个位是%d\t",abs((int)(voltage*10)/10));
  18. printf("小数位是%d\r\n",abs((int)(voltage*10)%10));
  19. }
  20. }
  21. int main()
  22. {
  23. while(1)
  24. {
  25. test();
  26. }
  27. }
运行视图

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

闽ICP备14008679号