16f88 için illegal opcode hatası

Başlatan quanov, 26 Aralık 2018, 20:03:57

quanov

Merhabalar, Devrim Çamoğlu'nun Mikrodenetleyiciler ile Elektronik kitabındaki pic uygulamalarını yapmaya çalışıyorum. Kitap 2012 basımı olduğu için sıkıtı yaşıyorum.

2x16lık lcd ekran uygulamasını yapmaya çalışıyorum ama microcodestudioda kodu compile etmeye çalıştığımda illegal opcode hatası alıyorum. Sanırım sigorta ayarlarında bir sıkıntı var ama konuyada hakim değilim. MPASM kullanıyorum.
@ DEVICE pic16F88, INTRC_OSC_NOCLKOUT
@ DEVICE pic16F88, MCLR_OFF

DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_RWREG PORTB 
DEFINE LCD_RWBIT 1
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
PAUSE 500

Program:
    LCDOUT $fe,1
    PAUSE 100
    LCDOUT "  Merhaba"
    PAUSE 500
    LCDOUT $fe,$c5,"Dunya!"
    PAUSE 500
    
GOTO Program
Kod bu şekilde bir yanlış var mı? Ne yapmam gerekiyor, beni aydınlatırsanız çok memnun olurum.

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

ete

Program PBP da yazılmış. Verilen config (sigorta ayarları) ise MPASM için değil PBP nun kendi assembleri için uygun. Bu nedenle MPASM kullanınca ;
Aşağıdaki iki sigorta ayarını yada birden fazla ise bu ayarları silip ,
@ DEVICE pic16F88, INTRC_OSC_NOCLKOUT
@ DEVICE pic16F88, MCLR_OFF

yerine aşağıdakileri yazın.

@ __CONFIG  _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_IO
@ __CONFIG  _CONFIG2, _IESO_OFF & _FCMEN_OFF

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

quanov

Merhabalar, yardımınız için teşekkür ederim.

Dediğiniz gibi kodları sildim ve attıklarınızı kopyaladım fakat şu andada Overwriting previous address contents hatası çıktı. Bu hata için ne yapabilirim?

quanov

Bu sorunla karşılaşan arkadaşlar için çözüm yolu buldum. C klasöründeki pbp dosyasının içinden 16f88.inc dosyasını buluyor ve not defteri ile açıyoruz. Aşağıda bulunan sigorta ayarlarının yazılı olduğu "__config _CONFIG1, _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF" metninin başına ; koyuyoruz. ";__config _CONFIG1, _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF" Ve sorun çözülüyor.

Acemiliğimle başınızı ağrıttığım için kusura bakmayın.