如何利用80C51实现编程产生PWM脉冲调制信号(4键控DAC)
发布网友
发布时间:2022-12-23 03:25
我来回答
共1个回答
热心网友
时间:2023-11-18 14:09
利用两个定时器就可以产生任意占空比,任意周期的PWM脉冲。
TIMER0用于控制PWM波的周期(中断里将低电平置为高电平)
TIMER1用于控制PWM波的占空比(可以计高电平时间,中断里将高电平置为低电平)
void main()
{
P0=0xff;
TMOD=... ;
TH0=... ; //设置PWM波周期
TL0=... ;
TH1=... ; //脉宽调节
TL1=... ;
EA=1;
ET0=1;
ET1=1;
TR0=1 ;
while(1);
}
void timer0() interrupt 1
{
TR1=0 ;
TH0=... ; //重新装载,如果时间能够满足要求,最好自动装载的模式
TL0=... ;
P0^0 = 1 ;
TR1=1;
TR0=1
}
void timer1() interrupt 3
{
TR1=0 ;
TH1=...; //重新装载
TL1=...;
P0^0=0 ; //结束输出
}