微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PIC16F877A和AVR的单片机的PWM输出程序

PIC16F877A和AVR的单片机的PWM输出程序

时间:12-02 来源:互联网 点击:
//在PICC编译器主,调试通过,PIC16F877APWM信号输出

#include
#define uchar unsigned char
#define uint unsigned int
__CONFIG(0x1832);

void delay()
{
uint k;
for(k=0;k<5000;k++);
}

void main()
{
uchar k;
T2CON=0X04; //开定时器2
CCPR1L=0X0F; //PWM匹配初值
CCP1CON=0X3C; //设置CCP1 模块为PWM 工作方式,且其工作循环
PR2=0XFF; //设置PWM 的工作周期
TRISC=0XFB; //设置CCP1 引脚为输出方式
while(1)
{
k++;
CCPR1L=k;
delay();
if(k>253)k=1;
}
}

////////////////////////////////////////////////////////////////////////////////////////////

下面的是AVR单片机ATMEGA16的PWM信号输出程序GCC编译通过

#include avr/io.h>
#define uchar unsigned char
#define uint unsigned int

void delay(uint ms)
{
uint i,j;
for(i=0;i{
for(j=0;j<1000;j++);
}
}

void main()
{
uint i;
DDRD|=0Xf0;
PORTD=0x0f;
TCCR1A=0X63;
TCCR1B=0X13;

OCR1A=124;
OCR1B=31;

while(1)
{

i++;
OCR1B=i;
delay(20);
if(i>123)i=1;

}

}

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

网站地图

Top