基本信息
文件名称:Microchip 系列:PIC18 系列_(12).PWM模块.docx
文件大小:23.19 KB
总页数:21 页
更新时间:2025-06-23
总字数:约1.17万字
文档摘要

PAGE1

PAGE1

PWM模块

1.PWM模块概述

脉冲宽度调制(PulseWidthModulation,PWM)是一种通过改变脉冲信号的占空比来控制输出信号的技术。在单片机中,PWM模块通常用于控制电机速度、LED亮度、音频信号等。PIC18系列单片机提供了多个PWM通道,每个通道都可以独立配置,以满足不同的应用需求。

PWM信号的基本特性包括:

频率:PWM信号的频率决定了每秒钟脉冲的个数。

占空比:占空比是指在一个周期内,高电平时间占总时间的比例。占空比的范围通常在0%到100%之间。

2.PIC18系列中的PWM模块

PIC18系列单片机中的PWM模块通常基于定时器(如Timer1、Timer2等)实现。通过配置定时器的预分频器、周期寄存器和PWM寄存器,可以生成所需的PWM信号。PIC18系列单片机的PWM模块支持多种工作模式,包括单极性模式、双极性模式和中心对齐模式。

2.1单极性模式

在单极性模式下,PWM信号的周期是由定时器的周期寄存器(PRx)决定的。输出信号的占空比可以通过设置CCP(Capture/Compare/PWM)寄存器来控制。单极性模式下,PWM信号的高电平和低电平时间都是从定时器的计数值为0时开始计算的。

2.2双极性模式

在双极性模式下,PWM信号的周期也是由定时器的周期寄存器(PRx)决定的。不同的是,占空比的控制可以通过设置两个CCP寄存器来实现,一个控制高电平的开始时间,另一个控制低电平的开始时间。这种模式适用于需要精确控制高电平和低电平时间的应用。

2.3中心对齐模式

在中心对齐模式下,PWM信号的周期仍然是由定时器的周期寄存器(PRx)决定的。但占空比的控制更加复杂,通过设置CCP寄存器,可以实现高电平和低电平时间的中心对齐。这种模式适用于需要减少PWM信号中的谐波成分的应用。

3.PWM模块的配置

3.1定时器配置

PWM信号的生成依赖于定时器的配置。以Timer2为例,配置步骤如下:

选择预分频器:预分频器决定了定时器的计数速度。可以通过设置T2CON寄存器中的T2CKPS位来选择预分频器。

设置周期寄存器:周期寄存器(PR2)决定了PWM信号的周期。可以通过设置PR2寄存器来配置周期。

启用定时器:通过设置T2CON寄存器中的TMR2ON位来启用定时器。

//配置Timer2

T2CON=0//预分频器为1:8,启用Timer2

PR2=255;//设置周期寄存器,周期为256*(1/4*10^6)=64us

3.2CCP模块配置

CCP(Capture/Compare/PWM)模块用于生成PWM信号。以CCP1为例,配置步骤如下:

选择PWM模式:通过设置CCP1CON寄存器中的CCP1M位来选择PWM模式。

设置PWM占空比:通过设置CCPR1L寄存器和CCP1CON寄存器中的DC1B1和DC1B0位来设置PWM的占空比。

启用PWM输出:通过设置TRIS寄存器来配置PWM输出引脚。

//配置CCP1为PWM模式

CCP1CON=0//选择PWM模式

CCPR1L=128;//设置占空比寄存器

CCP1CONbits.DC1B1=0;//设置占空比低8位

CCP1CONbits.DC1B0=0;//设置占空比低8位

TRISBbits.TRISB1=0;//设置RB1为输出引脚

4.PWM信号的生成

4.1生成简单PWM信号

以下是一个生成简单PWM信号的例子。假设我们使用Timer2和CCP1模块生成一个频率为1kHz、占空比为50%的PWM信号。

#includehtc.h

//配置IO口

#define_XTAL_FREQ4000000

__CONFIG(FOSC_INTRC_NOCLKOUTWDTE_OFFPWRTE_ONCP_OFFBOREN_ONIESO_OFFFCMEN_ONLVP_OFF);

voidsetup(){

//配置I/O口

TRISBbits.TRISB1=0;//设置RB1为输出引脚

//配置Timer2

T2CON=0//预分频器为1:8,启用Timer2

PR2=255;//设置周期寄存器,周期为64us

//配置CCP1为PWM模式

CCP1CON=0//选择PWM模式

CCPR1L=128;//设置占空比寄存器

CCP1CO