PIC单片机输出PWM波的C语言源程序

PIC单片机输出PWM波的C语言源程序,第1张

#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单片机烧程序要买烧录器吗,还有哪些下载器编程器仿真器又是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9491375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存