标题:
关于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