AT89c51单片机产生脉宽可调的PWM信号
那位高手看下这样可以产生(改变赋值的话)脉宽可调的PWM信号么
如果不行的话,用89c51还有什么办法可以实现么?求高手指点,最好是汇编程序。谢谢了
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TIME0
ORG 001BH
LJMP TIME1
ORG 0030H
MAIN:
SETB EA
SETB ET0
SETB ET1
CLR P3.7
MOV TMOD,#11H
MOV TH0,#00H
MOV TL0,#66H
MOV TH1,#000H
MOV TL1,#0FFH
SETB TR0
SETB TR1
LOOP:
SJMP LOOP
TIME0:
SETB P3.7
CLR TR0
MOV TH0,#00H
MOV TL0,#66H
RETI
TIME1:
CLR P3.7
MOV TH1,#000H
MOV TL1,#0FFH
SETB TR1
SETB TR0
RETI
END
汇编 看着就头大 ,c语言的话通常是用定时器中断来产生pwm。例如:void zdt0()interrupt 1
{
static char k=0;
k++; if(k>=10) k=0;
TH0=(65536-500)/256;
TL0=(65536-500)%256; //定时器每计数500就中断一次
if(k<on) p01=0; //通过on来 改变pwm占空比
else p01=1; //在p01脚产生pwm波
}
xiexiefenxiang
你做的怎么样了,咱俩做的一样,加我Q1622146191交流一下
