M

16f88 ile led yakma

Başlatan mcdm, 26 Eylül 2011, 14:10:24

mcdm

Merhabalar
ben pıc 16f88 ile sırasıyla 3 çeşit led yakmak istedim. basit bir porg yazdım ama çalışmadı. hardware baktım ilk önce sorun yok . acaba programdamı bir sorun var bakarmısınız ? (yeni başladım prog. yardımcı olursanız sevinirim .)


@ DEVICE pic16F88             
@ DEVICE pic16f88, WDT_on     
@ DEVICE pic16f88, PWRT_ON   
@ DEVICE pic16f88, MCLR_OFF   
@ DEVICE pic16f88, PROTECT_On
@ DEVICE pic16f88, INTRC_OSC_NOCLKOUT
DEFINE OSC 4

cmcon=7

PORTA=0:TRISA=%00000000
PORTB=0:TRISB=%00000000
OPTION_REG.7=0

SYMBOL RUN=PORTB.0
SYMBOL LEDB=PORTB.1
SYMBOL LEDY=PORTB.2
SYMBOL LEDK=PORTB.3

PAUSE 300

BASLA:
     
HIGH RUN
PAUSE 100
LOW RUN
PAUSE 50

      HIGH LEDB
      PAUSE 1000
      LOW LEDB
      PAUSE 1000
      HIGH LEDY
      PAUSE 1000
      LOW LEDB
      PAUSE 1000
      HIGH LEDK
      PAUSE 1000
      LOW LEDK
      PAUSE 1000
      HIGH LEDB
      HIGH LEDY
      HIGH LEDK
      PAUSE 1000
      LOW LEDB
      LOW LEDY
      LOW LEDK
      PAUSE 1000
      GOTO BASLA   
     
      END

kgguler

Yazdığınız program çalışıyor gözüküyor.En azından ISIS'te çalışıyor.Uygulama devresini ekleyebilirseniz problemin bulunması daha kolay olabilir.Şemanızda gözden kaçan birşeyler olabilir.Kolay gelsin.

ete

Program muhtemelen unuttuğun bir komut yüzünden çalışmıyor. Normalde isis bu komuta bakmaz varmış kabul eder.

16F88 de dahili osilatör hem 4 Mhz hemde 8 Mhze çalışabilmektedir. Bu nedenle yalnızca sigorta ayarlarından dahili osc nin aktif edilmesi işlemcinin çalışmasına yetmemektedir.
İşlemcinin bir de OSCCON registeri mevcut olup bu registerden çalıştıracağın 4Mhz frekansı ayarlaman gerekiyor.
Programda ;
Define OSC 4 komutundan sonra
OSCCON=%01100000
komutunuda ekle çalışacaktır.

Ete

mcdm

ÇALIŞTI TEŞEŞKÜR EDERİM. AMA O KOMUTU YAZMADAN 628A İLE konfigürasyon yaptım çalıştı. acaba pıc ler arası bu tür farklılıkları kolayca bilgi edinecegim bir kaynak varmı ? ( dahatsheetleri hariç)

ete

16F628 de yalnızca tek dahili osc var oda 4 Mhz. Mantık açısından düşünürseniz dahili osc yi aktif yaptınız. Tek frekans ise bir şey yapmaya gerek yok çalışır (16F628) ama çift frekans ise işlemci hangi frekansı aktif etsin? Doğru olanı hem dahili osc yi açmak hemde frekansı belirlemektir elbette.

Maalesef bildiğim bu tür şeyleri açıklayan data sheet den başka bir kaynak yok (benden başka elbette).

Ete

Powered by EzPortal