標(biāo)題:
PIC16F877A單片機(jī)的PWM輸出程序
[打印本頁(yè)]
作者:
xiaos
時(shí)間:
2015-4-3 00:16
標(biāo)題:
PIC16F877A單片機(jī)的PWM輸出程序
////////////////////////////////////////
//在PICC編譯器主,調(diào)試通過(guò),PIC16F877A的PWM信號(hào)輸出
#include<pic.h>
#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; //開(kāi)定時(shí)器2
CCPR1L=0X0F; //PWM匹配初值
CCP1CON=0X3C; //設(shè)置CCP1 模塊為PWM 工作方式,且其工作循環(huán)
PR2=0XFF; //設(shè)置PWM 的工作周期
TRISC=0XFB; //設(shè)置CCP1 引腳為輸出方式
while(1)
{
k++;
CCPR1L=k;
delay();
if(k>253)k=1;
}
}
////////////////////////////////////////////////////////////////////////////////////////////
下面的是AVR單片機(jī)ATMEGA16的PWM信號(hào)輸出程序GCC編譯通過(guò)
#include <avr/io.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms)
{
uint i,j;
for(i=0;i<ms;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;
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1