教学课件单片机创新开发教程ch11 使用PWM.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《教学课件单片机创新开发教程ch11 使用PWM.pptx》由会员分享,可在线阅读,更多相关《教学课件单片机创新开发教程ch11 使用PWM.pptx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机创新开发教程-基于STC8吴险峰第11章 使用PWMPWM在调速调光等领域有着广泛的应用。本章通过STC8的PWM驱动电动机和蜂鸣器项目,讲解PWM功能和典型编程方法。1.情境导入2.学习目标3.相关知识4.项目设计5.项目实现6.知识拓展7.强化练习11.1情境导入小白:“既然单片机能ADC,可以DAC吗?就是数字信号转换成模拟信号输出。”小牛:“单片机的输出也是数字电平,本身不能进行DAC,除非有专门的DAC器件。不过,STC8单片机有PWM功能,不使用DAC也可以对模拟电路进行控制,降低系统的成本。”小白:“这么神奇,我就来做几个PWM任务。”11.2 学习目标【知识目标】1.了解
2、PWM2.熟悉PWM寄存器和编程流程3.掌握PWM的图形化和C指令【能力目标】1.能设置PWM2.能进行电动机PWM编程3.能进行蜂鸣器PWM编程4.会利用蜂鸣器播放音乐11.3 相关知识l11.3.1 PWM原理 l11.3.2 STC三种硬件PWM比较 l11.3.3 STC8H的PWM模块l11.3.4 PWM相关寄存器l11.3.5 PWM编程l11.3.6 图形化指令l11.3.7 蜂鸣器 11.3 相关知识11.3.1PWM原理脉冲宽度调制(Pulse Width Modulation,PWM),是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电
3、平进行数字编码。也就是说通过调节占空比的变化来调节信号、能量等的变化。PWM的周期是脉冲信号从高电平到低电平再回到高电平的时间。如果脉冲频率为50Hz,也就是说一个周期是20ms,那么一秒钟就有 50次PWM周期。对于PWM而言,脉冲周期是恒定的。一个周期的长度,通常,将一个脉冲周期内维持高电平的时间称为占空,通过数字设备可以改变占空值。占空比表示为一个周期内,信号处于高电平的时间占据整个信号周期的百分比,也就是 PWM信号的直流平均值与占空是成正比的。一个占空比为50%的PWM信号,其直流值为PWM信号幅度最大值的1/2。因此,通过改变PWM的占空比,就可以改变PWM信号中所含直流信号分量的
4、大小。通过模拟有源/无源低通滤波器,就可以从PWM信号中提取出直流分量。如果将这个直流分量进行功率放大,并施加在直流电机的两端,就可以改变直流电机的转速。因此,PWM是连接数字世界与模拟世界的桥梁,其作用就类似于数模转换器DAC。11.3 相关知识11.3.2 STC三种硬件PWM比较1.兼容STC15的PWM 此PWM功能包含PCA(可编程计数器阵列)和CCP(捕获比较脉冲调制),可输出PWM波形、捕获外部输入信号以及输出高速脉冲。可对外输出6位/7位/8位/10位的PWM波形,(6位PWM波形的频率为PCA模块时钟源频率/64;7位PWM波形的频率为PCA模块时钟源频率/128;8位PWM
5、波形的频率为PCA模块时钟源频率/256;10位PWM波形的频率为PCA模块时钟源频率/1024)。捕获外部输入信号,可捕获上升沿、下降沿或者同时捕获上升沿和下降沿。2.STC8G系列的15位增强型PWM 只能对外输出PWM波形,无输入捕获功能。对外输出PWM的频率以及占空比均可任意设置。通过软件干预,可实现多路互补/对称/带死区的PWM波形。有外部异常检测功能以及实时触发ADC转换功能。3.STC8H系列的16位高级PWM 是目前STC功能最强的PWM,可对外输出任意频率以及任意占空比的PWM波形。无须软件干预即可输出互补/对称/带死区的PWM波形。能捕获外部输入信号,可捕获上升沿、下降沿或
6、者同时捕获上升沿和下降沿,测量外部波形时,可同时测量波形的周期值和占空比值。有正交编码功能、外部异常检测功能以及实时触发ADC转换功能。11.3 相关知识11.3.3 STC8H的PWM模块PWM是单片机最重要的功能之一。经典C51是没有PWM模块的。虽然也可以用I/O口通过定时器设置来模拟输出PWM信号,但功能低下,没有工业应用价值。STC8H 系列的单片机内部集成了两组硬件 PWM 定时器,第一组PWM定时器PWM1有4个通道(PWM1P/PWM1N、PWM2P/PWM2N、PWM3P/PWM3N、PWM4P/PWM4N),每个通道都可独立实现 PWM 输出(可设置带死区的互补对称 PWM
7、 输出)、捕获和比较功能;第二组 PWM 定时器PWM2有 4 个通道(PWM5、PWM6、PWM7、PWM8),每个通道也可独立实现 PWM 输出、捕获和比较功能。两组 PWM 定时器唯一的区别是第一组可输出带死区的互补对称 PWM,而第二组只能输出单端的 PWM,其他功能完全相同。两组 PWM 定时器内部的计数器时钟频率的分频系数为 165535 之间的任意数值。后面涉及了寄存器,有的用PWMA和PWMB来定义第一组和第二组PWM。原因是STC8H新的数据手册中,为了避免与其他章节中的芯片管脚名称混淆产生歧义,这两组PWM1和PWM2分别更名为了PWMA和PWMB。而在天问Block中还是
8、沿用PWM1和PWM2,在本书中,PWMA就是PWM1,PWMB就是PWM2,两个名称通用。11.3 相关知识11.3.4 PWM相关寄存器PWM是单片机最重要的功能之一。经典C51是没有PWM模块的。虽然也可以用I/O口通过定时器设置来模拟输出PWM信号,但功能低下,没有工业应用价值。STC8H 系列的单片机内部集成了两组硬件 PWM 定时器,第一组PWM定时器PWM1有4个通道(PWM1P/PWM1N、PWM2P/PWM2N、PWM3P/PWM3N、PWM4P/PWM4N),每个通道都可独立实现 PWM 输出(可设置带死区的互补对称 PWM 输出)、捕获和比较功能;第二组 PWM 定时器P
9、WM2有 4 个通道(PWM5、PWM6、PWM7、PWM8),每个通道也可独立实现 PWM 输出、捕获和比较功能。两组 PWM 定时器唯一的区别是第一组可输出带死区的互补对称 PWM,而第二组只能输出单端的 PWM,其他功能完全相同。两组 PWM 定时器内部的计数器时钟频率的分频系数为 165535 之间的任意数值。后面涉及了寄存器,有的用PWMA和PWMB来定义第一组和第二组PWM。原因是STC8H新的数据手册中,为了避免与其他章节中的芯片管脚名称混淆产生歧义,这两组PWM1和PWM2分别更名为了PWMA和PWMB。而在天问Block中还是沿用PWM1和PWM2,在本书中,PWMA就是PW
10、M1,PWMB就是PWM2,两个名称通用。11.3 相关知识11.3.4 PWM相关寄存器1.输出使能寄存器(输出使能寄存器(PWMx_ENO)用于控制PWM端口输出。符号地址B7B6B5B4B3B2B1B0PWMA_ENOFEB1HENO4NENO4PENO3NENO3PENO2NENO2PENO1NENO1PPWMB_ENOFEB5H-ENO8P-ENO7P-ENO6P-ENO5P(1)ENO8P:PWM8输出控制位 0:禁止PWM8输出 1:使能PWM8输出(2)ENO7P:PWM7输出控制位 0:禁止PWM7输出 1:使能PWM7输出(3)ENO6P:PWM6输出控制位 0:禁止PWM
11、6输出 1:使能PWM6输出(4)ENO5P:PWM5输出控制位 0:禁止PWM5输出 1:使能PWM5输出(5)ENO4N:PWM4N输出控制位 0:禁止PWM4N输出 1:使能PWM4N输出(6)ENO4P:PWM4P输出控制位 0:禁止PWM4P输出 1:使能PWM4P输出(7)ENO3N:PWM3N输出控制位 0:禁止PWM3N输出 1:使能PWM3N输出(8)ENO3P:PWM3P输出控制位 0:禁止PWM3P输出 1:使能PWM3P输出(9)ENO2N:PWM2N输出控制位 0:禁止PWM2N输出 1:使能PWM2N输出(10)ENO2P:PWM2P输出控制位 0:禁止PWM2P输
12、出 1:使能PWM2P输出(11)ENO1N:PWM1N输出控制位 0:禁止PWM1N输出 1:使能PWM1N输出(12)ENO1P:PWM1P输出控制位 0:禁止PWM1P输出 1:使能PWM1P输出11.3 相关知识11.3.4 PWM相关寄存器2.控制寄存器1(PWMx_CR1)用于启动PWM计数,符号地址B7B6B5B4B3B2B1B0PWMA_CR1FEC0HARPEACMSA1:0DIRAOPMAURSAUDISACENAPWMB_CR1FEE0HARPEBCMSB1:0DIRBOPMBURSBUDISBCENB(1)ARPEn:自动预装载允许位(n=A,B)0:PWMn_ARR寄
13、存器没有缓冲,它可以被直接写入1:PWMn_ARR寄存器由预装载缓冲器缓冲(2)CMSn1:0:选择对齐模式(n=A,B)。CMSn1:0对齐模式说明00边沿对齐模式计数器依据方向位(DIR)向上或向下计数01中央对齐模式1计数器交替地向上和向下计数。配置为输出的通道的输出比较中断标志位,在计数器向下计数时被置110中央对齐模式2计数器交替地向上和向下计数。配置为输出的通道的输出比较中断标志位,只在计数器向上计数时被置111中央对齐模式3计数器交替地向上和向下计数。配置为输出的通道的输出比较中断标志位,在计数器向上和向下计数时均被置1(3)DIRn:计数器的计数方向(n=A,B)0:计数器向上
14、计数;1:计数器向下计数。(4)OPMn:单脉冲模式(n=A,B)0:在发生更新事件时,计数器不停止;1:在发生下一次更新事件时,清除CEN位,计数器停止。(5)URSn:更新请求源(n=A,B)0:如果UDIS允许产生更新事件,则下述任一事件产生一个更新中断:寄存器被更新(计数器上溢/下溢)软件设置UG位 时钟/触发控制器产生的更新1:如果UDIS允许产生更新事件,则只有寄存器被更新才产生更新中断,并UIF置1.(6)UDISn:禁止更新(n=A,B)0:一旦下列事件发生,产生更新(UEV)事件:计数器溢出/下溢 产生软件更新事件 时钟/触发模式控制器产生的硬件复位 被缓存的寄存器被装入它们
15、的预装载值。1:不产生更新事件,影子寄存器(ARR、PSC、CCRx)保持它们的值。如果设置了UG位或时钟/触发控制器发出了一个硬件复位,则计数器和预分频器被重新初始化。(7)CENn:允许计数器(n=A,B)0:禁止计数器;1:使能计数器。注意:在软件设置了CEN位后,外部时钟、门控模式和编码器模式才能工作。然而触发模式可以自动地通过硬件设置CEN位。11.3 相关知识11.3.4 PWM相关寄存器3.捕获/比较模式寄存器1(PWMx_CCMR1)捕获/比较模式寄存器1(PWMx_CCMR1)用来设置PWM通道,可用于捕获输入模式或比较输出模式,通道的方向由捕获/比较模式寄存器1相应的CCn
16、S位定义。该寄存器其它位的作用在输入和输出模式下不同。OCxx描述了通道在输出模式下的功能,ICxx描述了通道在输入模式下的功能。因此必须注意,同一个位在输出模式和输入模式下的功能是不同的。(1)当通道配置为比较输出模式时当通道配置为比较输出模式时符号地址B7B6B5B4B3B2B1B0PWMA_CCMR1FEC8HOC1CEOC1M2:0OC1PEOC1FECC1S1:0PWMB_CCMR1FEE8HOC5CEOC5M2:0OC5PEOC5FECC5S1:0OCnCE:输出比较n清零使能。该位用于使能使用PWMETI引脚上的外部事件来清通道n的输出信号(OCnREF)(n=1,5)0:OCn
17、REF不受外部触发输入(ETRF)的影响,ETRF在从模式控制寄存器(PWMx_SMCR)中设置;1:一旦检测到ETRF输入高电平,OCnREF=0。OCnM2:0:输出比较n模式。该3位定义了输出参考信号OCnREF的动作。而OCnREF决定了OCn的值。OCnREF是高电平有效,而OCn的有效电平取决于CCnP位。OCnPE:输出比较n预装载使能(n=1,5)。0:禁止PWMn_CCR1寄存器的预装载功能,可随时写入PWMn_CCR1寄存器,并且新写入的数值立即起作用。1:开启PWMn_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作,PWMn_CCR1的预装载值在更新事件到来时被
18、加载至当前寄存器中。注意:一旦LOCK级别设为3(PWMn_BKR寄存器中的LOCK位)并且CCnS=00(该通道配置成输出)则该位不能被修改。为了操作正确,在PWM模式下必须使能预装载功能。但在单脉冲模式下(PWMn_CR1寄存器的OPM=1),它不是必须的。OCnFE:输出比较n快速使能(n=1,5)。该位用于加快CC输出对触发输入事件的响应。0:根据计数器与CCRn的值,CCn正常操作,即使触发器是打开的。当触发器的输入有一个有效沿时,激活CCn输出的最小延时为5个时钟周期。1:输入到触发器的有效沿的作用就象发生了一次比较匹配。因此,OC被设置为比较电平而与比较结果无关。采样触发器的有效
19、沿和CC1输出间的延时被缩短为3个时钟周期。OCFE只在通道被配置成PWMA或PWMB模式时起作用。CC1S1:0:捕获/比较1选择。这两位定义通道的方向(输入/输出),及输入脚的选择。CC5S1:0:捕获/比较5选择。11.3 相关知识11.3.4 PWM相关寄存器3.捕获/比较模式寄存器1(PWMx_CCMR1)捕获/比较模式寄存器1(PWMx_CCMR1)用来设置PWM通道,可用于捕获输入模式或比较输出模式,通道的方向由捕获/比较模式寄存器1相应的CCnS位定义。该寄存器其它位的作用在输入和输出模式下不同。OCxx描述了通道在输出模式下的功能,ICxx描述了通道在输入模式下的功能。因此必
20、须注意,同一个位在输出模式和输入模式下的功能是不同的。(2)当)当通道配置为捕获输入模式通道配置为捕获输入模式时时符号地址B7B6B5B4B3B2B1B0PWMA_CCMR1FEC8HIC1F3:0IC1PSC1:0CC1S1:0PWMB_CCMR1FEE8HIC5F3:0IC5PSC1:0CC5S1:0捕获/比较模式寄存器2(PWMx_CCMR2),定义PWM2和PWM6。捕获/比较模式寄存器3(PWMx_CCMR3),定义PWM3和PWM7。捕获/比较模式寄存器4(PWMx_CCMR4),定义PWM4和PWM8。这6个寄存器和PWMx_CCMR1基本类似。ICnF3:0:输入捕获n滤波器选
21、择(n=1,5),该位域定义了TIn的采样频率及数字滤波器长度。注意:即使对于带互补输出的通道,该位域也是非预装载的,并且不会考虑CCPC(PWMn_CR2寄存器)的值。ICnPSC1:0:输入/捕获n预分频器(n=1,5)。这两位定义了CCn输入(IC1)的预分频系数。00:无预分频器,捕获输入口上检测到的每一个边沿都触发一次捕获。01:每2个事件触发一次捕获。10:每4个事件触发一次捕获。11:每8个事件触发一次捕获。CC1S1:0:捕获/比较1选择。这两位定义通道的方向(输入/输出)CC5S1:0:捕获/比较5选择。这两位定义通道的方向(输入/输出),及输入脚的选择。11.3 相关知识1
22、1.3.4 PWM相关寄存器4.捕获/比较使能寄存器1(PWMx_CCER1)捕获/比较使能寄存器1(PWMx_CCER1)用于配置通道输出使能和极性CC6P:OC6输入捕获/比较输出极性。参考CC1P。CC6E:OC6输入捕获/比较输出使能。参考CC1E。CC5P:OC5输入捕获/比较输出极性。参考CC1P。CC5E:OC5输入捕获/比较输出使能。参考CC1E。CC2NP:OC2N比较输出极性。参考CC1NP。CC2NE:OC2N比较输出使能。参考CC1NE。CC2P:OC2输入捕获/比较输出极性。参考CC1P。CC2E:OC2输入捕获/比较输出使能。参考CC1E。CC1NP:OC1N比较输
23、出极性。0:高电平有效;1:低电平有效。CC1NE:OC1N比较输出使能0:关闭比较输出。1:开启比较输出,其输出电平依赖于MOE、OSSI、OSSR、OIS1、OIS1N和CC1E位的值。CC1P:OC1输入捕获/比较输出极性。CC1通道配置为输出:0:高电平有效1:低电平有效。CC1通道配置为输入或者捕获:0:捕获发生在TI1F或TI2F的上升沿;1:捕获发生在TI1F或TI2F的下降沿.CC1E:OC1输入捕获/比较输出使能 0:关闭输入捕获/比较输出;1:开启输入捕获/比较输出。捕获/比较使能寄存器2(PWMx_CCER2)用于设置PWM的3、4和7、8通道,功能类似,此处不再赘述。符
24、号地址B7B6B5B4B3B2B1B0PWMA_CCER1FECCHCC2NPCC2NECC2PCC2ECC1NPCC1NECC1PCC1EPWMB_CCER1FEECH-CC6PCC6E-CC5PCC5E11.3 相关知识11.3.4 PWM相关寄存器5.自动重装载寄存器(PWMx_ARR)16位自动重装载寄存器(PWMx_ARR)用于设置PWM周期时间,分为自动重装载寄存器高8位(PWMx_ARRH)和自动重装载寄存器低8位(PWMx_ARRL)。其中高8位描述如表11-13所示。ARRn15:8:自动重装载高8位值(n=A,B)。ARR包含了将要装载入实际的自动重装载寄存器的值。当自动重
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件单片机创新开发教程ch11 使用PWM 教学 课件 单片机 创新 开发 教程 ch11 使用 PWM
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内