#ifndef __PWM__H__
#define __PWM__H__
void pwm_ccp1(unsigned char a,unsigned char b);
void pwm_ccp2(unsigned char a,unsigned char b);
#endif
void pwm_ccp1(unsigned char a,unsigned char b) //左边PWM
//CCP1 模块的 PWM 工作方式,周期为(b+1)4Tosc(TMR2前分频值)=b+1 us //pwm高电平=a:CCP1CON(第四五位)Tosc(TMR2前分频值)
//pwm高电平=a:CCP1CON(第四五位)Tosc(TMR2前分频值)
{ //a>b时有最高转速
CCPR1L=a; // 设置工作循环的高 8bit 为 a
CCP1CON=0X0C; //0000 1100 设置 CCP1 为 PWM 工作方式,且工作循环的低 bit2 为 11/
CCP1IE=0;; // 禁止总中断和外围中断 /
PR2=b; // 设置 PWM 周期 /
TRISC2=0; // 设置 RC2/CCP1 为输出 /
T2CON=0X04; // 0000 1000前分频比为 1:1 ,后分频器1:2,打开 TMR2 ,同时输出 PWM 信号 /
}
void pwm_ccp2(unsigned char a,unsigned char b) //右边PWM
//CCP2 模块的 PWM 工作方式,周期为(b+1)4Tosc(TMR2前分频值),
//pwm高电平=a:CCP2CON(第四五位)Tosc(TMR2前分频值)
{
CCPR2L=a; // 设置工作循环的高 8bit 为 a
CCP2CON=0X0C; // 设置 CCP2 为 PWM 工作方式,且工作循环的低 bit2 为 11/
CCP2IE=0; // 中断屏蔽
PR2=b; // 设置 PWM 周期 /
TRISC1=0; // 设置 RC1/CCP2 为输出 /
T2CON=0X04; // 前分频比为 1 ,打开 TMR2 ,同时输出 PWM 信号 /
}
用几种办法:
1、直接用软件延时用下DELAY()延时子程序要延时5ms,直接调用DELAY(5)好了种纯软件延时
//======延时(n)ms4MHz晶振下
void
DELAY(uint
n)
{
uint
j;
uchar
k;
for
(j=0;j<n;j++)
for
(k=246;k>0;k--)
NOP();
}
2、用定时器延时要通过计算延时时间来确定延时常数(分频比和定时器初值)
下载器,也叫编程器,也叫烧录器。
是用来将编译好的程序,下载到单片机芯片中。
仿真器是用来模拟仿真的,也就是说不用将程序下载到单片机中,而是在仿真器中模拟单片机运行,便于程序的调试。
单片机的烧录都是有次数的,达到一定次数,也就不能再烧录了,也有一次性的,只能烧录一次。
烧录器一端连接到电脑,就是你说的USB,用来将编译好的程序从电脑传输到烧录器。
另外一端要连接到单片机,就是你说的ISCP,用来将程序从烧录器传输到单片机芯片。
有些仿真器和烧录器是二合一的,两个功能都有。
烧录程序,就需要烧录器,电脑,烧录器的驱动程序,单片机芯片或带有单片机芯片的电路板。
连接就是烧录器一端连接到电脑,连接有USB,也有串口或并口的,另外一端连接到单片机芯片或带有单片机芯片的电路板。
以上就是关于PIC单片机输出PWM波的C语言源程序全部的内容,包括:PIC单片机输出PWM波的C语言源程序、pic单片机 实现10ms定时的简单程序、怎么给PIC单片机烧程序要买烧录器吗,还有哪些下载器编程器仿真器又是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)