Professional Documents
Culture Documents
Proje III
Proje III
PIC16F877A ile Darbe Genilik Modlasyonu (PWM) ve Analog Dijital evrimi (ADC) Uygulamas 4. Kaynaklar
NSZ
Bu proje almasnda PIC16F877A ve HI TECH C kullanarak g elektronii uygulamalarna temel bir giri yaplmtr.
Bu proje almamda bana yardmlarn ve bilgilerini esirgemeyen Sayn Yrd. Do. Dr. Tark ERFDANa, Sayn Nasr ORUHa ve Mesut RNCANa teekkrlerimi ve sayglarm sunmay bir bor bilirim.
#include <htc.h> #include "delay.h" void main(void) { TRISA=0x01; TRISC=0x00; PORTC=0x00; PR2=24; CCPR1L=12; T2CKPS1=1; T2CKPS0=0; TMR2ON=1; CCP1M3=1; CCP1M2=1; CCP1M1=1; CCP1M0=1; for(;;) { }
2. PIC16F877A ile Darbe Genilik Modlasyonu (PWM) ve Analog Dijital evrimi (ADC) Uygulamas
Bu uygulamada, lineer potansiyometre zerindeki gerilim PIC16F877Adaki ADCye okutturularak PWM doluluk oran belirlenecek ve MOSFETle sabit mknatsl DC motor srlecektir. HI TECH C program satrlar aadaki gibidir: #include <htc.h> #include "delay.h" void main(void) { TRISA=0x01; TRISC=0x00; PORTC=0x00; PCFG3=1; PCFG2=1; PCFG1=1; PCFG0=0; ADFM=1; ADON=1; ADCS1=1; ADCS0=0; PR2=4; T2CKPS1=1; T2CKPS0=0; TMR2ON=1; CCP1M3=1; CCP1M2=1;
CCP1M1=1; CCP1M0=1; TMR2IF=0; TMR2IE=1; PEIE=1; GIE=1; for(;;) { CHS2=0; CHS1=0; CHS0=0; DelayUs(25); ADGO=1; while(ADGO); } } static void interrupt kesme(void) { if (TMR2IF) { CCPR1L=ADRESH; TMR2IF=0; TMR2ON=1; } }