16F877A MERHABA DUNYA

Başlatan . Kağan, 21 Mart 2014, 11:13:37

. Kağan

Alıntı Yap
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : KAGAN AYANOGLU                                    *
'*  Notice  : Copyright (c) 2014 SERBEST                        *
'*          : All Rights Reserved                               *
'*  Date    : 20.3.2014                                         *
'*  Version : 1.0                                               *
'*  Notes   :  16F877A                                                  *
'*          :  MERHABA DUNYA                                                 *
'****************************************************************
@ __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF & _CP_OFF
 

DEFINE OSC 4


PORTA = 0
PORTB = 0
PORTC = 0
PORTD = 0

DEFINE LCD_DREG PORTB      'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 4          'LCD data bacakları hangi bitten başlıyor? ***
DEFINE LCD_RSREG PORTB     'LCD RS Bacağı Hangi Porta bağlı ?         
DEFINE LCD_RSBIT 1         'LCD RS bacağı Hangi Bite bağlı ?        4 ***
DEFINE LCD_EREG PORTB      'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 0          '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 2



  LCDOUT $FE,$80, "MERHABA"         
  LCDOUT $FE,$C0, "DUNYA"       
  PAUSE 1000

Neresi eksik yada hatalı acaba

efsanepoldem

#1
giriş çıkışlar nerde hocam? TRIS komutları yok
TRISB=0

ete

İlave olarak , LCD kullanılan projelerde bir şey yazdırmadan önce mutlaka LCDOUT $fe,1 komutunu verin ve en az 150 ms bekletin.
Bu komut LCD yi aktive edecektir (initalisation) . Yapmazsanız, LCD registerleri tam olarak yerleşemediğinden ekranda bir şey göremeyebilirsiniz.

Programda A portu bir işte kullanılmıyor ama 16F877A da A portunda default olarak Komparatör vardır ve sistem açılınca komparatör aktif açılır. Kapatmak için CMCON=7 komutu kullanılmalıdır.

Ete

. Kağan

#3
TEŞEKKÜRLER

EDIT: CMCON=7 verince overwriting previous address contents hatası veriyor. Niçin acaba

ete

Derlemeyi belkide 16F877 olarak yapıyorsunuzdur!!!!
Ete

. Kağan

Pardon ETE. INC dosyasının başına " ; " koymamışım. Düzeldi . Tekrar sağol.

. Kağan

ADCIN 0, BILGI  '  bilgi+=read_adc();
   FOR I=0 TO 59   '   for(i=0;i<=99;i++)
   EC_1 = bilgi/60
   next
   PAUSE 1000       ' //delay_ms(1000);



  LCDOUT $FE,$80, "EC_1 "


Şeklinde yazınca EC_1 'in değerini ekrana yazdıramıyorum. Karakter olarak EC_1 yazıyor. Ne yazmalıyım.

ete


  LCDOUT $FE,$80, "EC_1 " yerine
  LCDOUT $FE,$80, DEC EC_1
yazmalısın

Tırnak içi aynen ekrana aktarılır. Bir değişken değeri yazdırılırken hane gözetmeden yazdırmak için DEC EC_1 yada # EC_1
şeklinde yazdırmak gerekir. Hane işin içine girecek ise DEC1 yalnızca 1 hane, DEC2 yalnızca 2 hane DEC3 yalnızca 3 hane yazdırır. Hane sayısı yeterli değil ise yerine sıfır yazılır. Örneğin EC=3 ise ve DEC3 EC demişseniz ekranda 003 görürsünüz.
Ama EC=1234 ise ve DEC3 EC demişseniz ekranda 123 görürsünüz (unuttum belkide 234 olabilir)

Ete

Powered by EzPortal