标题: 关于PWM脉冲输出的问题,困扰我很久了 [打印本页]

作者: 495155703    时间: 2014-9-20 19:51
标题: 关于PWM脉冲输出的问题,困扰我很久了
#include<reg51.h>        // 本程序是要输出脉冲周期为20ms高电平1ms的脉冲用来控制舵机,用两个定时器,每次中断时间都是0。1ms,中断10次就是1ms。
sbit P1_0=P1^0;          //          用两个定时器,每次中断时间都是0。1ms,中断10次就是1ms。         
int n,m,np=0,mp=0;
void init()          //初始化设置
{
   TMOD=0X22;
   EA=1;
   ET0=1;
   ET1=1;
}
main()
{  

   init();
   P1_0=0;
   while(1)
   {
   n=10;m=200-10;                           // n m确定中断的次数
   TH0=156;                                  //定时器方式2的初值设置晶振是12mhz,每0.1ms一个中断TH0=256-100;
   TL0=156;
   TH1=156;
   TH1=156;
   P1_0=1;TR0=1;
   while(np<n){P2=np;}         //等待定时器1的中断,中断10次后就是1ms
   TR0=0;P1_0=0;TR1=1;          
   while(mp<m){P3=mp;}
    TR1=0;
        }
}
void pwm0() interrupt 1
{                                                                 
   np++;   P1_0=1;                   //np用来判别中断了几次,与n比较中断10后就执行下面程序
    TH0=156;
    TL0=156;
}
void pwm1() interrupt 3
{
  mp++;          P1_0=0;
   TH1=156;
   TL1=156;
}
求大神解答已经困扰我很久了


作者: 249449417@qq.co    时间: 2020-5-30 14:56
为啥不用一个定时中断呢




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