求写个51单片机的PWM程序,输出在一个管脚上,不需要按键控制调速,需要一个形参ZKB即控制ZKB=50 代表50%

如题所述

pwm(uchar zkb)
{
uchar x =100;
led=0;
delay(x*zkb/100);

led=1;
delay(x*zkb/100);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-30
频率呢?PWM的有效电平是高电平还是低电平也没有说。没有这些,怎么做呀?追问

占空比50%不就是高低电平等价么。。。。。

占空比50%不就是高低电平等价么。。。。。

求:单片机80c51怎么做脉冲信号发生器
sbit AN4=P3^5;\/\/确认按键 void delay(uint z)\/\/软件延时函数 { uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} static void timer0_isr(void) interrupt 1 using 0 \/\/中断函数 { TR0=0;TL0=0xf6;TH0=0xff;TR0=1;if (ZKB>99) ZKB=1;if (ZKB<1) ZKB=99;counter...

请教单片机PWM控制加热器用增量式PID,三个参数的选择
shuchu=0; \/\/输出高电平 else \/\/小于设定值 { ZKB=(int)zkc; \/\/调整新的脉宽定时,即新的占空比 if (click<=ZKB) \/\/ 判断脉宽定时周期是否到?当小于占空比值时输出高电平,高于时是低电平,从而实现占空比的调整 shuchu=1;else shuchu=0 ;} } ...

用51单片机+74HC595控制LED,程序怎样实现整体渐变?(595不接OE脚)
如果你是静态显示,那么灰度是没戏了。如果是动态显示,那就先点亮一个LED,再将595的数据刷新,令所有的LED灭掉,然后亮第二个LED,再将595的数据刷新,令所有的LED灭掉,如此循环,来控制LED点亮的占空比就可以控制灰度了。但这个办法的关键是你刷新的频率一定要足够高,不然就会产生闪烁。其实,你电...

用单片机 输出50hz方波 用两个按键调节占空间比例 初始值为最低 89c5...
void t0isr() interrupt 1 { if(flag){ flag=0;TR0=0;TH0=(65536-zkb*200)\/256;TL0=(65536-zkb*200)%256;TR0=1;pulse=1;} else { flag=1;TR0=0;TH0=(65536-(20000-zkb*200))\/256;TL0=(65536-(20000-zkb*200))%256;TR0=1;pulse=0;} } main(){ TMOD=0x01;TH0=(65536...

相似回答