標(biāo)題: 單片機(jī)的定時(shí)器實(shí)現(xiàn)led燈的定時(shí)一分鐘的減亮漸滅 [打印本頁(yè)]

作者: 曾漢夫    時(shí)間: 2017-12-22 14:00
標(biāo)題: 單片機(jī)的定時(shí)器實(shí)現(xiàn)led燈的定時(shí)一分鐘的減亮漸滅
借用網(wǎng)上的漸變程序,配合單片機(jī)的定時(shí)器功能,實(shí)現(xiàn)一分鐘計(jì)時(shí)以后,發(fā)光led漸暗漸亮的功能

單片機(jī)源程序如下:
  1. /*-----------------------------------------------
  2.   名稱:定時(shí)器0
  3.   內(nèi)容:通過(guò)定時(shí)讓LED燈閃爍
  4. ------------------------------------------------*/
  5. #include<stc15.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
  6. sbit LED0=P3^6;
  7. sbit LED1=P3^7;
  8. sbit LED2=P3^3;
  9. sbit LED3=P1^1;
  10. sbit LED4=P1^2;
  11. sbit LED5=P1^3;
  12. sbit LED6=P1^4;
  13. sbit LED7=P1^5;
  14. sbit key=P3^2;
  15. bit  t1, t2,sudu;
  16. unsigned int CYCLE=1100,PWM_LOW=0,a,b;

  17. void Delay(unsigned int t);

  18. void delays(unsigned char cnt)
  19. {
  20.         unsigned char i;
  21.         unsigned char j;
  22.         unsigned char k;
  23.         
  24.         for(i=cnt;i>0;i--)
  25.         {
  26.                 for(j=cnt;j>0;j--)
  27.                 {
  28.                         for(k=cnt;k>0;k--);
  29.                 }
  30.         }
  31. }     
  32. /*------------------------------------------------
  33.                     定時(shí)器初始化子程序
  34. ------------------------------------------------*/
  35. void Init_Timer0(void)
  36. {
  37. TMOD |= 0x01;          //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響                     
  38. TH0=0x3c;              //給定初值,這里使用定時(shí)器最大值從0開(kāi)始計(jì)數(shù)一直到65535溢出
  39. TL0=0xb0;
  40. EA=1;            //總中斷打開(kāi)
  41. ET0=1;           //定時(shí)器中斷打開(kāi)
  42. TR0=1;           //定時(shí)器開(kāi)關(guān)打開(kāi)
  43. }

  44. void paomadeng(void)

  45. {
  46.           

  47. LED0=1;
  48. Delay(700);
  49. for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  50. {
  51. LED0=1;
  52. Delay(PWM_LOW);
  53. LED0=0;
  54. Delay(CYCLE-PWM_LOW);
  55. }          

  56. LED1=1;
  57. Delay(700);
  58. for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  59. {
  60. LED1=1;
  61. Delay(PWM_LOW);
  62. LED1=0;
  63. Delay(CYCLE-PWM_LOW);
  64. }

  65. LED2=1;
  66. Delay(700);
  67. for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
  68. {
  69. LED2=1;
  70. Delay(PWM_LOW);
  71. LED2=0;
  72. Delay(CYCLE-PWM_LOW);
  73. }
  74. delays(7000);
  75. LED2=0;
  76. Delay(700);
  77. for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  78. {
  79. LED2=1;
  80. Delay(PWM_LOW);

  81. LED2=0;
  82. Delay(CYCLE-PWM_LOW);
  83. }


  84. LED2=1;
  85. LED1=0;
  86. Delay(700);
  87. for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  88. {
  89. LED1=1;
  90. Delay(PWM_LOW);

  91. LED1=0;
  92. Delay(CYCLE-PWM_LOW);
  93. }

  94. LED2=1;
  95. LED1=1;
  96. LED0=0;
  97. Delay(700);
  98. for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
  99. {
  100. LED0=1;
  101. Delay(PWM_LOW);

  102. LED0=0;
  103. Delay(CYCLE-PWM_LOW);
  104. }
  105. LED0=1;

  106. }
  107. /*------------------------------------------------
  108.                     主程序
  109. ------------------------------------------------*/
  110. main()
  111. {
  112. a=0;
  113. Init_Timer0();
  114. while(1)
  115. {
  116. if(a==1119)
  117. {
  118.    
  119.   paomadeng();
  120.   a=0;
  121. ……………………

  122. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
pwm.rar (26 KB, 下載次數(shù): 29)



作者: h1000222    時(shí)間: 2017-12-22 17:57
我要下下來(lái),但下不了,
作者: k9702    時(shí)間: 2021-6-1 15:19
h1000222 發(fā)表于 2017-12-22 17:57
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

挖墳,我能下載啊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1