52单片机管理三组pwm波

#include<reg52.h>
#include<stdio.h>
#include<intrins.h>  
sbit out1 = P0^0;
sbit out2 = P0^1;
sbit out3 = P0^2;


int t1;
int t2;
int t3;

int T1;
int T2;
int T3;


void Time1(void)//开启定时器,1ms进一次中断函数
{
        TMOD =0x01 ;        
        TH1 = (65536-100)/256;         
        TL1  = (65536-100)%256;       
        ET1 = 1;            
        EA = 1;             
        TR1 = 1;         
}
void Time11(void) interrupt 3 //中断函数
    
{       
         static int Count1=0;   
         static int Count2=0;  
         static int Count3=0;
       TH1 = (65536-100)/256;  //重新令定时器计时       
        TL1  = (65536-100)%256; 
        if(Count1 >= t1)
        {
           out1 = 1;                                                 
        }
        else
        {
           out1= 0;
        };
        Count1++;
        if(Count1 == T1)
        {
            Count1=0;
            if(pwm1 != 0)
            {
              out1= 0;     
            }
        }
    //*******************************************
       if(Count2 > t2)
        {
           out2 = 1;              
        }
       else
       {
           out2= 0;
        }; 
        Count2++;
        if(Count2 == T2)
         {
            Count2=0;
           if(pwm2 != 0)
            {
             out2= 0;     
            }
        }

//*************************************
      if(Count3 > t3)
       {
           out3 = 1;              
        }
        else
        {
           out3= 0;
        }; 
        Count3++;
        if(Count3 == T3)
        {
            Count3=0;
           if(pwm3 != 0)
            {
             out3= 0;     
            }
        }

}
void Main(void)
{   
      t1=100;

      T1=200;//定义pwm1周期为200ms,di电平时间为100ms

     t2=50;

     T2=100;//定义pwm2周期为100ms,di电平时间为50ms

     t3=250;

     T3=400;//定义pwm3周期为400ms,di电平时间为250ms

     while(1);//死循环,不断发出pwm波

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值