怎么可能搞不了三路独立的呢楼下那位是被STC12C5A60S2的硬件蒙蔽了视线,他认为,STC12C只有两路PWM,无法实现3路,你却忘记了最原始的办法,不要说STC12有PWM功能,即使是传统的AT89S52这类没有PWM功能的单片机也一样能够实现楼主的要求
下面我简单的分析一下我的思路,楼主尝试编程,如果不懂,再追问:
你是用三路独立的PWM调光用的,PWM调光,为了保证不让人眼产生闪烁,理论上PWM的频率要大于20Hz,而在实际的测试用,一般PWM要大于25Hz才能保证不闪烁为了保险起见,我们将PWM的频率设定在30Hz左右,那么,周期就是33333333ms,假设,我们实现10级调光,那个 每级的时间是333333ms
然后设置三个变量和一个计数器,我描述不太清楚,你看一下程序:
sbit P1_0 = P1^0; //---P10,P11,P12是三路PWM输出
unsigned char Set_PWM0 = 0; //--Set_PWM0 Set_PWM1 Set_PWM2
//--分别是低电平占整个脉冲的百分比
//--他们最小取0,最大取9
unsigned char counter = 0;//--用于计数的
void ISR_Timer0(void) interrupt 1 //---我们就用定时器0来做,不用PWM硬件
{ //----33333ms中断一次
counter++;
if(counter >= 10) counter = 0;
if(counter >= Set_PWM0) P1_0 = 0; else P1_0 = 1;
if(counter >= Set_PWM1) P1_1 = 0; else P1_1 = 1;
if(counter >= Set_PWM2) P1_2 = 0; else P1_2 = 1;
}
这样,定时器0用于决定PWM的反占空比,你只要设置 Set_PWM0等三个参数就可以了
怎么会实现不了呢
控制 PWM 的程序我这没有,但我这有跟串口接收数据的
利用单片机和电脑的串口助手来控制单片机开发板上面的8个LED
电脑发送不同的数值,即可点亮不同的LED
你可以根据这个程序的原理,来自己试着编写电脑控制PWM
如果有什么疑问可以随时向我提问,或私密我加好友,记得采纳哦!
//
//串口发送的数据格式单个数字,电脑端以字符形式发送
#include <REG52h> //通用89C52头文件
char table[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},i,n;//LED编码
//
void main(void)//主函数
{
TMOD=0x20; //定时器1工作方式2,8位,,定时器0工作方式1,16位
PCON=0x00; //SMOD=0,不加倍
SCON=0x50; //串口工作方式1,允许接收
IE=0x92; //启用串口中断与定时器0中断,并开启总中断
TH1=0xfd; //定时器1设置初值,波特率9600bit/s,
TL1=0xff; //晶振频率 110592
TR1=1; //启动定时器T1
while(1)//主循环
{
P2=table[i];//输出状态
}
}
//
void ser() interrupt 4//串口接收,中断方式
{
n=SBUF; while(!RI); RI=0;//接收一个字符
switch(n)//根据接收的字符对 i 赋相应的数值值
{
case 0x31:i=1;break; case 0x32:i=2;break;
case 0x33:i=3;break; case 0x34:i=4;break;
case 0x35:i=5;break; case 0x36:i=6;break;
case 0x37:i=7;break; case 0x38:i=8;break;
case 0x39:i=9;break; default:i=0;
}//如果是0,或其他字符,则关闭所有LED
}
//
问得太笼统了,PWM实现的电路有很多,也有很多基于PWM的专用LED调光电路。像一些比较通用的开关电源IC都差不多是基于PWM来实现的,稍作修改就可以用来做LED调光用了。LED调光实际上就是一个可调的恒流源,可以用PWM来实现,也可以用线性电路来实现,但PWM的效率要高。
以上就是关于求51单片机PWM程序(一个定时器产生三路PWM 可独立运作) 简单来说就是用三路独立的pwm控制三个LED全部的内容,包括:求51单片机PWM程序(一个定时器产生三路PWM 可独立运作) 简单来说就是用三路独立的pwm控制三个LED、电脑通过单片机串口发送调光指令使单片机产生PWM信号对LED调光、你好 我想问一下 怎样用PWM实现对多路LED的调光呢没有分了 希望你能帮帮我~谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)