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

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

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

//    |-|        |-|       |-|
//    | |        | |       | |
//  __| |________| |_______|_|_____------>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
);
}
}
}

 

转载地址:http://dwpia.baihongyu.com/

你可能感兴趣的文章
python调用linux shell脚本,并返回结果一例
查看>>
IT的一些常识
查看>>
无边框Winform 简单实现拖动
查看>>
潜移默化学会WPF--Border,焦点移动
查看>>
css解决span宽度问题
查看>>
调频广播六十年
查看>>
android sdk 如何重新生成debug.keystore
查看>>
黑马程序员-JAVA基础-练习之存储学生信息
查看>>
基于FPGA的跨时钟域信号处理——同步设计的重要
查看>>
【SAP HANA】关于SAP HANA中Analytic View创建、激活状况下在系统中生成对象的研究...
查看>>
ubuntu 12.04 ubuntu System program problem detected 解决方法
查看>>
c++智能指针《一》 auto_ptr
查看>>
我的代码观——关于ACM编程风格与librazy网友的对话
查看>>
Linux 总结2
查看>>
mysql C++ 使用
查看>>
android程序监听home键与电源键
查看>>
iOS中使用 Reachability 检测网络
查看>>
现场故障-数据量超出plsql developer结果集导致应用程序无数据现象
查看>>
Android -- sqlite数据库随apk发布
查看>>
JQuery操作表单相关使用总结
查看>>