日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]//*************************************************************// |-| |-| |-| // | | | | | | // __| |________| |_______|_|_____------>PWM1 // // |----| |----| |----| // | | | | | | // __| |_____

//*************************************************************

// |-| |-| |-|
// | | | | | |
// __| |________| |_______|_|_____------>PWM1
//
// |----| |----| |----|
// | | | | | |
// __| |_____| |____| |_------>PWM2

//本實驗利用PIC單片機的CCP模塊功能產(chǎn)生PWM功能,PWM的周期為:
//(PR2+1)*4TOSC*(TMR2預分頻值)
//了解CCP模塊的CCP1CON寄存器功能,
//了解TMR2與CCP模塊的之間關系,
//掌握對CCP模塊的相關寄存器的初始化及設置
//軟件平臺:XC8編程器與MPLAB X IDE集成開發(fā)環(huán)境
//作者: 孫安青(Sun An-qing)
//利用CCP1模塊產(chǎn)生的PWM信號由RC2引腳輸出,
//同時利用CCP2模塊產(chǎn)生的PWM信號由RC1引腳輸出,兩者都可用示波器即可
//觀察到該PWM波形.

修改者:Leo

時間:20101223

顯示效果讓LED燈顯示效果由亮到滅, 再到亮,再到滅。

/* * 設置步驟見datasheet 的page 68 setup for PWM operation */
#include #define uchar unsigned char #define uint unsigned int // CONFIG #pragma config FOSC = HS // 12MHZ ???? #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT enabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT disabled) #pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled) #pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3/PGM pin has PGM function; low-voltage programming enabled) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
void delay1ms(uint DelayTime)
{
uint temp;
for(;DelayTime>0;DelayTime--)
{
for(temp=0;temp<270;temp++)
{;}
}
}
void main(void)
{
//***********************************************************
CCP1M3=1;//Enable CPP1 Work as PWM mode
CCP1M2=1;
CCP1M1=1;
CCP1M0=1;
TRISC2=0;//Enable RC2 work as output
CCPR1L=0x10;//PWM脈寬值,改變PWM的脈寬,只需改變CCPR1L中的值
CCP1X=0;//以及CCP1CON中的CCP1X和CCP1Y這兩個位的值
CCP1Y=0;

//***********************************************************
CCP2M3=1;//Enable CPP2 Work as PWM mode
CCP2M2=1;
CCP2M1=1;
CCP2M0=1;
TRISC1=0;//Enable RC1 work as output
CCPR2L=0x20;//PWM脈寬值,改變PWM的脈寬,只需改變CCPR2L中的值
CCP2X=0;//以及CCP2CON中的CCP2X和CCP2Y這兩個位的值
CCP2Y=0;

//***********************************************************
TOUTPS3=0;//Enable TMR2--->1:1
TOUTPS2=0;
TOUTPS1=0;
TOUTPS0=0;
T2CKPS1=1;//Enable TMR2--->1:16
T2CKPS0=1;
TMR2ON=1;//Enable TMR2 Working
TMR2=0;

while(1)
{
for(;num <= 1023; num++)
{
PR2=num;//PWM周期,改變PWM的周期,只需改變PR2中的值即可
delay1ms(10);
}
}
}

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉