PROTON İLE LCD (mikromuh kardeşim için)

Başlatan enrique_iglesias, 09 Aralık 2008, 02:28:28

enrique_iglesias

Mikromuh kardeş bir önceki mesajımda Ahmet kardeşim sayesinde picbasic ile işimi gördüm ama şimdi protona geçtim ve bir yerde kaldım sen bir kod vermiştin bana :

Device 16F877 
XTAL 4 

LCD_DTPORT = PORTD 
LCD_RSPIN = PORTC.1 
LCD_ENPIN = PORTE.0 
LCD_RWPIN = PORTC.0 
LCD_CS1PIN = PORTE.1 
LCD_CS2PIN = PORTE.2 
LCD_TYPE = GRAPHIC 
INTERNAL_FONT = On 
FONT_ADDR = 0 
ALL_DIGITAL = True 


BASLA: 
Print At 0, 2 , "MERHABA DUNYA " ' 
DelayMS 5000 
Cls 
GoTo BASLA 
End 
Include "FONT.INC"




Şimdi ben bunu uyguluyorum ancak hiç bir suretle hiç bir veri alamıyorum :( Çünkü bende en pini , rs pini , rw pini , cs1 ve cs2 pinleri yok sabahtan beri uğraşıyorum ama hala proton ile bu işi yapamadım..

Benim donanımım :

A0  PORTB.2
WR PORTB.1
RD PORTB.0
CS PORTB.3
RST PORTB.5
DATA PORTD

olarak kurulu değiştirmeme imkan yok çünkü bir daha sökersem yollar tamamen bitecek....

Ben bu declare kısmını nasıl geçebilirim????? bana yardımcı olan olurmu bu saatte :(

mikromuh

PG320240 GRAFIK LCD KULLANIMI

Kullandigin lcd buydu değilmi? Eklemis oldugum kod 128x64 ks0108 samsung chipsetli lcdler icindir.Standart bir kodtur.Sizin grafik lcdnize uygun değil.Protonun kendi grafik lcd kutuphanesini kullanmaktadir.

http://www.picbasic.org/forum/
http://www.protongeeks.com/

enrique_iglesias

Anladim o zaman elimdeki lcd ile print komutunu kullanamayacagim protona gecmeyi planliyordum sirf proton ile daha kolay oldugu icin.. Ahmet2004 pic basic ile yardimci olmuştu ama program lookup ile calistigi icin biraz hantal geldi bana... Peki sed1335 icin bir kutuphane eklenebilirmi? Veya haziri varmidir?

mikromuh

CCS de sed1335 icin hazir kutuphane var.

SED1335.c      Kullandigin lcd ye uygun diye dusunuyorum.Kutuphane kodundan bikismini ekliyorum.Biraz modifiye ile sorun cikarsa halledebilirsin.Ccs de calismayida deneyin.

http://user.chol.com/~ascbbs/ccscdrv2/SED1335.C

#ifndef SED1335
#define SED1335

#ifndef GLCD_WIDTH
#define GLCD_WIDTH         320
#endif

#ifndef GLCD_HEIGHT
#define GLCD_HEIGHT        240
#endif

#ifndef GLCD_CHAR_WIDTH
#define GLCD_CHAR_WIDTH    8
#endif

#ifndef GLCD_CHAR_HEIGHT
#define GLCD_CHAR_HEIGHT   8
#endif

#ifndef GLCD_RST
#define GLCD_RST           PIN_C3
#endif

#ifndef GLCD_RD
#define GLCD_RD            PIN_B5
#endif

#ifndef GLCD_WR
#define GLCD_WR            PIN_B1
#endif

#ifndef GLCD_CS
#define GLCD_CS            PIN_B2
#endif

#ifndef GLCD_A0
#define GLCD_A0            PIN_B4
#endif

Buda picbasicle;
http://www.picbasic.co.uk/forum/attachment.php?attachmentid=866&d=1146704427

'--------------------------------------------------------------------'
' Author:  Robert Hedan                                              '
' Date:    April 7th, 2006                                           '
' Company: XAVIERkamial Inc.                                         '
'                                                                    '
' Language:   PIC Basic Pro v2.46                                    '
' MPU:        PIC 16F877 20/P from MicroChip                         '
' IDE:        MicroCode Studio Plus from Mecanique v2.2.1.1          '
' Programmer: MeLabs Serial Programmer v3.12 (firmware v3.4)         '
' LCD:        LCM3202401 from QingYun-IT                             '
'                                                                    '
' All rights reserved.                                               '
'                                                                    '
' Use of parts of code is permitted as long as credit is given       '
' to the author.  Code may or may not be Year 3000 proof.  Use       '
' at your own risk.                                                  '
'--------------------------------------------------------------------'

'define  LOADER_USED 1
clear
ADCON1   = 7

ASM
@ DEVICE PIC16F877, HS_OSC, WDT_OFF, PWRT_ON, BOD_ON, LVP_OFF, CPD_OFF, WRT_OFF, DEBUG_OFF, PROTECT_OFF
ENDASM

DEFINE OSC 20

pinData     var PORTD          
pinWR       var PORTB.0      
pinRD       var PORTB.1        
pinCS       var PORTB.2      
pinA0       var PORTB.4
pinRST      var PORTB.5        
pinLED      VAR PORTB.3
pinSCL      VAR PORTC.3
pinSDA      VAR PORTC.4

       TRISD   = 0
       TRISB.0 = 0
       TRISB.1 = 0
       TRISB.2 = 0
       TRISB.4 = 0
       TRISB.5 = 0
       TRISB.3 = 0

conSet              con   $40
conScroll           con   $44
conCursorForm       con   $5d
conCursorAddress   con   $46
conCursorRight       con   $4c
conOverlay           con   $5b
conWrite           con   $42
conDisplayON       con   $59
conDisplayOFF       con   $58
conCharPerLine      con   $28    ' 40  characters / line

varCommand   Var   BYTE
varCursor   var BYTE
varByte      var   BYTE
varLoop1   var   BYTE
varLoop2   var   BYTE
varAddress   var   WORD

      pinRD  = 1
      pinWR  = 1
       pinCS  = 0
       pinRST = 0
       pause 1
       pinRST = 1
       pause 100

       goto main

' --------------------------- Subroutines --------------------------

'INCLUDE "SED1335 subroutines.pbp"
SendData:
   pinA0   = 0
   pinData = varByte
   pinWR   = 0
'   @ nop
   pinWR   = 1
return

SendCommand:
   pinA0   = 1
   pinData = varCommand
   pinWR   = 0
'   @ nop
   pinWR   = 1
return

ClearGraphic:
   varCommand = conCursorAddress
   gosub SendCommand
   varByte = $00
   gosub SendData
   varByte = $10
   gosub SendData

   varCommand = conCursorRight
   gosub SendCommand

   varCommand = conWrite
   gosub SendCommand
   varByte = %00000000            ' 1 byte = 8 bits = 8 pixels wide
   for varLoop1 = 1 to 240        ' 240 pixels high
      for varLoop2 = 1 to 40      ' 40 bytes = 320 bits = 320 pixels wide
      gosub SendData
      next varLoop2
   next varLoop1
return

ClearText:
   varCommand = conCursorAddress
   gosub SendCommand
   varByte = $00
   gosub SendData
   varByte = $00
   gosub SendData

   varCommand = conCursorRight
   gosub SendCommand

   varCommand = conWrite
   gosub SendCommand
   varByte = " "
   for varLoop1 = 1 to 30
      for varLoop2 = 1 to 40
          gosub SendData
      next varLoop2
   next varLoop1
return

InitDisplay:
   varCommand = conSet
   gosub SendCommand
   for varLoop1 = 0 to 7
      lookup varLoop1,[$32,$87,$07,$27,$2B,$EF,$28,$00],varByte
      gosub SendData
   next varLoop1

   varCommand = conScroll
   gosub SendCommand
   for varLoop1 = 0 to 5
      lookup varLoop1,[$00,$00,$EF,$00,$10,$EF],varByte
      gosub SendData
   next varLoop1

   varCommand = conOverlay
   gosub SendCommand
   varByte = %00000001
   gosub SendData

   varCommand =conDisplayOFF
   gosub SendCommand
   varByte = %00000000
   gosub SendData
   
   gosub ClearText
   gosub ClearGraphic

   varCommand = conDisplayON
   gosub SendCommand
   varByte = %00010100
   gosub SendData

   varCommand = conCursorAddress
   gosub SendCommand
   varByte = $0
   gosub SendData
   varByte = $0
   gosub SendData

   varCommand =conCursorForm
   gosub SendCommand
   varByte = $04
   gosub SendData
   varByte = $86
   gosub SendData
return

SetAddress:
   varCommand = conCursorAddress
   gosub SendCommand
   varByte = varAddress.BYTE0
   gosub SendData
   varByte = varAddress.BYTE1
   gosub SendData

   varCommand = varCursor
   gosub SendCommand

     varCommand = conWrite
     gosub SendCommand
return

' --------------------------- Main program --------------------------

Main:
   gosub InitDisplay

   pinLED = 1

    varAddress = 0
     varCursor  = conCursorRight
     gosub SetAddress   

     for varLoop1 = 0 to 39
      lookup varLoop1,[".. QINGYUN IT LCM-3202401 GRAPHIC LCD .."],varByte
        gosub SendData
   NEXT varLoop1

     varAddress = 29 * conCharPerLine
     varCursor  = conCursorRight
     gosub SetAddress   

     for varLoop1 = 0 to 39
      lookup varLoop1,["XAVIERkamial Inc.           Robert Hedan"],varByte
        gosub SendData
   NEXT varLoop1
end

enrique_iglesias

Ccs hic kullanmadim basic'de ilerledim yakin oldugu icin proton'a gecmek istedim...

Evet basic'de lcd'ye bir cok sey yazdirabildim ama gercekten cok uzun...ayrica bir cok soru isareti kafamda..
Mesela grafik yaptirmak resim yuklemek, degisken de?erleri yazdirmak gibi...ne vardi lcdout gibi kolay olsaydi..