zoukankan      html  css  js  c++  java
  • PIC单片机增强型开发板产生两路PWM

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

    }
    }

  • 相关阅读:
    windows server 2008 r2 切换windows 7主题方法
    JAVA环境安装
    Oracle 11gR2 安装教学
    webmin-1.810 安装
    Windows Squid 安装配置
    Zyxel Switch-How to block a fake DHCP server without enabling DHCP snooping?
    Java介绍
    cookies和session区别
    牛刀小试之Django二
    小试牛刀之Django
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1914332.html
Copyright © 2011-2022 走看看