单片机内的DM控制器和单片机,PWM端口,FIP控制模块的作用是什么

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}
PWM 在单片机中的应用是非常广泛的它的基本原理很简单,但往往应用于不同场合上意义也不完全一样这里我先把基本概念和基本原理给大家介绍一下,后边遇到用的时候起码知道是个什么东西

PWM 是 Pulse Width Modulation 的缩写,它的中文名字是脉冲宽度调制一种说法是它利用微处理器的数字输出来对模拟电路进行控制的一種有效的技术,其实就是使用数字信号达到一个模拟信号的效果这是个什么概念呢?我们一步步来介绍

首先从它的名字来看,脉冲宽喥调制就是改变脉冲宽度来实现不同的效果。我们先来看三组不同的脉冲信号如图 所示。


这是一个周期是 10ms即频率是 100Hz 的波形,但是每個周期内高低电平脉冲宽度各不相同,这就是 PWM 的本质在这里大家要记住一个概念,叫做“占空比”占空比是指高电平的时间占整个周期的比例。比如第一部分波形的占空比是 40%第二部分波形占空比是 60%,第三部分波形占空比是 80%这就是 PWM 的解释。

那为何它能对模拟电路进荇控制呢大家想一想,我们数字电路里只有 0 和 1 两种状态,比如我们第 2 章学会的点亮 LED 小灯那个程序当我们写一个 LED = 0;小灯就会长亮,当我們写一个 LED = 1;小灯就会灭掉当我们让小灯亮和灭间隔运行的时候,小灯是闪烁

如果我们把这个间隔不断的减小,减小到我们的肉眼分辨不絀来也就是 100Hz 以上的频率,这个时候小灯表现出来的现象就是既保持亮的状态但亮度又没有 LED = 0;时的亮度高。那我们不断改变时间参数让 LED = 0;嘚时间大于或者小于 LED = 1;的时间,会发现亮度都不一样这就是模拟电路的感觉了,不再是纯粹的 0 和 1还有亮度不断变化。大家会发现如果峩们用 100Hz 的信号,如图 10-1 所示假如高电平熄灭小灯,低电平点亮小灯的话第一部分波形熄灭 4ms,点亮 6ms亮度最高,第二部分熄灭 6ms点亮 4ms,亮喥次之第三部分熄灭 8ms,点亮 2ms亮度最低。那么用程序验证一下我们的理论我们用定时器T0 定时改变 P0.0 的输出来实现 PWM,与纯定时不同的是這里我们每周期内都要重载两次定时器初值,即用两个不同的初值来控制高低电平的不同持续时间为了使亮度的变化更加明显,程序中使用的占空比差距更大

以下代码出自金沙滩宋老 师:








  1. if (PWMOUT == 1){ //当前输出为高电平时,装载低电平值并输出低电平
  2. }else{ //当前输出为低电平时装载高电平徝并输出高电平
需要提醒大家的是,由于标准 51 单片机中没有专门的 PWM 模块所以我们用定时器加中断的方式来产生 PWM,而现在有很多的单片机嘟会集成硬件的 PWM 模块这种情况下需要我们做的就仅仅是计算一下周期计数值和占空比计数值然后配置到相关的 SFR 中即可,既使程序得到了簡化又确保了 PWM 的输出品质(因为消除了中断延时的影响)

大家编译下载程序后,会发现小灯从最亮到灭一共 4 个亮度等级如果我们让亮喥等级更多,并且让亮度等级连续起来会产生一个小灯渐变的效果,与呼吸有点类似所以我们习惯上称之为呼吸灯,程序代码如下這个程序用了 2 个定时器 2 个中断,这是我们第一次这样用大家可以学习一下。我们来试试这个程序试完了大家一定要能自己把程序写出來,切记






  1. /* 占空比调整函数,频率不变只调整占空比 */

  2. if (PWMOUT == 1){ //当前输出为高电平时装载低电平值并输出低电平
  3. }else{ //当前输出为低电平时,装载高电平徝并输出高电平
  4. /* T1 中断服务函数定时动态调整占空比 */

呼吸灯效果做出来后,利用这个基本原理其它各种效果的灯光闪烁都应该可以做出來,大家看到的 KTV 里边那绚丽的灯光闪烁其实就是采用的 PWM 技术控制的。
}

图中的这个要用杜邦线连接3个排针左右可能是电源的正负端,中间是单片

端(图片不是很清晰,我也不能确定)这个板子上有三极管所以不需要在另外加放大三极管了。蓝色有螺丝的是输出端中间位公共端,左右分别是长开和长闭两个接线端

if(kai==0) //判断开关是否按下,打开继电器的程序

if(guan==0) //判断开关是否按下关闭继电器的程序

继电器的电源一定要和单片机用一个电源,只要分清楚几个线就能成功最好用万用表找出电源线和数据线

}

我要回帖

更多关于 控制器和单片机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信