×
单片机 > 单片机程序设计 > 详情

PIC16F877A例程---PWM

发布时间:2020-09-03 发布时间:
|
// PWM波形输出实验

// 晶振:4MHz
// CPU:PIC16F877A

#include               //调用头文件
__CONFIG(0x3F31);             //芯片配置字
#define uchar unsigned char

#define uint unsigned int
uchar a;

void CCP1INIT() ;
void delayms(uint z);
void keyscan();

 

void main(void)
{
     CCP1INIT();       
     T2CON=0X04;                 
    do
    
        keyscan();
    }

    while(1);             
             
   
void CCP1INIT()

    PORTB=0xff;
    TRISB=0xff;
    RBPU=0;
    a=0X7F;
    CCPR1L=a;
    CCP1CON=0X3C;              
    INTCON=0X00;  
    PR2=0XFF;     
    TRISC=0XFB;   
}

//通过按键分别调大和调小(通过示波器观看PWM波形的变化)
void keyscan()
{
    TRISB=0xff;
    if(RB1==0)

    {

        delayms(10);
        if(RB1==0)

        {

            a-=10;

            CCPR1L=a;

        }
        while(RB1==0);

      
    if(RB2==0)

    {

        delayms(10);
        if(RB2==0)

        {

            a+=10;

            CCPR1L=a;

         }
        while(RB2==0);

     
}

////////////延时子函数//////////////////
void delayms(uint z)

{

    uint x,y;

    for(x=z;x--;x>0)

       for(y=40;y--;y>0);

}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈msp430f5529入门(2)----时钟配置.例程分析