avatar_efeworld

24C32A EPROM ÇALIŞMA MANTIĞI

Başlatan efeworld, 23 Mayıs 2015, 19:40:04

efeworld

Saygıdeğer ete hocam ve arkadaşlar ben 24c32a veya daha başka epromların çalışma mantığını anlamaya çalışıyorum aslında burdan yola cıkarak  ds1302 nin de mantığını anlamak istiyorum internetten bişeyler buldum ama o programda mcs de hata veriyor çalışma mantıkları hakkında bilgi verirseniz çok memnun olucam saygılarıml...
DEFINE LCD_DREG PORTB 
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2 
low portb.2
adcon1=7
SCL var portc.3
SDA var portc.4
B var word
c var byte
basla:
lcdout $fe,$80,"24c32"
lcdout $fe,$c0,"anlama"
pause 200
bas:
if porta.0=0 then yaz
if porta.1=0 then oku
if porta.2=0 then sil
goto bas
yaz:
while porta.0=0
wend
lcdout $fe,1,"yaz bakalim"
B=0                                     
12Cwrite SDA,SCL,$A0,b,["aliveli"]
PAUSE 200
GOTO BASLA
oku:
WHILE porta.1=0
wend
lcdout $fe,1,"sifre="
for B=0 to 7
12Cread sda,scl,$A0,B,[C]
LCDOUT $fe,$c0+B,C
pause 200
next
goto basla


ete

Gerek ders notlarımda gerekse sitede epromların çalışmaları ile ilgili yeterince bilgi verdim. Zaten senin sorduğun şekilde genelleme yapıp çalışma mantığı şudur diyemiyoruz. Zira her epromun kendine göre adreslenme şekli ve mantığı mevcut. Kimisi byte adresi ile adresleniyor kimisi word ile (16bit) adresleniyor kimisi ise önce Page (Sayfa) seçip sonra o sayfada Byte ile adresleniyor. Her birinin nesıl çalıştığı nasıl kullanılacağı data sheetlerinde yazıyor. Her zaman söylerim illa İngilizce bilmek gerekmiyor. Biraz bakınca şekillerden (genelde şekil ile destekleniyor adresleme mantıkları) insan anlayabiliyor. Birazda çat pat anlamaya çalışırsanız olay çözülüyor.

İllaki her şeyin mantığını anlamak gerekmiyor. Nasıl kullanıldığını anlamak bence yeterlidir. Oda örneklere bakınca anlaşılıyor zaten.
DS1302 nin çalışma mantığı aşağı yukarı DS1307 ile aynıdır. Sadece biri SPI diğeri I2C ile haberleşir. Aşağıdaki linkte detaylı açıklamam var.

http://etepic.com/index.php/topic,458.0.html

Ete

efeworld

Tamam hocam anladim.cok tesekkur ederim.ALLAH razi olsun

efeworld

[DEFINE LCD_DREG PORTB 
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
define LCD RWREG PORTB
define LCD_RWBIT 2
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
low portb.2                                                                                               
trisb=0
trisc=0
trisd=0       
portc=0
portd=0
SCL VAR PORTC.3
SDA VAR PORTC.4
SN VAR BYTE
DAK VAR BYTE
SAAT VAR BYTE
GUN VAR BYTE
HGUN VAR BYTE
AY VAR BYTE
YIL VAR BYTE
TEMP VAR BYTE
ONLAR VAR BYTE
BIRLER VAR BYTE
CLEAR
BASLA:
GOSUB SAAT_OKU
GOSUB LCD_YAZ
if saat=13 and dak=06 then  portd.0=1
if saat =13 and dak =07 then portd.0=0
PAUSE 200
GOTO BASLA
LCD_YAZ:
LCDOUT $FE,1
LCDOUT DEC2 SAAT,":",DEC2 DAK,":",DEC2 SN," "
SAAT_OKU:
I2CREAD SDA,SCL,$A1,2,[SN,DAK,SAAT]
TEMP=SN
GOSUB DONUSTUR
SN=TEMP
TEMP=DAK
GOSUB DONUSTUR
DAK=TEMP
TEMP=SAAT & %00111111
GOSUB DONUSTUR
SAAT =TEMP
RETURN
CEVIR:
ONLAR=TEMP & %00110000
ONLAR=(ONLAR/16)*10
BIR:
BIRLER=TEMP & %00001111
TEMP=ONLAR +BIRLER
RETURN
DONUSTUR:
ONLAR=(TEMP/16)*10
GOTO BIR
CEVIRA:
ONLAR=TEMP & %00010000
GOTO DONUSTUR
END
/code]

hocam internetten bişeyler buldum ve sadeleştirdim biraz bu pcf8583 entegresine batarya bağlanmıyormu birde saat ayarlamalarını nasıl yapıyoruz yardımcı olurmusunuz lütfen.ds1307 nin bcd decimal ilişkilerini anladım fakat basit bir örnek olmayınca anlayamıyorum yardım edermisiniz acaba

efeworld

hocam internetten bişeyler buldum ve sadeleştirdim biraz bu pcf8583 entegresine batarya bağlanmıyormu birde saat ayarlamalarını nasıl yapıyoruz yardımcı olurmusunuz lütfen.ds1307 nin bcd decimal ilişkilerini anladım fakat basit bir örnek olmayınca anlayamıyorum yardım edermisiniz acaba

ete

PCF8583 ün direk pil bağlantı bacağı yok. Ancak bir diyotla pil bağlayabilirsin. Şebeke olduğu müddetçe oradan beslenir elektrik kesilirse otomatik pilden beslenir.
Bütün yapman gereken 5V dan 1N4148 ile VDD bacağına giriş yap. Yine 3V luk pilden yine 1N4148 ile VDD bacağına giriş yap.
Her iki diyot için diyotun çizgili bacağı VDD de olacaktır. Hangisi yüksek ise oradan beslenir. Şebeke var olduğu müddetçe oradan beslenecektir.

DS1307 örneği  aşağıdaki linkte mevcut.
http://etepic.com/index.php/topic,56.0.html

Ete


efeworld

Hocam ben bu isi ogrenirsem sayenizde ogrenicem buyuk hak sahibisiniz Allah razi olsun sizden cok tesekkur ederim

Powered by EzPortal