找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3813|回复: 2
打印 上一主题 下一主题
收起左侧

单片机的定时器实现led灯的定时一分钟的减亮渐灭

[复制链接]
跳转到指定楼层
楼主
ID:265275 发表于 2017-12-22 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
借用网上的渐变程序,配合单片机的定时器功能,实现一分钟计时以后,发光led渐暗渐亮的功能

单片机源程序如下:
  1. /*-----------------------------------------------
  2.   名称:定时器0
  3.   内容:通过定时让LED灯闪烁
  4. ------------------------------------------------*/
  5. #include<stc15.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
  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.                     定时器初始化子程序
  34. ------------------------------------------------*/
  35. void Init_Timer0(void)
  36. {
  37. TMOD |= 0x01;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响                     
  38. TH0=0x3c;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
  39. TL0=0xb0;
  40. EA=1;            //总中断打开
  41. ET0=1;           //定时器中断打开
  42. TR0=1;           //定时器开关打开
  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. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
pwm.rar (26 KB, 下载次数: 29)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:265416 发表于 2017-12-22 17:57 | 只看该作者
我要下下来,但下不了,
回复

使用道具 举报

板凳
ID:609192 发表于 2021-6-1 15:19 | 只看该作者
h1000222 发表于 2017-12-22 17:57
**** 作者被禁止或删除 内容自动屏蔽 ****

挖坟,我能下载啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表