16F628A HAFIZA

Başlatan elvanmurat, 23 Eylül 2018, 18:26:35

elvanmurat

Tasarlamış olduğum devrede 16f628a hafıza sorunu yaşıyorum.devremiz son ayarlanan hat numarasını devrenin enerjisi kesilip geldiğinde başa alıyor.birde ilk enerji verildiğinde aşağıdaki butona basınca ekran siliniyor.ayrıca yine ilk enerji verildiğinde yukardaki butona ilk basıldığında led yanıyor ancak ekranda hat değişmiyor.olması gereken ise,devre çalışmaya başlayınca örneğin hat no 3 ise enerji kesilip verildiğinde porta.2 bağlı olan ledi 3 defa yakıp söndürmesi ve ekranın hatno:3 olması gerekiyor. yukarı butona basıldığında hatno:4 ve ileri doğru devamı aynı zamanda porta.2 ledini yakıp söndürmesi,aşağı butona basıldığında hatno:2 ve geriye doğru devamı aynı zamanda porta.3 ledini yakıp söndürmesi gerekiyor.yardımlarınız için şimdiden teşekkür ederim.

aRci

her buton sonrası hafıza adlı değişkeni değiştirip onu yaıyorun uz ama doğrusu hatno yu direk kaydetmen gerekiyor
WRITE ADRE,HATNO


ilk olarak haızadan okudun değeri hatno değişkenine atmalısınız.
BASLA:

LCDOUT $FE,1,"EFE ELEKTRON",2,"K"
LCDOUT $FE,$C0,"S",2,"STEM KONTROL"
PAUSE 1000
LCDOUT $FE,1,"HAT NO:1   0933         "
LCDOUT $FE,$C0,"    ET",2,"MESGUT         "

ADRE=1
READ ADRE,HAFIZA
HATNO=HAFIZA


ete

Programa öncelikle DEFINE OSC 4 komutunu ekle.
Ardından BASLA satırından sonra yer alan ,
ADRE=1
READ ADRE,HAFIZA
satırlarını oradan çıkart ve BASLA satırından evvel bunları yerleştir. Ama eksiği de olduğu için onları şöyle yaz.
 ADRE=1 
READ ADRE,HAFIZA
IF HAFIZA=255 THEN HAFIZA=1
HATNO=HAFIZA


Böylece program açılırken öncelikle hat numarasını epromdan okur ve BASLA satırından sonra bu numaraya göre ilgili satıra gider.
Bir kere okumak yeterlidir o nednele basla satırından evvel yerleştirdik.

Ete

Powered by EzPortal