16F877A Programlarken...

Başlatan solidus, 01 Mart 2006, 12:43:00

solidus

Merhaba arkadaşlar...
1. PIC 16F877A programlarken dikkat etmemiz gereken bir püf noktası varmıdır ?
2. IC-Progda 16F877A programlamak için hex dosyasını gösterdiğimizde Adress-Program Code alanı hex ile doluyor ve Adress Eeprom Data alanının tamamı FF FF FF FF FF FF FF FF görünüyorsa muhtemel hata nerede olabilir?
3. 16F877 Programlayan devre 16F877A'yı programlayabilir mi ?
4. Güvenilir bir 16F877A programlayıcı programlayıcı devre tavsiye edebilirmisiniz ?
Yardımlarınız için şimdiden çok teşekkürler..
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

Lütfi AYYILDIZ

Eğer programında eproma bilgi girmediysen Eeprom alanının FF olması gerekir. Ayrıca 16f877 ve 16f877A aynı işlemciler birini programlayan diğerinide programlar. Elimde bir tane programlayıcı şeması var bir çok pici programlayabiliyor. Mailini verirsen gönderirim.

ete

Normal olarak IC-Prog da önce Pic'i seçecek, sonra Hex dosyasını yükleyeceksin. Pic lere göre programlama parametreleri değiştiği için programı yükledikten sonra öncekinden farklı bir pic seçersen ekran sıfırlanır.  Yani program alanı 3FFF ler ile, Eeprom alanı ise FF ler ile dolar. Bu seni yanıltmasın.

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

solidus

cobra07 dostum rica etsem şemanı goldmiletr@hotmail.com adresine gönderebilirmisin ?
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

seco06

http://rapidshare.de/files/12548397/propic2.rar.html
burada benim kullandığım bir tane var çok ii çalışıyor

solidus

seco 06 öncelikle teşekkür ederim devren için yapmaya başladım bile. vebir soru ..
@ DEVICE pic16F877a
@ DEVICE pic16F877a, WDT_ON
@ DEVICE pic16F877a, PWRT_ON
@ DEVICE pic16F877a, PROTECT_OFF
@ DEVICE pic16F877a, XT_OSC

Define LCD_DREG     PORTD ' LCD data portunu belirler
Define LCD_DBIT     4 ' 4 bit'lik veri yolu
Define LCD_RSREG    PORTD ' LCD register seçme portunu belirler
Define LCD_RSBIT    0 ' LCD register seçme bitini belirler
DEFINE LCD_RWREG    PORTD        'LCD R/W Portu
DEFINE LCD_RWBIT    1            'LCD R/W biti
Define LCD_EREG     PORTD ' LCD enable portunu belirler
Define LCD_EBIT     2 ' LCD enable bitini belirler
Define LCD_LINES    4 ' LCD'deki satir sayisi
DEFINE ADC_BITS     10       ' Set number of bits in result
DEFINE ADC_CLOCK    1     ' Set clock source (rc = 3)
DEFINE ADC_SAMPLEUS 1000 ' Set sampling time in microseconds

ADCON1=%10001110

TRISA=%00001011
TRISB=%11111001
TRISC=0
TRISD=0
PORTB=0
PORTC=0

EPROM bilgileri bunlar mı ??
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

solidus

Birde arkadaşlar voltmetre ile kontrol ettiğimde seri portun 3-4-5-7-8 nolu uçlarından 5 numara (GND)hariç hepsinde eksi voltaj görüyorum bu normalmidir ?
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

Lütfi AYYILDIZ

Hayır eeprom bilgileri bunlar değil. Burada LCD ye bağlayacağın portları ve çeşitli tanımlamaları yapmışsın.Bu okadar önemli değil. LCDOUT komutunu kullandığın zaman standart bağlantısını kurman yeterli.
@ DEVICE pic16F877a
@ DEVICE pic16F877a, WDT_ON
@ DEVICE pic16F877a, PWRT_ON
@ DEVICE pic16F877a, PROTECT_OFF
@ DEVICE pic16F877a, XT_OSC
bunları tanımlamana gerek yok programlayıcın zaten bu işi yapıyor. Ayrıca seri porta dikkat etsen iyi olur arızalanabilir muhtemelen ölçtüğün değerler doğrudur çünkü seri port  +10V ve -10V aralığında çalışır.

solidus

cobra07 kardeşim peki eeprom bilgileri nelerdir ? Örnekleyebilirmisin ?
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

solidus

16F877 nin MCLR ucunda 13,3 vdc ve vdd uçlarında 5 vdc görmelimiyim ?
Kimine göre kralım kimine göre yalanım… Herkes rahatına baksın, ben adamına göre adamım..

Lütfi AYYILDIZ

Alıntı Yap16F877 nin MCLR ucunda 13,3 vdc ve vdd uçlarında 5 vdc görmelimiyim ?
Evet görmen gerekir.
eeprom senin programına bağlı olarak istediğin verileri yazabileceğin ve okuyabileceğin bir bellektir. Örneğin picin enerjisini kestiğinde değişkenlerin içindeki verilerin kaybolmamasını istiyorsan önceden eeproma kaydedersin enerji verdiğinde tekrar okutursun olay budur.Bu aynen bilgisayarının harddiski gibi bişey, işine yarayabilecek herşeyi yazabilirsin. Sana örnek bir program vereyim biraz karışık ama benim yazma stilim bu. Burada seri olarak aldığın verileri chip üzeri eeproma yazan ,Ğ harfine bastığında okuma yapan ve LCD de gösteren bir program.

include "modedefs.bas"
GIRIS VAR PORTB.1
ALINAN VAR BYTE
JE var byte
d var byte
C VAR BYTE
c=$80
a0 var byte
adres_x var byte
adres_r var byte
adres_x=0
adres_r=0 

rx:
SerIn2 GIRIS,84,[a0]
if a0=$d0 then oku
write adres_x,a0
pause 10
adres_x=adres_x+1
goto rx

oku:
FOR JE=0 TO adres_x-1 
read adres_r,d
pause 10
adres_r=adres_r+1
if adres_r=adres_x then 
adres_r=0
endif

if C=$d0 then
pause 10
lcdout $fe,1
C=$80
endif
PAUSE 10
LCDOUT $FE,C,d
PAUSE 10
C=C+1
if C=$90 then
C=$c0
endif
pause 10

next

end