morinel
Üye
- Katılım
- 2 Ağu 2010
- Mesajlar
- 184
- Puanları
- 1
- Yaş
- 44
PIC16F877A kullanarak Proteus'ta devreyi tasarlıyoruz. Kodları MicroC'de yazıp .coff file olarak PIC'e aktarıyoruz. Bu haftaki ödevi ama hiç anlamadım. Bu konuda kod yazma yardımı isteyeceğim. 15 numaralı bacağa PULSE bağlı. 8-9-10'da logicstate var.
MicroC Pro for PIC kullanıyoruz.
Kodumuz şu:
Soru 1: bu kod ne işe yarıyor? PULSE için VLow=0V Vhigh=5V start=0 risetime=1u fall time 1u pulse width=%50 FreQ=32.768kHz
Diğer sorular:
1. Timer0'in önbölücü değerini 1:4 ve 1:8 olarak değiştirerek sonucu gözlemleyin.
2. RA4 pinine bir kare dalga sinyal üreteci bağlayın. Timer0 modülünü RA4 pininden gelen
harici sinyali sayacak şekilde kurun. Bu şekilde Timer0'in 200 ms'de bir kesme vermesini
sağlayın.
3. Timer1 modülünü, RC0 pinine bağlı olan sinyal üretecinin frekansını değiştirmeden, 250
ms'de bir kesme verecek şekilde ayarlayın.
Not: Her kesme verildiğinde PortD'ye bağlı olan LED'lerin örnek koddaki gibi yanıp
sönmelerini sağlayın.
Kısaca bu haftanın tam anlamadığım ödev konusunda yardıma ihtiyacım var.
MicroC Pro for PIC kullanıyoruz.
Kodumuz şu:
Kod:
void kur ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
PORTE=0X00;
ADCON1=0B10000110;
TRISA=0X00;
TRISB=0X00;
TRISC=0X00;
TRISD=0X00;
TRISE=0B00000111;
TMR0=0;
OPTION_REG=0B00000010;
INTCON,TMR0IE_bit=1;
INTCON,GIE_bit=1;
INTCON,PEIE_bit=1;
INTCON,TMR0IF_bit=0;
TMR1L=0x00;
TMR1H=0x80;
T1CON=0B00001111;
PIR1,TMR1IF_bit=0;
PIE1,TMR1IE_bit=1;
}
void interrupt(void)
{
if (PIR1,TMR1IF_bit==1)
{
PIR1,TMR1IF_bit=0;
TMR1L=0x00;
TMR1H=0x80;
PORTD=PORTD^0x0F;
}
if (INTCON,TMR0IF_bit==1)
{
INTCON,TMR0IF_bit=0;
PORTD=PORTD^0xF0;
}
}
void sifirla ()
{
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
}
void main() {
kur();
while(1)
{
//sifirla();
}}
Soru 1: bu kod ne işe yarıyor? PULSE için VLow=0V Vhigh=5V start=0 risetime=1u fall time 1u pulse width=%50 FreQ=32.768kHz
Diğer sorular:
1. Timer0'in önbölücü değerini 1:4 ve 1:8 olarak değiştirerek sonucu gözlemleyin.
2. RA4 pinine bir kare dalga sinyal üreteci bağlayın. Timer0 modülünü RA4 pininden gelen
harici sinyali sayacak şekilde kurun. Bu şekilde Timer0'in 200 ms'de bir kesme vermesini
sağlayın.
3. Timer1 modülünü, RC0 pinine bağlı olan sinyal üretecinin frekansını değiştirmeden, 250
ms'de bir kesme verecek şekilde ayarlayın.
Not: Her kesme verildiğinde PortD'ye bağlı olan LED'lerin örnek koddaki gibi yanıp
sönmelerini sağlayın.
Kısaca bu haftanın tam anlamadığım ödev konusunda yardıma ihtiyacım var.