avatar_BİDİL

18F4550 PortA'dan 5 volt çıkış nasıl alınır.

Başlatan BİDİL, 14 Şubat 2013, 18:11:46

BİDİL

Uzun uğraşlar sonucu 16f877A ile yazdığım programı 18f4550 ile çalıştırmayı başardım ancak porta  nın yalnızca 4. ve 5. pinlerinden çıkış alabiliyorum porta.0-porta.1- porta.2- porta.3 den çıkış nasıl alabilirim. Çıkıştan kastımda şu A portunun tamamına 5 volt çıkış veriyorum bunlara ırfz44 transistör bağlı ve bu transistörler röle açıp kapatıyorlar. Kullandığım kodlar şu şekilde;

DEFINE OSC 4
asm
    __CONFIG _CONFIG1H, _FOSC_XT_XT_1H &_FCMEN_OFF_1H &_IESO_OFF_1H
    __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_OFF_2L &  _VREGEN_OFF_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H   
    __CONFIG _CONFIG3H, _MCLRE_OFF_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_OFF_3H   
    __CONFIG _CONFIG4L, _STVREN_OFF_4L & _LVP_OFF_4L &_XINST_OFF_4L  & _DEBUG_OFF_4L   
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L 
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H  & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
endasm

ADCON1=7
CMCON=7

TRISA=%00000000
TRISB=%00000000
TRISC=%11000100
TRISD=%00010000

BİDİL

datashet inde bu tabloyu buldum sorunun kaynağı sanırım bu ancak bunu programa nasıl tanıtabilirim.

ete

Sorunun kaynağı Comparator değil ADC seçeneğinin iptal edilmemiş olması.
877 de ADCON1=7 komutu ile yapılan iptal işlemi 18F4550 de ADCON1=%00001111 komutu ile yapılmaktadır.
Dolayısıyla,
ADCON1=7 komutu yerine ADCON1=%00001111 yazmanız gerekir.
Port pinlerinden çıkış almak için gerekli kod'u programda göremedim.
Bunun için PORTA=%11111111 komutunu vermeniz gerekirdi.

Ete

BİDİL

Teşekkür ederim düzeldi. Komutları ezberlemeye çalışana kadar işlevlerini öğrenmem daha hayırlı olacak. :-[

Powered by EzPortal