16F887 kullanımı

Başlatan kaganayanoglu, 18 Şubat 2019, 12:43:33

kaganayanoglu

16F887 kullanmak istedim ama yapamadım. Simülasyonda bile lcd ye tek satır yazdıramadım. Utanıyorum...


Derleyici olarak V.3.0.6.1 kullanıyorum. Yardım edermisiniz?
Picin iç osilatörünü 4 yada 20 MHZ de kullanmak istiyorum.



;----[16F887 Hardware Configuration]--------------------------------------------
#IF __PROCESSOR__ = "16F887"
  #DEFINE MCU_FOUND 1
#CONFIG
cfg1 = _INTRC_OSC_NOCLKOUT    ; INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN
cfg1&= _WDT_OFF               ; WDT disabled and can be enabled by SWDTEN bit of the WDTCON register
cfg1&= _PWRTE_OFF             ; PWRT disabled
cfg1&= _MCLRE_OFF             ; RE3/MCLR pin function is digital input, MCLR internally tied to VDD
cfg1&= _CP_OFF                ; Program memory code protection is disabled
cfg1&= _CPD_ON                ; Data memory code protection is enabled
cfg1&= _BOR_OFF               ; BOR disabled
cfg1&= _IESO_OFF              ; Internal/External Switchover mode is disabled
cfg1&= _FCMEN_OFF             ; Fail-Safe Clock Monitor is disabled
cfg1&= _LVP_OFF               ; RB3 pin has digital I/O, HV on MCLR must be used for programming
cfg1&= _DEBUG_OFF             ; In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins
  __CONFIG _CONFIG1, cfg1

cfg2 = _BOR40V                ; Brown-out Reset set to 4.0V
cfg2&= _WRT_OFF               ; Write protection off
  __CONFIG _CONFIG2, cfg2

#ENDCONFIG

#ENDIF

;----[Verify Configs have been specified for Selected Processor]----------------
;       Note: Only include this routine once, after all #CONFIG blocks
#IFNDEF MCU_FOUND
  #ERROR "No CONFIGs found for [" + __PROCESSOR__ +"]"
#ENDIF


'*************************************
'ISLEMCI TANIMLAMALARI
DEFINE OSC 4       'KRİSTAL FREKANSI        
DEFINE ADC_BITS 10 
DEFINE ADC_CLOCK 3 ' IC KRISTAL KULLANILIYOR 
DEFINE ADC_SAMPLEUS 20
    
'*************************************
'ADCON0 = %01000001
ADCON1 = %10000000   'SAGA YASLANIK sonuç almak için

TRISA = 0
TRISB = 0
TRISC = 0
TRISD = 0
TRISE = 0


Pause 100 ' 100 ms AÇILIŞ GECİKMESİ

DEFINE LCD_DREG PORTB      'LCD data bacakları hangi porta bağlı? LCD nin D0 D1 D2 D3 
DEFINE LCD_DBIT 0          'LCD data bacakları hangi bitten başlıyor? ***
DEFINE LCD_RSREG PORTB     'LCD RS Bacağı Hangi Porta bağlı ?         
DEFINE LCD_RSBIT 4         'LCD RS bacağı Hangi Bite bağlı ?        4 ***
DEFINE LCD_EREG PORTB      'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 5          'LCD Enable Bacağı Hangi bite bağlı ?    5
DEFINE LCD_BITS 4          'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 4
'*************************************
    
BASLA:
LCDOUT $FE,1     
LCDOUT $FE, $80, "      DENEME   "
LCDOUT $FE, $C0, "      TEST      "
PAUSE 100 
GOTO BASLA


kaganayanoglu

Merhaba arkadaşlar.

Cevap beklerken datasheet okumaya devam ediyordum ki bu işlemcide D0-1-2-3-4-5 pinlerinin aynı zamanda analog giriş pinleri (AN8-9-10-11-12-13)olduğunu ve bunları ANSELH=0 yaparak I/O haline getirmem gerektiğini buldum. Bu şekilde LCD çalıştı.

Aynı sorunu yaşayabilecek arkadaşlara yol göstermesi açısından kendi soruma cevap olarak yazıyorum.

Herkese kolay gelsin. Teşekkürler.

kaganayanoglu

#2
16F887  32mhz hızda çalışabilirmi?

ferit06

#3
D portlarından D5, D6 ve D7  PWM amaçlı kulanılabiliyor. Diğer pinler yani sizin kullanmak istediğiniz pinlerde dahil olmak üzere genel amaçlı I/O. Devrenizi kontrol edin.

Ben yazana kadar cevap verdiğim  mesaj gitmiş......

kaganayanoglu

Alıntı yapılan: ferit06 - 19 Şubat 2019, 14:20:37D portlarından D5, D6 ve D7  PWM amaçlı kulanılabiliyor. Diğer pinler yani sizin kullanmak istediğiniz pinlerde dahil olmak üzere genel amaçlı I/O. Devrenizi kontrol edin.

Ben yazana kadar cevap verdiğim  mesaj gitmiş......

Ferit kardeşim teşekkür ederim. Devreyi kontrol edince pertinaks bakır yol kısadevresi tespit ettim. Bu yüzden kaldırdım soruyu. Ama bu defa başka soru sordum. Çok teşekkürler ilgin için.

ete

Bildiğim bu işlemci kristal ile maksimum 20Mhz dahili osc ile maksimum 8Mhz de çalışabilir.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ahuramazda

Alıntı yapılan: kaganayanoglu - 19 Şubat 2019, 13:43:0016F887  32mhz hızda çalışabilirmi?

dahili osc 8 MHz'e kadar, harici osc de 20 MHz'e kadar çalışabiliyor. 32 MHz için yeni daha yeni ürünleri tercih etmelisiniz.