博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIC单片机增强型开发板产生两路PWM
阅读量:5134 次
发布时间:2019-06-13

本文共 1802 字,大约阅读时间需要 6 分钟。

//*************************************************************

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

//本实验利用PIC单片机的CCP模块功能产生PWM功能,PWM的周期为:

//(PR2+1)*4TOSC*(TMR2预分频值)
//了解CCP模块的CCP1CON寄存器功能,
//了解TMR2与CCP模块的之间关系,
//掌握对CCP模块的相关寄存器的初始化及设置
//软件平台: HT-PICC编程器与MPLAB集成开发环境
//作者:     孙安青(Sun An-qing)
//利用CCP1模块产生的PWM信号由RC2引脚输出,
//同时利用CCP2模块产生的PWM信号由RC1引脚输出,两者都可用示波器即可
//观察到该PWM波形.

修改者:Leo

时间:20101223

显示效果让LED灯显示效果由亮到灭, 再到亮,再到灭。

代码
 
#include
<
pic.h
>
__CONFIG(HS
&
WDTDIS
&
LVPDIS
&
PWRTEN);
//
对熔丝位进行设置
#define
uint unsigned int
uint
num
=
0
;
void
delay1ms(
uint
DelayTime)
{
uint
temp;
for
(;DelayTime
>
0
;DelayTime
--
)
{
for
(temp
=
0
;temp
<
270
;temp
++
)
{;}
}
}
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
;
while
(
1
)
{
for
(;num
<=
1023
; num
++
)
{
PR2
=
num;
//
PWM周期,改变PWM的周期,只需改变PR2中的值即可
delay1ms(
10
);
}
}
}

 

转载于:https://www.cnblogs.com/hnrainll/archive/2010/12/23/1914332.html

你可能感兴趣的文章
前端设计(一)
查看>>
大道至简第六章读后感
查看>>
@RabbitListener 与 @RabbitHandler 及 消息序列化
查看>>
Visual Studio 2013 Update 3 RTM 正式发布
查看>>
spring mvc 依赖包
查看>>
fiddler 抓取iphone发出的http和https包
查看>>
shell实现四则运算简单方法
查看>>
算法--leetcode 561. Array Partition I
查看>>
算法设计与分析实验报告
查看>>
对js里bind函数的理解
查看>>
线程池
查看>>
大图轮播
查看>>
外籍团队工作有感:5、关于效率
查看>>
应用服务器集群的伸缩性设计
查看>>
【转】字体渲染
查看>>
静态网页与动态网页的区别
查看>>
html页面的加载顺序
查看>>
关于 var YAHOO = window.YAHOO || {}; 的解释
查看>>
Linux下怎么运行java程序
查看>>
2018ccpc湖南邀请赛后记
查看>>