51单片机产生pwm波的c程序是什么?

51单片机产生pwm波的c程序是什么?

用定时器产生程序如下:
unsigned int a=0 ,b=10;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}

void PWM() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256 ;
a++;
P1^1=0;
if(a=20)
{
a=0;
}
if(a=b)
{
P1^1=1;
}
}
调节a ,b的值即可调节占空比,程序框架就是这样,具体自己改吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-28
可以几种方法实现,用定时器或延时程序或硬件PWM。
第2个回答  2011-10-29
改变I/O口的高低电平的占空比
第3个回答  2011-10-26
改变占空比啊

51单片机测量PWM波的占空比的C语言程序
调节a ,b的值即可调节占空比,程序框架就是这样,具体自己改吧

...用51单片机PWM调制 输出100khz的波形 c程序??谢谢了
C语言主程序,引脚自己改啦,呵呵void main(void){TMOD=0x02;\/\/方式2,8051的是8位计数器8052系列的是16位TH0=0xfb;\/\/若是16位应该为65531TL0=0xfb;TR0=1;ET0=0;EA=0;while(1){if(TF0==1)\/\/查询寄存器状态P1^0=~P1^0 ;}} ...

跪求!想用51单片机通过按键触发来输出一个可调占空比的的PWM波形。用C...
开个定时器,0.1ms的中断周期,中断100次为一个PWM周期,得出10ms周期的PWM波,然后在这100次的中断中,前30次中断让IO口输出高,后70次让IO口输出低,然后就得出了30%占空比的PWM波,根据这个方法即可实现你的要求。

单片机C语言PWM的典型程序谢谢
\/ 利用定时器控制产生占空比可变的 PWM 波 \/\/ 按K1,PWM值增加,则占空比减小,电机减速。\/\/ 按K2,PWM值减小,则占空比增加,电机加速。\/\/ 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。\/***\/ include<reg51.h> include<intrins.h> sbit K1 =P1^4 ; \/\/PWM值增加键 sbit K2...

用51单片机同时实现四路PWM波,(C语言)
当然,前两种都差不多,还有一种方法供你扩展:就是用两个定时器,然后按照时间去匹配修改。当然,51单片机那精度就不说了,不太确信可以达标,一个定时器进中断了,另一个就要停一下。。BTW,个人感觉51的单片机没有很好的pwm模块,这样写了Pwm程序,别的就干不了了。建议用用带epwm模块的mcu,直接...

怎么51单片机定时器来模拟PWM波?
PWM有两个最基本的参数:频率、占空比。频率就是每秒钟电平高低变化的次数,占空比是指高电平保持时间和整个脉冲周期中的比例关系。对于用定时器来模拟,最基本的方法就是使用一个IO口循环设置其输出值为高电平和低电平。那么定时器在这里起计时作用,而且需要两个时间:高电平持续时间、低电平持续时间。只...

51单片机产生一定占空比和频率的PWM.
\/\/程序修改了一下,试试,ucount是字符变量而且也只能是字符变量,所以不能大于255.include<reg51.h> define count 50 define TH_M1 (65536-count)\/256 \/\/设置定时器T0的定时时间 define TL_M1 (65536-count)%256 \/\/设置定时器T0的定时时间 unsigned char ucount=0;sbit PWM=P1^0;unsigned ...

经过数模转换后怎么产生PWM 51单片机
1、PWM是介于模拟量和数字量之间的一种信号。从产生角度看,由高电平和低电平组成,接近数字量。从使用角度看,加上一个低通滤波器就变成幅值连续的模拟量了,接近模拟量。2、你要产生PWM,不需要经过数模转换。3、选定PWM输出频率,就决定了输出方波的周期,将数字量转换为方波占空比,就可以产生PWM。

求51单片机PWM程序(一个定时器产生三路PWM 可独立运作) 简单来说就...
然后设置三个变量和一个计数器,我描述不太清楚,你看一下程序:sbit P1_0 = P1^0; \/\/---P1.0,P1.1,P1.2是三路PWM输出 unsigned char Set_PWM0 = 0; \/\/--Set_PWM0 Set_PWM1 Set_PWM2 \/\/--分别是低电平占整个脉冲的百分比 \/\/--他们最小取0,最大取9 unsigned char counter = ...

C语言写占空比50%PWM波的代码
如果想要进步最好自己写,不要老是要人家给代码之类的。给个思路你吧。有软件PWM和硬件PWM 像51单片机没有硬件PWM只能用软件PWM:1,设定定时器并开中断(定时时间为你需要的PWM频率)2,在中断函数中设定每次中断到来输出PWM的端口电平取反。硬件PWM:根据单片机的datasheet,配置好相关的寄存器并使能PWM...

相似回答