当前位置:   article > 正文

51单片机独立按键控制LED灯位移_#include void delay(unsigned int xms) {u

#include void delay(unsigned int xms) {unsigned char i, j;wh
  1. #include <REGX52.H>
  2. void Delay(unsigned int xms);//如果子函数放在了主函数后边,一定要在主函数前面声明一下
  3. unsigned char LEDNum;//全局变量,上电默认为0
  4. void main()
  5. {
  6. //unsigned char LEDNum=0;局部变量一定要赋初值
  7. P2=~0x01;
  8. while(1)
  9. {
  10. if(P3_1==0)//左移
  11. {
  12. Delay(20);
  13. while(P3_1==0);
  14. Delay(20);
  15. LEDNum++;
  16. if(LEDNum>=8)
  17. LEDNum=0;
  18. P2=~(0x01<<LEDNum);
  19. }
  20. if(P3_0==0)//右移
  21. {
  22. Delay(20);
  23. while(P3_0==0);
  24. Delay(20);
  25. if(LEDNum==0)
  26. LEDNum=7;
  27. else
  28. LEDNum--;
  29. P2=~(0x01<<LEDNum);
  30. }
  31. }
  32. }
  33. void Delay(unsigned int xms) //@12.000MHz
  34. {
  35. unsigned char i, j;
  36. while(xms--)
  37. {
  38. i = 2;
  39. j = 239;
  40. do
  41. {
  42. while (--j);
  43. } while (--i);
  44. }
  45. }

       如果子函数体放在主函数体的后边,则一定要在主函数前边进行声明;因此我们在主函数中调用其它文件中的函数时,必须在最前边进行包含头文件操作,因为头文件是对一些函数的声明。也就是说我们单片机在执行主函数之前,准备工作要做好,所有的头文件都是准备工作,主函数只负责拿过来用。

全局变量上电默认为0,所以可以不进行赋初值;

局部变量则不可以,一定要赋初值。

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

闽ICP备14008679号