学蓝桥Chapter9:PWM调制

PWM是啥

PWM是一种对模拟信号电平进行数字编码的方法。

简单理解为,在给定周期内以波的形式(注:不一定是方波形式)控制高/低电平(1/0)的占空比,从而实现对具体模拟信号(具体如灯的亮度,风扇的转速)的控制

PWM调制思路

  1. 自己定义一个周期长度T和一个时间单位t,如1μs
    T和t之间的关系可以简单理解成一个线性关系T=Kt(K为次数)
  2. 最后定义时间单位执行n次时为高电平,执行m次时为低电平,但是要保证(n+m)*t=T
    如 :我设定T=100μst=1μs,所以T=10*t。我给了n=30,给了m=70,因为(30+70)*1=100μs,所以这个调制是合理的。

通过PWM调制控制灯亮度

要求:按第一次10%的亮度,按第二次50%的亮度,按第三次90%的亮度,按第四次熄灭

#include <reg52.h>


sbit L1=P0^0;
sbit s7=P3^0;

unsigned char count=0;
unsigned char Ttimes;//定义定时周期T内的高电平持续次数
void hc(unsigned int num47){ //HC138译码器选择4或7
	switch(num47)
		{
		case 4:
			P2=(P2&0x1f)|0x80;break;
		case 7:
			P2=(P2&0x1f)|0xc0;break;
	}
	
}

void initT0(){
EA=1;
ET0=1;
TMOD=0x01;
	//先不在这里定义TR0
	//自己确定定时周期T但先不用在程序中设定该变量,设定时周期T=10000微秒
	TH0=(65535-100)/256; //12mhz的晶振下,1个脉冲就是1微秒。这里定时100微秒以作为T的时间单位,那么需要100次才能达到T的时间长度10000微秒
	TL0=(65535-100)%256;

}
void timerun() interrupt 1
{
	TH0=(65535-100)/256; //非自动重装需要再写一次
	TL0=(65535-100)%256;
	
	count++;
	if(count==Ttimes){
	L1=1;
	}
	else if(count==100){
	L1=0;
	count=0;
	}
}
void delay(unsigned char i){
while(i--);
}

unsigned char stat=0; //运行状态变换码
void scankeys(){
	if(s7==0){
		delay(300);
		if(s7==0){
			switch(stat){
				case 0:
					L1=0; //拉低初始电平至0v
					TR0=1; //启用定时器/计数器T0,进行定时
				Ttimes=10;  //以100微秒作为时间单位,高电平持续10次,具体表现为10%的亮度
					stat=1;		//下一次运行状态变换
					break;
				case 1:
					Ttimes=50; //以100微秒作为时间单位,高电平持续50次,具体表现为50%的亮度
					stat=2;
					break;
				case 2:
					Ttimes=90; //以100微秒作为时间单位,高电平持续90次,具体表现为90%的亮度
					stat=3;
					break;
				case 3:
					L1=1; //拉高电平,与led供电端等电位,关闭led灯
					TR0=0; //关闭定时器/计数器T0,关闭计时
					stat=0; //当led处于关闭状态,下一次按下后将会开始回到10%的亮度
					break;
			}
			while(s7==0);//松手操作
		}
	
	
	}

}

void main(){
	hc(4);
	initT0();
while(1){
	scankeys();
}
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PWM智能温控风扇的原理 1.PWM的技术背景 PWM (Pulse Width Modulation)Intel对散热器的评定标准⾮常严格。传统的温控风扇是利⽤风扇轴承附近的测温探头侦测风扇的进风 ⼝温度,从⽽对风扇的转速进⾏调节。这种温控虽然解决了⼀定的问题,但是存在着精度粗糙,⽽且温控的转速只能做到⾼速低速两极变 速。 PWM是脉宽调制电路的简称,在⼯业控制,单⽚机上早已经⼴泛的应⽤。⽽Intel将他和主板的CPU温度侦测相结合,将其应⽤于散热器风 扇的转速精确控制上,取得了良好的效果。 2.PWM智能温控风扇的功能特点 ⾸先,PWM风扇调节风扇转速是直接从CPU获取温度信息,在风扇上⽆任何测温装置。根据不同的CPU温度,温控风扇会有不同的转速 调节与之对应,并且风扇的转速变化可以做到四级五级,甚⾄更多,基本上是⽆极变速的感觉。由于是脉宽信号的实时调节,风扇转速的变 化⾮常灵敏,转速和CPU温度的变化⼏乎是同步的。 第⼆,PWM风扇在计算机待机的时候,可以保持在⼀个⾮常低的转速上。在待机时候,CPU温度在四五⼗度以下,其转速仅为⼀千转左 右,⼤⼤降低了运转的噪⾳。⽽设计的最⾼转速,两千多转,只有在CPU温度接近极限温度,即65-67度时候,才会出现。相⽐传统的温 控风扇有着更⼤的转速控制范围,更好的解决了噪⾳和性能的问题。 第三,PWM温控风扇在开机的瞬间,转速会提升到最⾼,持续数秒后,降低到待机的低转速⽔平。这个特点也是PWM智能温控风扇的 最明显特征,可以⽤来判断风扇和主板是不是真的具有PWM功能,或者其功能是否有故障,甚⾄可以⽤来作为真假盒包散热器的参考判断 标准。 3.PWM 智能温控风扇的简单原理 在具有PWM功能的主板上,除了原先的测温电路之外,多了⼀个PWM的控制芯⽚,他的作⽤是根据测温电路测得的CPU温度,发出不 同占空⽐的PWM脉冲信号。这个脉冲是⼀种⽅波,在⼀个周期内,此⽅波信号的⾼电平时段占整个周期的⽐例,我们称之为占空⽐。整个 周期都是⾼电平信号,则占空⽐为100%,反之占空⽐为零。最简单的PWM温控电路,在风扇的电路板上多了个控制电路,我们把它简单 的理解为⼀个三极管,其中⼀级和PWM的⽅波脉冲连接,这个级上如果出现⾼电平,则三极管另外两极处于导通状态,如果是低电平,则 另外两极处于断开状态。如果发出的⽅波脉冲信号的占空⽐为50%,即⾼电平信号占⼀个周期的⼀半时间,那么此三极管在⼀个周期内就有 ⼀半时间处于导通状态。通过此三极管在⼀个周期内的导通时间长短,我们很容易实现对风扇转速的控制。如果PWM的⽅波脉冲信号的占 空⽐可以做到多种级别,那么风扇的转速也可以做到多种级别。 另外,PWM风扇的频率需要测试的,这⾥有⼀款Intel使⽤的风扇的说明书,这样介绍PWM风扇的频率的 2.4 PWM Control Input Signal The following requirements are measured at the PWM (control) pin of the fan cable connector: PWM Frequency: Target frequency 25 kHz, acceptable operational range 21 kHz to 28 kHz Maximum voltage for logic low: VIL = 0.8 V Absolute maximum current sourced: Imax = 5 mA (short circuit current) Absolute maximum voltage level: VMax = 5.25 V (open circuit voltage) 摘⾃Intel的PWM specification,不过是很古⽼的版本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值