基本信息
文件名称:Microchip 系列:PIC18F 系列_(9).PIC18F系列的PWM模块.docx
文件大小:22.75 KB
总页数:25 页
更新时间:2025-06-19
总字数:约1.1万字
文档摘要

PAGE1

PAGE1

PIC18F系列的PWM模块

1.PWM模块概述

脉宽调制(PulseWidthModulation,PWM)是一种通过调整脉冲的宽度来控制输出信号的技术。在PIC18F系列单片机中,PWM模块通常用于生成精确的脉冲信号,这些信号可以用于控制电机速度、LED亮度、伺服电机位置等。PIC18F系列的PWM模块基于定时器(通常是定时器2或定时器3)和CCP(Capture/Compare/PWM)模块,通过配置这些模块可以实现多种PWM功能。

2.PWM模块的硬件结构

2.1定时器模块

PWM模块的核心是定时器,定时器用于生成PWM信号的周期。在PIC18F系列中,定时器2和定时器3是最常用于PWM的定时器。定时器2是一个16位定时器,而定时器3是一个16位定时器,两者都可以通过预分频器来调整时钟频率。

2.2CCP模块

CCP模块(Capture/Compare/PWM)是一个多功能模块,可以用于捕获输入信号、比较定时器值和生成PWM信号。在PWM模式下,CCP模块通过比较定时器的当前值和预设的比较值来生成PWM脉冲。

3.配置PWM模块

3.1配置定时器

3.1.1定时器2配置

定时器2的配置主要通过以下寄存器:

PR2:周期寄存器,设置定时器2的周期。

T2CON:定时器2控制寄存器,设置定时器2的工作模式和预分频器。

TMR2:定时器2寄存器,存储定时器2的当前值。

//配置定时器2

voidconfigTimer2(){

//设置定时器2的周期

PR2=255;//255个计数值

//配置定时器2控制寄存器

T2CONbits.T2CKPS=0b11;//1:16预分频

T2CONbits.T2OUTPS=0b0000;//1:1输出分频

T2CONbits.TMR2ON=1;//打开定时器2

}

3.1.2定时器3配置

定时器3的配置主要通过以下寄存器:

PR3:周期寄存器,设置定时器3的周期。

T3CON:定时器3控制寄存器,设置定时器3的工作模式和预分频器。

TMR3:定时器3寄存器,存储定时器3的当前值。

//配置定时器3

voidconfigTimer3(){

//设置定时器3的周期

PR3=65535;//65535个计数值

//配置定时器3控制寄存器

T3CONbits.T3CKPS=0b11;//1:8预分频

T3CONbits.TMR3ON=1;//打开定时器3

}

3.2配置CCP模块

3.2.1CCP1配置

CCP1模块的配置主要通过以下寄存器:

CCP1CON:CCP1控制寄存器,设置CCP1的工作模式。

CCP1RS:CCP1重载寄存器,设置PWM脉冲的高电平持续时间。

CCP1AS:CCP1辅助寄存器,设置PWM脉冲的低电平持续时间。

//配置CCP1模块

voidconfigCCP1(){

//设置CCP1为PWM模式

CCP1CONbits.CCP1M=0b1100;//PWM模式

//设置PWM脉冲的高电平持续时间

CCP1RS=128;//128个计数值

//设置PWM脉冲的低电平持续时间

CCP1AS=128;//128个计数值

//使能PWM输出

TRISCbits.RC1=0;//设置RC1为输出

}

3.2.2CCP2配置

CCP2模块的配置主要通过以下寄存器:

CCP2CON:CCP2控制寄存器,设置CCP2的工作模式。

CCP2RS:CCP2重载寄存器,设置PWM脉冲的高电平持续时间。

CCP2AS:CCP2辅助寄存器,设置PWM脉冲的低电平持续时间。

//配置CCP2模块

voidconfigCCP2(){

//设置CCP2为PWM模式

CCP2CONbits.CCP2M=0b1100;//PWM模式

//设置PWM脉冲的高电平持续时间

CCP2RS=128;//128个计数值

//设置PWM脉冲的低电平持续时间

CCP2AS=128;//128个计数值

//使能PWM输出

TRISCbits.RC2=0;//设置RC2为输出

}

4.PWM信号的生成

4.1单通道PWM信号生成

单通道PWM信号生成是指通过一个CC