标题: 单片机呼吸灯程序 [打印本页]

作者: xmg666    时间: 2018-12-11 02:25
标题: 单片机呼吸灯程序
感觉这个难度系数对于我这个初学者来说有点大,求大神们指导!
  1. #include "reg52.h"
  2. sbit pwm0=P2^0;
  3. unsigned char tim=0,zkb=1,flag=0; //tim用来记录定时次数



  4. void Timer1_ini()         //定时器1初始化函数
  5. {
  6.         EA=1;                   //开总中断
  7.         ET1=1;                  //开定时器1中断
  8.         TMOD=0x20;              //定时器1工作在方式2
  9.         TR1=1;                  //启动定时器1
  10.         TH1=255-50;  //定时50us高8位初值
  11.         TL1=255-50;  //定时50us低8位初值
  12. }

  13. void INT_Timer1() interrupt 3   //定时器1中断入口,定时器1中断服务
  14. {
  15.         
  16.         tim++;                   //定时器1中断次数,每进入中断一次,次数加1
  17.         if(tim>=200)           //pwm周期=250*定时时间
  18.         {
  19.                 tim=0;
  20.                
  21.                 if(flag==0)        {zkb++;        if(zkb>=150) flag=1;}        //改变占空比        得到呼吸灯效果
  22.                 else              {zkb--;if(zkb<1) flag=0;}     //改变占空比        得到呼吸灯效果
  23.         }
  24.         
  25.         if(tim<zkb)             //zkb为占空比
  26.                 {
  27.                                 pwm0=0;
  28.                 }
  29.                 else
  30.                 {
  31.                                 pwm0=1;
  32.                 }
  33.   
  34. }


  35. void main()
  36. {
  37.                 Timer1_ini();
  38.                 while(1);
  39. }
复制代码


呼吸灯.rar

11.63 KB, 下载次数: 15, 下载积分: 黑币 -5


作者: hokkan    时间: 2018-12-11 16:02
很好用,谢谢!
作者: lon7085    时间: 2018-12-11 16:16
请问这程序有碰到什么问题吗?可互相讨论下
作者: 风花雪月@    时间: 2019-1-20 17:57
可以,谢谢
作者: azi197417    时间: 2019-2-18 00:55
这个程序比较容易读懂




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1