欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8234|回復: 0
收起左側

51單片機:LED燈 的所有代碼(集中在一起)

[復制鏈接]
ID:103513 發表于 2016-1-17 01:22 | 顯示全部樓層 |閱讀模式
  1. /*
  2. 點亮LED燈:方1  位操作方式   sbit D1=P1^0;
  3.     方2  總線方工     P1=0x??;
  4. 讓LED燈閃爍
  5. */
  6. /*
  7. //方1:位操作方式點亮LED
  8. #include<reg52.h>
  9. sbit  D1=P1^0;      //P1^0的P必須是大寫
  10. void main()
  11. {
  12.     D1=0;        //使用P1^0必須先經過sbit定義,而不能直接用P1^0=0;否則編譯過不了
  13. }
  14. */

  15. //-----------------------------------------------------------------------------------------------------------
  16. /*
  17. //方2:總線方式點亮LED
  18. #include<reg52.h>
  19. void main()
  20. {
  21.     P1=0xfd;         //1111 1100 LED是共陽的,低電平時點亮,所以就是LED1和2燈被點亮
  22. }
  23. */

  24. //-----------------------------------------------------------------------------------------------------------
  25. /* 讓LED燈閃爍    采用位點亮+內部循環進行延時
  26. #include <reg52.h>
  27. sbit D1=P1^3;              //隨便一個你也可改為P1^0,注意P要大寫的才可以
  28. unsigned int a;
  29. void main()
  30. {
  31. D1=0;
  32. for (a=0;a<=20000;a++) {};       //for循環 {}空操作即可形成延時效果
  33. D1=1;
  34. for (a=0;a<=20000;a++) {};
  35. }
  36. */

  37. //-----------------------------------------------------------------------------------------------------------
  38. /*
  39. //讓LED燈閃爍    采用位方式+delay延時函數方式
  40. #include <reg52.h>
  41. sbit D1=P1^0;    //位操作方式
  42. unsigned int a;
  43. void delay(int x)         //延時
  44. {
  45. int a,b;
  46. for(a=x;a>0;a--)
  47. for(b=110;b>0;b--);
  48. }
  49. void  main()
  50. {
  51. D1=0;
  52. delay(50);         

  53. D1=1;
  54. delay(50);
  55. /
  56. }
  57. */

  58. //-----------------------------------------------------------------------------------------------------------
  59. /*
  60. //讓3個燈一起閃爍  ,采用總線方式
  61. #include<reg52.h>
  62. unsigned int a;
  63. void delay(int x)          //延時
  64. {
  65. int a,b;
  66. for(a=x;a>0;a--)
  67. for(b=110;b>0;b--);
  68. }
  69. void main()
  70. {
  71. P1=0xf8;             //1111 1000,點亮前3個燈,3個燈一起閃爍
  72. delay(500);
  73. P1=0xff;
  74. delay(500);
  75. }
  76. */

  77. //-----------------------------------------------------------------------------------------------------------
  78. /*
  79. //讓LED燈閃爍   采用wlile方式
  80. #include <reg52.h>
  81. sbit P10=P1^0;
  82. int a;
  83. void main()
  84. {
  85. while(1)
  86.   {
  87.      a=51000;
  88.      P10=0;         //點亮燈
  89.      while(a--);    //程序停在這里,一直執行減法,直到a從51000減到0后退出循環,這就形成延時
  90.      a=5100;      //前面a已經減成0了,這里再給它個初值
  91.      P10=1;
  92.     while(a--);    //又從初值51000減到0為止,形成延時效果
  93. }
  94. }
  95. */
  96. //-----------------------------------------------------------------------------------------------------------
  97. /*
  98. //流水燈 ,在PIC單片機里流水燈只要設整個端的0x??值然后采用端口值=端口值<<1左移1位即可形成流水燈
  99. //而在52單片機里卻不行,得用_crol關皺字,而這個關鍵字又是在另一頭文件intrins.h里,所以在開頭就得先包含它_
  100. #include <reg52.h>
  101. #include <intrins.h>     //因為要用到corol這一關鍵字
  102. #define uchar unsigned char
  103. sbit P23=P2^3 ;
  104. sbit D1=P1^0;
  105. void delay(int x)
  106. {
  107. int a,b;
  108. for(a=x;a>0;a--)
  109. for(b=110;b>0;b--);
  110. }
  111. void main()
  112. {
  113. uchar a,temp;
  114. temp=0xfe;
  115.   for (a=8;a>0;a--)   //循環8次

  116.       {
  117.         P1=temp;
  118.        temp=_crol_(temp,1); //移動
  119.       delay(100);
  120.      }
  121. }
  122. */

  123. //-----------------------------------------------------------------------------------------------------------

  124. //流水燈 :正流+倒流;在PIC里流水燈只要設整個端的0x??值然后采用端口值=端口值<<1左移1位即可形成流水燈
  125. //而在52單片機里卻不行,得用_crol關皺字,而這個關鍵字又是在另一頭文件intrins.h里,所以在開頭就得先包含它
  126. #include <reg52.h>
  127. #include <intrins.h>     //因為要用到corol這一關鍵字
  128. #define uchar unsigned char
  129. sbit P23=P2^3 ;
  130. sbit D1=P1^0;
  131. void delay(int x)
  132. {
  133. int a,b;
  134. for(a=x;a>0;a--)
  135. for(b=110;b>0;b--);
  136. }
  137. void main()
  138. {
  139. uchar a,temp;
  140. temp=0xfe;
  141.   for (a=8;a>0;a--)   //循環8次

  142.      {
  143.       P1=temp;
  144.       temp=_crol_(temp,1); //移動
  145.       delay(100);
  146.      }
  147. temp=0x7f;              //注意這一句,如果沒有這一句,下面的語句循環是循環了,卻沒東西出來
  148.     for (a=8;a>0;a--)   //循環8次,即流水燈8個循環8次即可點亮8個
  149.    {
  150.      P1=temp;
  151.     temp=_crol_(temp,-1); //移動
  152.      delay(100);
  153.    }
  154. }
復制代碼


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表