⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwmtest.c

📁 PIC18F452 PWM程序,CCP1 CCP2模拟程序
💻 C
字号:

//*************************************************************
//    |-|        |-|       |-|
//    | |        | |       | |
//  __| |________| |_______|_|_____------>PWM1
//
//    |----|     |----|    |----|
//    |    |     |    |    |    |
//  __|    |_____|    |____|    |_------>PWM2

//本实验利用PIC单片机的CCP模块功能产生PWM功能,PWM的周期为:
//(PR2+1)*4TOSC*(TMR2预分频值)
//了解CCP模块的CCP1CON寄存器功能,
//了解TMR2与CCP模块的之间关系,
//掌握对CCP模块的相关寄存器的初始化及设置
//硬件平台: SP9608-PIC单片机增强型开发板 fosc=4MHz
//软件平台: HT-PICC编程器与MPLAB集成开发环境
//作者:     孙安青(Sun An-qing)
//网址:     www.supermcu.com
//E-Mail:   supermcu@126.com
//利用CCP1模块产生的PWM信号由RC2引脚输出,
//同时利用CCP2模块产生的PWM信号由RC1引脚输出,两者都可用示波器即可
//观察到该PWM波形.
//*************************************************************
#include <p18f452.h>

void main(void)
{
	//***********************************************************
	CCP1M3=1;//Enable CPP1 Work as PWM mode
	CCP1M2=1;
	CCP1M1=1;
	CCP1M0=1;
	TRISC2=0;//Enable RC2 work as output
	CCPR1L=0x10;//PWM脉宽值,改变PWM的脉宽,只需改变CCPR1L中的值
	CCP1X=0;//以及CCP1CON中的CCP1X和CCP1Y这两个位的值
	CCP1Y=0;
 
	//***********************************************************
	CCP2M3=1;//Enable CPP2 Work as PWM mode
	CCP2M2=1;
	CCP2M1=1;
 	CCP2M0=1;
 	TRISC1=0;//Enable RC0 work as output
 	CCPR2L=0x20;//PWM脉宽值,改变PWM的脉宽,只需改变CCPR2L中的值
 	CCP2X=0;//以及CCP2CON中的CCP2X和CCP2Y这两个位的值
 	CCP2Y=0;
 
 	//***********************************************************
 	TOUTPS3=0;//Enable TMR2--->1:1
 	TOUTPS2=0;
 	TOUTPS1=0;
 	TOUTPS0=0;
 	T2CKPS1=1;//Enable TMR2--->1:16
 	T2CKPS0=1;
 	TMR2ON=1;//Enable TMR2 Working
 	TMR2=0;
 	PR2=0x40;//PWM周期,改变PWM的周期,只需改变PR2中的值即可
	while(1)
   	{
     	;
   	}
}

 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -