微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC16F877A例程---PWM

PIC16F877A例程---PWM

时间:11-24 来源:互联网 点击:
//PWM波形输出实验

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

#include //调用头文件
__CONFIG(0x3F31); //芯片配置字
#defineucharunsignedchar

#defineuintunsignedint
uchar a;

void CCP1INIT() ;
voiddelayms(uint z);
voidkeyscan();

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波形的变化)
voidkeyscan()
{
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);

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top