//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);
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/260716.html