书签 分享 收藏 举报 版权申诉 / 37
上传文档赚钱

类型单片机原理及应用系统设计第12章-IAP15W4K58S4单片机的-PWM模块课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3502562
  • 上传时间:2022-09-08
  • 格式:PPTX
  • 页数:37
  • 大小:226.65KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机原理及应用系统设计第12章-IAP15W4K58S4单片机的-PWM模块课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 原理 应用 系统 设计 12 IAP15W4K58S4 PWM 模块 课件
    资源描述:

    1、 第12章 IAP15W4K58S4单片机的 PWM模块单片机原理及应用系统设计单片机PWM模块的结构单片机PWM模块的应用单片机PWM模块的控制 IAP15W4K58S4单片机内部集成了一组(各自独立单片机内部集成了一组(各自独立6路)路)增强型的增强型的PWM波形发生器。波形发生器。增强型增强型PWM发生器大大增加了发生器大大增加了PWM控制的灵活性。控制的灵活性。第第1212章章 IAP15W4K58S4 IAP15W4K58S4单片机单片机PWMPWM模块模块p PWM波形发生器内部有一个波形发生器内部有一个15位的位的PWM计数器供计数器供6路路PWM使用,用户可以设置每路使用,用户

    2、可以设置每路PWM的初始电平。的初始电平。p 另外另外,PWM波形发生器为每路波形发生器为每路PWM又设计了两个用于控制又设计了两个用于控制波形翻转的计数器波形翻转的计数器T1/T2,可以非常灵活的每,可以非常灵活的每路路PWM 的高的高低电平宽度,从而达到对低电平宽度,从而达到对PWM 的占空比以及的占空比以及PWM 的输出的输出延迟进行控制的目的延迟进行控制的目的。p 由于由于6路路PWM是各自独立的,且每路是各自独立的,且每路PWM 的初始状态可以的初始状态可以进行设定,所以用户可以将其中的任意两路配合起来使用,进行设定,所以用户可以将其中的任意两路配合起来使用,即可实现补对称输出以及死

    3、区控制等特殊应用即可实现补对称输出以及死区控制等特殊应用。12.1 IAP15W4K58S412.1 IAP15W4K58S4单片机单片机PWMPWM模块的结构模块的结构 增强型的增强型的PWM波形发生器还设计了对外部异常事件(包括波形发生器还设计了对外部异常事件(包括外部端口外部端口P2.4的电平异常的电平异常、比较器比较结果异常)进行监控、比较器比较结果异常)进行监控的功能,可用于紧关闭的功能,可用于紧关闭PWM输出输出。PWM波形发生器还可在波形发生器还可在15 位的位的PWM计数器归零时触发外计数器归零时触发外部事件(触发外部事件部事件(触发外部事件、外部事件外部事件、ADC转换)。转

    4、换)。12.1 IAP15W4K58S412.1 IAP15W4K58S4单片机单片机PWMPWM模块的结构模块的结构 -IAP15W4K58S4单片机单片机PWM模块的结构模块的结构 12.1 IAP15W4K58S4单片机PWM模块的结构图图12-1 PWM波形发生器结构框图波形发生器结构框图 表12-1 端口配置寄存器各位的定义 12.2 IAP15W4K58S4单片机PWM模块的控制位号位号B7B6B5B4B3B2B1B0位名称EAXSFR000-S4_SS3_SS2_S EAXSFR:扩展SFR 访问控制使能。EAXSFR=0:MOVX A,DPTR/MOVX DPTR,A指令的操作

    5、对象为扩展RAM(XRAM)。EAXSFR=1:MOVX A,DPTR/MOVX DPTR,A指令的操作对象为扩展SFR(XSFR)。注意:若要访问注意:若要访问PWMPWM在扩展在扩展RAMRAM区的特殊功能寄存器,必须先将区的特殊功能寄存器,必须先将EAXSFR EAXSFR 位置为位置为1 1;BIT6,BIT5,BIT4BIT6,BIT5,BIT4为内部测试使用,用户必须填为内部测试使用,用户必须填0 0。1.1.端口配置寄存器端口配置寄存器P_SW2P_SW2 该寄存器地址为该寄存器地址为BAHBAH,复位值为,复位值为00H00H。各位定义如表各位定义如表12-112-1所示:所示

    6、:12.2 IAP15W4K58S4单片机PWM模块的控制位号位号B7B6B5B4B3B2B1B0位名称位名称-CBTADCC7INIC6INIC5INIC4INIC3INIC2INI表表12-2 PWM12-2 PWM配置寄存器配置寄存器PWMCFGPWMCFG各位定义各位定义2.PWM配置寄存器配置寄存器PWMCFG该寄存器地址为该寄存器地址为F1H,复位值为,复位值为00H。各位定义如表。各位定义如表12-2所示。所示。CBTADC:PWM计数器归零时(计数器归零时(CBIF=1 时)触发时)触发ADC转换转换 0:PWM计数器归零时不触发计数器归零时不触发ADC转换。转换。1:PWM计

    7、数器归零时自动触发计数器归零时自动触发ADC转换。转换。(注:前提条件是(注:前提条件是PWM和和ADC必须被使能,即必须被使能,即ENPWM=1,且,且ADCON=1)CnINI:设置:设置PWM 输出端口的初始电平,输出端口的初始电平,n=27。0:PWM7 输出端口的初始电平为低电平。输出端口的初始电平为低电平。1:PWM7 输出端口的初始电平为高电平。输出端口的初始电平为高电平。CBTADC:PWM计数器归零时(计数器归零时(CBIF=1 时)触发时)触发ADC转换转换 0:PWM计数器归零时不触发计数器归零时不触发ADC转换。转换。1:PWM计数器归零时自动触发计数器归零时自动触发A

    8、DC转换。(注:前转换。(注:前提条件是提条件是PWM和和ADC必须被使能,即必须被使能,即ENPWM=1,且,且ADCON=1)CnINI:设置:设置PWM 输出端口的初始电平,输出端口的初始电平,n=27。0:PWM7 输出端口的初始电平为低电平。输出端口的初始电平为低电平。1:PWM7 输出端口的初始电平为高电平。输出端口的初始电平为高电平。12.2 IAP15W4K58S4单片机PWM模块的控制 ENPWM ENPWM :使能增强型:使能增强型PWMPWM波形发生器波形发生器 0 0:关闭:关闭PWMPWM波形发生器。波形发生器。1 1:使能:使能PWMPWM波形发生器,波形发生器,P

    9、WMPWM计数器开始计数。计数器开始计数。ECBI ECBI:PWMPWM计数器归零中断使能位计数器归零中断使能位 0 0:关闭:关闭PWMPWM计数器归零中断(计数器归零中断(CBIFCBIF依然会被硬件置位)。依然会被硬件置位)。1 1:使能:使能PWMPWM计数器归零中断。计数器归零中断。ENCnO ENCnO:PWMn PWMn 输出使能位,输出使能位,n=2n=27 7。0 0:PWMPWM通道通道n n的端口为的端口为GPIOGPIO。1 1:PWMPWM通道通道n n的端口为的端口为PWMPWM输出口,受输出口,受PWMPWM波形发生器控制。波形发生器控制。12.2 IAP15W

    10、4K58S4单片机PWM模块的控制位号位号B7B6B5B4B3B2B1B0位名称位名称ENPWMECBIENC70ENC60ENC50ENC40ENC30ENC203.PWM控制寄存器控制寄存器PWMCR该寄存器地址为该寄存器地址为F1H,复位值为,复位值为00H。各位定义如表。各位定义如表12-3所示。所示。表表12-3 PWM控制寄存器控制寄存器PWMCFG各位定义各位定义12.2 IAP15W4K58S4单片机PWM模块的控制4.4.PWM中断标志寄存器中断标志寄存器PWMIF 该寄存器地址为该寄存器地址为F6H,复位值为,复位值为00H。各位定义如表。各位定义如表12-4所示。所示。表

    11、表12-4 PWM中断标志寄存器中断标志寄存器PWMIF各位定义各位定义。5.PWM外部异常控制寄存器外部异常控制寄存器PWMFDCR 该寄存器地址为该寄存器地址为F7H,复位值为,复位值为00H。各位定义如表。各位定义如表12-5所示。所示。表表12-5 PWM中断标志寄存器中断标志寄存器PWMIF各位定义各位定义。位号位号B7B6B5B4B3B2B1B0位名称-CBIFC7IFC6IFC5IFC4IFC3IFC2IF位号位号B7B6B5B4B3B2B1B0位名称位名称-ENFDFLTFLIOEFDIFDCMPFDIOFDIF12.2 IAP15W4K58S4单片机PWM模块的控制 5.PW

    12、M外部异常控制寄存器外部异常控制寄存器PWMFDCR该寄存器地址为该寄存器地址为F7H,复位值为,复位值为00H。各位定义如表。各位定义如表12-5所示。所示。位号位号B7B6B5B4B3B2B1B0位名称-ENFDFLTFLIOEFDIFDCMPFDIOFDIF表表12-5 PWM中断标志寄存器中断标志寄存器PWMIF各位定义各位定义12.2 IAP15W4K58S4单片机PWM模块的控制 ENFD ENFD:PWMPWM外部异常检测功能控制位外部异常检测功能控制位 0 0:关闭:关闭PWMPWM的外部异常检测功能的外部异常检测功能。1 1:使能:使能PWMPWM的外部异常检测功能的外部异常

    13、检测功能。F FLTFLIO LTFLIO:发生:发生PWMPWM外部异常时对外部异常时对PWMPWM输出口控制位输出口控制位 0 0:发生:发生PWMPWM外部异常时,外部异常时,PWMPWM的输出口不作任何改变的输出口不作任何改变。1 1:发生:发生PWMPWM外部异常时,外部异常时,PWMPWM的输出口立即被设置为高阻的输出口立即被设置为高阻输入模式(既不对外输出电流,也不对内输出电流)。输入模式(既不对外输出电流,也不对内输出电流)。【注】【注】只有只有ENCnO=1 ENCnO=1 所对应的端口才会被强制悬空;当所对应的端口才会被强制悬空;当PWMPWM外部外部异常状态取消时,相应的

    14、异常状态取消时,相应的PWMPWM的输出口会自动恢复以前的的输出口会自动恢复以前的I/OI/O设置。设置。EFDI EFDI:PWMPWM异常检测中断使能位异常检测中断使能位 0 0:关闭:关闭PWMPWM异常检测中断(异常检测中断(FDIFFDIF依然会被硬件置位)依然会被硬件置位)。1 1:使能:使能PWMPWM异常检测中断异常检测中断。12.2 IAP15W4K58S4单片机PWM模块的控制 FDCMP FDCMP:设定:设定PWMPWM异常检测源为比较器的输出异常检测源为比较器的输出 0:比较器与PWM无关。1:当比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高

    15、或者比较器正极。P5.5/CMP+的电平比内部参考电压源1.28V高时,触发PWM异常。FDIO FDIO :设定:设定PWMPWM异常检测源为端口异常检测源为端口P2.4 P2.4 的状态的状态 0:P2.4 的状态与PWM无关。1:当P2.4 的电平为高时,触发 为高时,触发PWM异常。FDIF FDIF:PWMPWM异常检测中断标志位异常检测中断标志位 当发生PWM异常(比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高 或比较器正极P5.5/CMP+的电平比内部参考电压源1.28V 高或者P2.4 的电平为高)时,硬件自动将此位置1。当EFDI=1 时,程序会跳转

    16、到相应中断入口执行中断服务程序。需要软件清零。12.2 IAP15W4K58S4单片机PWM模块的控制 6.PWM6.PWM计数器计数器(1)PWM计数器高字节PWMCH(高7位)该寄存器地址为FFF0H(XSFR),复位值为00H。各位定义如表12-6所示。表12-6 PWM计数器高字节PWMCH各位定义位号位号B7B6B5B4B3B2B1B0位名称-PWMCH14:812.2 IAP15W4K58S4单片机PWM模块的控制(2)PWM计数器低字节PWMCL(低8位)该寄存器地址为FFF1H(XSFR),复位值为00H。各位定义如表12-7所示。表12-7 PWM计数器高字节PWMCH各位定

    17、义 PWM计数器位一个15位的寄存器,可设定132767之间的任意值作为PWM 的周期。PWM 波形发生器内部的计数器从0开始计数,每个PWM 时钟周期递增1,当内部计数器的计数值达到PWMCH,PWMCL所设定的PWM周期时,PWM波形发生器内部的计数器将会从0重新开始开始计数,硬件会自动将PWM归零中断中断标志位CBIF置1,若ECBI=1,程序将跳转到相应中断入口执行中断服务程序。位号位号B7B6B5B4B3B2B1B0位名称PWM2CR7:07.PWM7.PWM时钟选择寄存器时钟选择寄存器PWMCKS PWMCKS 该寄存器地址为FFF2H(XSFR),复位值为00H。各位定义如表12

    18、-8所示。表12-8 PWM时钟选择寄存器器PWMCKS各位定义SELT2:PWM时钟源选择 0:PWM时钟源为系统时钟经分频器分频之后的时钟。1:PWM时钟源为定时器2 的溢出脉冲PS3:0:系统时钟预分频参数。当SELT2=0时,PWM时钟为系统时钟/(PS3:0+1)。12.2 IAP15W4K58S4单片机PWM模块的控制位号位号B7B6B5B4B3B2B1B0位名称-PS3:012.2 IAP15W4K58S4单片机PWM模块的控制 8.PWMn8.PWMn的翻转计数器的翻转计数器(n=2(n=27)7)(1)PWMn的第一次翻转计数器的高字节PWMnT1H,复位值是00H。各位定义

    19、如表12-9所示。表12-9 PWMn的第一次翻转计数器的高字节PWMnT1H(n=27)各位定义。位号位号B7B6B5B4B3B2B1B0位名称-PWM2T1H14:812.2 IAP15W4K58S4单片机PWM模块的控制(2)PWMn的第一次翻转计数器的低字节PWMn T1L,各位定义如表12-10所示。表12-10 PWMn的第一次翻转计数器的低字节PWMnT1L(n=27)各位定义。(3)PWMn的第二次翻转计数器的高字节PWMnT2H,复位值是00H。各位定义如表12-11所示。表12-11 PWMn的第一次翻转计数器的高字节PWMnT2H(n=27)各位定义。位号位号B7B6B5

    20、B4B3B2B1B0位名称PWM2T1L7:0位号位号B7B6B5B4B3B2B1B0位名称-PWM2T1H14:812.2 IAP15W4K58S4单片机PWM模块的控制(4)PWMn的第二次翻转计数器的低字节PWMnT2L,各位定义如表12-12所示。表12-12 PWMn的第一次翻转计数器的低字节PWMnT2L(n=27)各位定义。PWM2的第二次翻转计数器的高字节:PWM2T2H,各位定义如表12-13所示。表12-13 PWMn的第二次翻转计数器的高字节PWMnT2H(n=27)各位定义。位号位号B7B6B5B4B3B2B1B0位名称PWM2T1L7:0SFR nameAddress

    21、bitB7B6B5B4B3B2B1B0Reset ValuePWM2T2HFF02H(XSFR)name-PWM2T2H14:8x000,0000BPWM2T2HFF02H(XSFR)name-PWM2T2H14:8x000,0000B12.2 IAP15W4K58S4单片机PWM模块的控制PWM2PWM2的第二次翻转计数器的低字节:的第二次翻转计数器的低字节:PWM2T2LPWM2T2L,各位定义,各位定义如表如表12-1412-14所示。所示。SFR nameAddressbitB7B6B5B4B3B2B1B0Reset ValuePWM2CRFF03H(XSFR)namePWM2CR7:

    22、00000,0000BPWMPWM波形发生器设计了两个用于控制波形发生器设计了两个用于控制PWMPWM波形翻转的波形翻转的1515位计数器,可设定位计数器,可设定13271327间的任意值。间的任意值。PWMPWM波形发生器内部的计数器的计数值与波形发生器内部的计数器的计数值与T1/T2T1/T2所设定的所设定的值相匹配时,值相匹配时,PWM PWM 的输出波形将发生翻转。的输出波形将发生翻转。表表12-14 PWMn12-14 PWMn的第二次翻转计数器的低字节的第二次翻转计数器的低字节PWMnT2H(n=2PWMnT2H(n=27)7)各位定义各位定义12.2 IAP15W4K58S4单片

    23、机PWM模块的控制 9.PWMn9.PWMn的控制寄存器的控制寄存器PWMnCRPWMnCR 复位值为00H。各位定义如表12-15所示。表12-15 PWMn的控制寄存器PWMnCR各位定义。PWMn_PSPWMn_PS:PWMn输出引脚选择位 0:PWMn的输出引脚为第一组PWMn。1:PWMn的输出引脚为第二组PWMn_2。EPWMnI EPWMnI:PWMn中断使能控制位。0:关闭PWMn 中断。1:使能PWMn 中断,当CnIF被硬件置1时,程序将跳转到相应中断入口执行中断服务程序。bitB7B6B5B4B3B2B1B0name-PWMnPS EPWMn ECn2SI ECn1SI1

    24、2.2 IAP15W4K58S4单片机PWM模块的控制 ECnT2SI ECnT2SI:PWMn PWMn 的的T2T2匹配发生波形翻转时的中断控制位匹配发生波形翻转时的中断控制位 0 0:关闭:关闭T2T2翻转时中断翻转时中断 。1 1:使能:使能T2T2翻转时中断,当翻转时中断,当PWMPWM波形发生器内部计数值与波形发生器内部计数值与T2T2计数器所设计数器所设定的值相匹配时,定的值相匹配时,PWM PWM 的波形发生翻转,同时硬件将的波形发生翻转,同时硬件将C2IFC2IF置置1 1,此时若,此时若EPWM2I=1 EPWM2I=1,则程序将跳转到相应中断入口执行中断服务程序。,则程序

    25、将跳转到相应中断入口执行中断服务程序。ECnT1SI ECnT1SI:PWMn PWMn 的的T1T1匹配发生波形翻转时的中断控制位匹配发生波形翻转时的中断控制位 0 0:关闭:关闭T1T1翻转时中断翻转时中断 。1 1:使能:使能T1T1翻转时中断,当翻转时中断,当PWMPWM波形发生器内部计数值与波形发生器内部计数值与T1T1计数器所设计数器所设定的值相匹配时,定的值相匹配时,PWM PWM 的波形发生翻转,同时硬件将的波形发生翻转,同时硬件将CnIFCnIF置置1 1,此时若,此时若EPWMnI=1 EPWMnI=1,则程序将跳转到相应中断入口执行中断服务程序。,则程序将跳转到相应中断入

    26、口执行中断服务程序。6 6路高低字节两次控制路高低字节两次控制PWMPWM波形翻转的波形翻转的1515位计数器和位计数器和PWMnPWMn控制寄存器。控制寄存器。PWMnCRPWMnCR地址如表地址如表12-1612-16所示。所示。12.2 IAP15W4K58S4单片机PWM模块的控制 表表12-16 PWM212-16 PWM2PWM7PWM7计数器和寄存器地址计数器和寄存器地址地址地址PWM2PWM3PWM4PWM5PWM6PWM7第一次翻第一次翻转计数器转计数器高字节高字节FF00HFF10HFF20HFF30HFF40HFF50H 低字节低字节FF01HFF11HFF21HFF31

    27、HFF41HFF51H第二次翻第二次翻转计数器转计数器高字节高字节FF02HFF12HFF22HFF32HFF42HFF52H 低字节低字节FF03HFF13HFF23HFF33HFF43HFF53HPWMn控制寄存器控制寄存器PWMnCRFF04HFF14HFF24HFF34HFF44HFF54H12.2 IAP15W4K58S4单片机PWM模块的控制10.PWM10.PWM中断优先级控制寄存器中断优先级控制寄存器IP2IP2该寄存器地址为该寄存器地址为B5HB5H,复位值为,复位值为00H00H。各个中断源均为低优先级中断。各个中断源均为低优先级中断。不可位寻址,只能用字节操作指令更新相关

    28、内容,各位定义如表不可位寻址,只能用字节操作指令更新相关内容,各位定义如表12-1712-17所所示。示。PPWMFDPPWMFD:PWMPWM异常检测中断优先级控制位。异常检测中断优先级控制位。PPWMFD=0 PPWMFD=0:PWMPWM异常检测中断为最低优先级中断异常检测中断为最低优先级中断(优先级优先级0)0)。PPWMFD=1 PPWMFD=1:PWMPWM异常检测中断为最高优先级中断异常检测中断为最高优先级中断(优先级优先级1)1)。PPWM:PWMPPWM:PWM中断优先级控制位。中断优先级控制位。PPWM=0 PPWM=0:PWMPWM中断为最低优先级中断中断为最低优先级中断

    29、(优先级优先级0)0)。PPWM=1 PPWM=1:PWMPWM中断为最高优先级中断中断为最高优先级中断(优先级优先级1)1)。SFR nameAddressbitB7B6B5B4B3B2B1B0Reset ValueIP2B5Hname-PX4PPWMFDPPWMPSPIPS20000,0000B表表12-17 PWM12-17 PWM中断优先级控制寄存器中断优先级控制寄存器IP2IP2各位定义各位定义 12.3 IAP15W4K58S4单片机PWM模块的应用 【例【例12-112-1】利用利用IAP15W4K58S4IAP15W4K58S4单片机单片机PWMPWM模块,生成一个模块,生成一

    30、个占空比可调的波形。占空比初始值为占空比可调的波形。占空比初始值为50%50%。设置。设置3 3个按键,个按键,分别控制占空比的加和减以及恢复至初始值。波形由引脚分别控制占空比的加和减以及恢复至初始值。波形由引脚P1.7P1.7输出,可使用示波器观察波形。请编写程序。输出,可使用示波器观察波形。请编写程序。解:C语言源程序代码:#include stc15w4k32s4.h /#include stc15w4k32s4.h /包含单片机头文件包含单片机头文件#define CYCLE 11059#define CYCLE 11059 /PWM /PWM计数值计数值unsigned int T2

    31、Cnt=CYCLE/2;unsigned int T2Cnt=CYCLE/2;/PWM /PWM翻转计数值翻转计数值 void IO_Init(void);/void IO_Init(void);/函数声明函数声明void PWM_Init(void);void PWM_Init(void);void Key_Process(void);void Key_Process(void);void Delay_ms(unsigned int ms);void Delay_ms(unsigned int ms);void PWM7_SetPWMT2(unsigned int dat);unsigned

    32、 char Key_Scan(void);12.3 IAP15W4K58S4单片机PWM模块的应用/*主函数主函数*/void main(void)IO_Init();/端口初始化端口初始化 PWM_Init();/PWM模块初始化模块初始化 while(1)Key_Process();/按键扫描按键扫描 12.3 IAP15W4K58S4单片机PWM模块的应用 void Delay_ms(unsigned int ms)void Delay_ms(unsigned int ms)/延时函数延时函数 unsigned int i;unsigned int i;while(ms-)!=0)whi

    33、le(ms-)!=0)for(i=0;i 580;i+);for(i=0;i 580;i+);12.3 IAP15W4K58S4单片机PWM模块的应用 /*PWMPWM模块初始化函数模块初始化函数 */void PWM_Init(void)void PWM_Init(void)P1M1&=(17);/P1M1&=(17);/将将P17P17设置为准双向口设置为准双向口 P1M0&=(17);P1M0&=(17);P_SW2|=0 x80;P_SW2|=0 x80;/允许访问允许访问PWMPWM特殊功能寄存器特殊功能寄存器 PWMCR&=0 x7f;PWMCR&=0 x7f;/关闭关闭PWMPW

    34、M发生器,进行发生器,进行PWMPWM设置设置 PWMCKS=0 x00;/PWM PWMCKS=0 x00;/PWM时钟选择:系统时钟,不分频时钟选择:系统时钟,不分频 PWMC=CYCLE;PWMC=CYCLE;/PWM /PWM计数器,设置计数器,设置PWMPWM周期周期 PWM7CR=0 x00;PWM7CR=0 x00;/PWM7 /PWM7输出到输出到P1.7P1.7,关闭中断,关闭中断 PWMCFG=0 x00;/PWMCFG=0 x00;/设置设置PWMPWM的初始输出低电平的初始输出低电平 PWMCR|=0 x20;PWMCR|=0 x20;/使能使能PWM7PWM7信号输出

    35、信号输出 PWMCR|=0 x80;PWMCR|=0 x80;/设置完毕,启动设置完毕,启动PWMPWM发生器发生器 P_SW2&=0 x7f;P_SW2&=0 x7f;/关闭访问关闭访问PWMPWM特殊功能寄存器特殊功能寄存器 12.3 IAP15W4K58S4单片机PWM模块的应用/*设置设置PWMPWM中中T2T2计数器计数器 */void PWM7_SetPWMT2(unsigned int dat)void PWM7_SetPWMT2(unsigned int dat)PWMCR&=0 x7f;PWMCR&=0 x7f;/关闭关闭PWMPWM发生器,进行发生器,进行PWMPWM设置设

    36、置P_SW2|=0 x80;/P_SW2|=0 x80;/允许访问允许访问PWMPWM特殊功能寄存器特殊功能寄存器PWM7T2=dat;PWM7T2=dat;P_SW2&=0 x7f;/P_SW2&=0 x7f;/关闭访问关闭访问PWMPWM特殊功能寄存器特殊功能寄存器PWMCR|=0 x80;PWMCR|=0 x80;/启动启动PWMPWM发生器发生器 unsigned char Key_Scan(void)unsigned char Key_Scan(void)/按键扫描函数按键扫描函数 unsigned char KeyTemp1,KeyTemp2;unsigned char KeyTe

    37、mp1,KeyTemp2;unsigned char KeyValue;unsigned char KeyValue;KEYPORT|=(1KEY10)|(1KEY11)|(1KEY12);/KEYPORT|=(1KEY10)|(1KEY11)|(1KEY12);/读入端口先置高读入端口先置高,/P3.3 P3.3口置高口置高 KeyTemp1=KEYPORT|(1KEY10)|(1KEY11)|(1KEY12);KeyTemp1=KEYPORT|(1KEY10)|(1KEY11)|(1KEY12);/将读将读 /入端口不用的位屏蔽掉入端口不用的位屏蔽掉 if(KeyTemp1!=0 xff)

    38、if(KeyTemp1!=0 xff)/如果有键按下如果有键按下 Delay_ms(20);Delay_ms(20);/延时,防抖动延时,防抖动KeyTemp1=KEYPORT|KeyTemp1=KEYPORT|(1KEY10)|(1KEY11)|(1KEY12)(1KEY10)|(1KEY11)|(1KEY12)if(KeyTemp1!=0 xff)if(KeyTemp1!=0 xff)while(KeyTemp1!=0 xff)while(KeyTemp1!=0 xff)/等待按键释放等待按键释放 KeyTemp2=KeyTemp1;KeyTemp2=KeyTemp1;KeyTemp1=K

    39、EYPORT|KeyTemp1=KEYPORT|(1KEY10)|(1KEY10)|(1KEY11)|(1KEY12);/(1KEY11)|(1KEY12);/重重新读取新读取 12.3 IAP15W4K58S4单片机PWM模块的应用 switch(KeyTemp2)switch(KeyTemp2)case(1KEY10):/case(1KEY10):/占空比增加键占空比增加键S10S10按下按下 KeyValue=KEY10;KeyValue=KEY10;break;break;case(1KEY11):/case(1KEY11):/占空比减少键占空比减少键S11S11按下按下 KeyVal

    40、ue=KEY11;KeyValue=KEY11;break;break;case(1KEY12):/case(1CYCLE /if(T2CntCYCLE /如果数值大于如果数值大于CYCLECYCLE,则设为,则设为0 0 T2Cnt=0;T2Cnt=0;12.3 IAP15W4K58S4单片机PWM模块的应用 PWM7_SetPWMT2(T2Cnt);PWM7_SetPWMT2(T2Cnt);ToDisplayT2Cnt(T2Cnt);ToDisplayT2Cnt(T2Cnt);break;break;case KEY11:case KEY11:/S11 /S11:减小键按下:减小键按下 P

    41、WM7_SetPWMT2(CYCLE/2);PWM7_SetPWMT2(CYCLE/2);ToDisplayT2Cnt(CYCLE/2);ToDisplayT2Cnt(CYCLE/2);break;break;12.3 IAP15W4K58S4单片机PWM模块的应用 case KEY12:case KEY12:/S12 /S12:初始键按下:初始键按下 if(T2Cnt(0+100)if(T2Cnt(0+100)T2Cnt=CYCLE+100;T2Cnt=CYCLE+100;/减少到减少到CYCLECYCLE重新回到最大值重新回到最大值CYCLECYCLE T2Cnt=T2Cnt-100;T2

    42、Cnt=T2Cnt-100;/数值减数值减100100 PWM7_SetPWMT2(T2Cnt);PWM7_SetPWMT2(T2Cnt);ToDisplayT2Cnt(T2Cnt);ToDisplayT2Cnt(T2Cnt);break;break;12.3 IAP15W4K58S4单片机PWM模块的应用/*单片机单片机IOIO端口模式初始化端口模式初始化 */void IO_Init(void)void IO_Init(void)P2M1&=(15)|(16)|(17);P2M1&=(15)|(16)|(17);/初始化初始化P2.5,P2.6,P2.7P2.5,P2.6,P2.7口为准双向口口为准双向口 P2M0&=(15)|(16)|(17);P2M0&=(15)|(16)|(17);P3M1&=(13)|(14)|(15);P3M1&=(13)|(14)|(15);/将将P3.3 P3.4 P3.5P3.3 P3.4 P3.5设置为准双向口设置为准双向口 P3M0&=(13)|(14)|(15);P3M0&=(13)|(14)|(15);P1M1&=(10)|(14);P1M1&=(10)|(14);P1M0&=(10)|(14);P1M0&=(10)|(14);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机原理及应用系统设计第12章-IAP15W4K58S4单片机的-PWM模块课件.pptx
    链接地址:https://www.163wenku.com/p-3502562.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库