3310 LCD Proteus Model Örnek Ccs PICbasic Uygulaması

| Mayıs 17, 2023 Tarihinde güncellendi
3310 LCD Proteus Model Örnek Ccs PICbasic Uygulaması

Nokia telefon lcdleri ile güzel devreler yapılıyor eski telefonu bu iş için değerlendirmek iyidir 🙂 bu tip çalışmalar için proteus model dosyası işinize yarayabilir

iki adet sat derece uygulaması var ikiside PIC16F877 ile gerçekleştirilmiş ccs için verilen not

go6o diyorki:
Eğer sisteminizde Proteus 6.3 SP1 kurulu değil ise, isis file menüsünden import section’ı tıklayarak schema.sec dosyasını seçin böylelikle şema daha eski versiyonlarda
da çalışacaktır.

LPH7779-LCD(Nokia 3310) library

////////////////////////////////////////////////////////////////////////////////
/*
                     LPH7779-LCD(Nokia 3310) library
*/
////////////////////////////////////////////////////////////////////////////////

#bit nok_sclk = lcdport.5    // RB5
#bit nok_sda  = lcdport.6    // RB6
#bit nok_dc   = lcdport.7    // RB7
#bit nok_cs   = lcdport.0    // RB0
#bit nok_res  = lcdport.1	  // RB1

char CONST TABLE5 [240] = {  // ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes
                  0x00,0x00,0x00,0x00,0x00,	// 20 space
						0x00,0x00,0x5f,0x00,0x00,	// 21 !
						0x00,0x07,0x00,0x07,0x00,	// 22 "
						0x14,0x7f,0x14,0x7f,0x14,	// 23 #
						0x24,0x2a,0x7f,0x2a,0x12,	// 24 $
						0x23,0x13,0x08,0x64,0x62,	// 25 %
						0x36,0x49,0x55,0x22,0x50,	// 26 &
						0x00,0x05,0x03,0x00,0x00,	// 27 '
						0x00,0x1c,0x22,0x41,0x00,	// 28 (
						0x00,0x41,0x22,0x1c,0x00,	// 29 )
						0x14,0x08,0x3e,0x08,0x14,	// 2a *
						0x08,0x08,0x3e,0x08,0x08,	// 2b +
						0x00,0x50,0x30,0x00,0x00,	// 2c ,
						0x08,0x08,0x08,0x08,0x08,	// 2d -
						0x00,0x60,0x60,0x00,0x00,	// 2e .
						0x20,0x10,0x08,0x04,0x02,	// 2f /
						0x3e,0x51,0x49,0x45,0x3e,	// 30 0
						0x00,0x42,0x7f,0x40,0x00,	// 31 1
						0x42,0x61,0x51,0x49,0x46,	// 32 2
						0x21,0x41,0x45,0x4b,0x31,	// 33 3
						0x18,0x14,0x12,0x7f,0x10,	// 34 4
						0x27,0x45,0x45,0x45,0x39,	// 35 5
						0x3c,0x4a,0x49,0x49,0x30,	// 36 6
						0x01,0x71,0x09,0x05,0x03,	// 37 7
						0x36,0x49,0x49,0x49,0x36,	// 38 8
						0x06,0x49,0x49,0x29,0x1e,	// 39 9
						0x00,0x36,0x36,0x00,0x00,	// 3a :
						0x00,0x56,0x36,0x00,0x00,	// 3b ;
						0x08,0x14,0x22,0x41,0x00,	// 3c <
						0x14,0x14,0x14,0x14,0x14,	// 3d =
						0x00,0x41,0x22,0x14,0x08,	// 3e >
						0x02,0x01,0x51,0x09,0x06,	// 3f ?
						0x32,0x49,0x79,0x41,0x3e,	// 40 @
						0x7e,0x11,0x11,0x11,0x7e,	// 41 A
						0x7f,0x49,0x49,0x49,0x36,	// 42 B
						0x3e,0x41,0x41,0x41,0x22,	// 43 C
						0x7f,0x41,0x41,0x22,0x1c,	// 44 D
						0x7f,0x49,0x49,0x49,0x41,	// 45 E
						0x7f,0x09,0x09,0x09,0x01,	// 46 F
						0x3e,0x41,0x49,0x49,0x7a,	// 47 G
						0x7f,0x08,0x08,0x08,0x7f,	// 48 H
						0x00,0x41,0x7f,0x41,0x00,	// 49 I
						0x20,0x40,0x41,0x3f,0x01,	// 4a J
						0x7f,0x08,0x14,0x22,0x41,	// 4b K
						0x7f,0x40,0x40,0x40,0x40,	// 4c L
						0x7f,0x02,0x0c,0x02,0x7f,	// 4d M
						0x7f,0x04,0x08,0x10,0x7f,	// 4e N
						0x3e,0x41,0x41,0x41,0x3e};	// 4f O

char CONST TABLE6 [240] = {
                  0x7f,0x09,0x09,0x09,0x06,	// 50 P
						0x3e,0x41,0x51,0x21,0x5e,	// 51 Q
						0x7f,0x09,0x19,0x29,0x46,	// 52 R
						0x46,0x49,0x49,0x49,0x31,	// 53 S
						0x01,0x01,0x7f,0x01,0x01,	// 54 T
						0x3f,0x40,0x40,0x40,0x3f,	// 55 U
						0x1f,0x20,0x40,0x20,0x1f,	// 56 V
						0x3f,0x40,0x38,0x40,0x3f,	// 57 W
						0x63,0x14,0x08,0x14,0x63,	// 58 X
						0x07,0x08,0x70,0x08,0x07,	// 59 Y
						0x61,0x51,0x49,0x45,0x43,	// 5a Z
						0x00,0x7f,0x41,0x41,0x00,	// 5b [
						0x02,0x04,0x08,0x10,0x20,	// 5c \
						0x00,0x41,0x41,0x7f,0x00,	// 5d ñ
						0x04,0x02,0x01,0x02,0x04,	// 5e ^
						0x40,0x40,0x40,0x40,0x40,	// 5f _
						0x00,0x01,0x02,0x04,0x00,	// 60 `
						0x20,0x54,0x54,0x54,0x78,	// 61 a
						0x7f,0x48,0x44,0x44,0x38,	// 62 b
						0x38,0x44,0x44,0x44,0x20,	// 63 c
						0x38,0x44,0x44,0x48,0x7f,	// 64 d
						0x38,0x54,0x54,0x54,0x18,	// 65 e
						0x08,0x7e,0x09,0x01,0x02,	// 66 f
						0x0c,0x52,0x52,0x52,0x3e,	// 67 g
						0x7f,0x08,0x04,0x04,0x78,	// 68 h
						0x00,0x44,0x7d,0x40,0x00,	// 69 i
						0x20,0x40,0x44,0x3d,0x00,	// 6a j
						0x7f,0x10,0x28,0x44,0x00,	// 6b k
						0x00,0x41,0x7f,0x40,0x00,	// 6c l
						0x7c,0x04,0x18,0x04,0x78,	// 6d m
						0x7c,0x08,0x04,0x04,0x78,	// 6e n
						0x38,0x44,0x44,0x44,0x38,	// 6f o
						0x7c,0x14,0x14,0x14,0x08,	// 70 p
						0x08,0x14,0x14,0x18,0x7c,	// 71 q
						0x7c,0x08,0x04,0x04,0x08,	// 72 r
						0x48,0x54,0x54,0x54,0x20,	// 73 s
						0x04,0x3f,0x44,0x40,0x20,	// 74 t
						0x3c,0x40,0x40,0x20,0x7c,	// 75 u
						0x1c,0x20,0x40,0x20,0x1c,	// 76 v
						0x3c,0x40,0x30,0x40,0x3c,	// 77 w
						0x44,0x28,0x10,0x28,0x44,	// 78 x
						0x0c,0x50,0x50,0x50,0x3c,	// 79 y
						0x44,0x64,0x54,0x4c,0x44,	// 7a z
						0x00,0x08,0x36,0x41,0x00,	// 7b {
						0x00,0x00,0x7f,0x00,0x00,	// 7c |
						0x00,0x41,0x36,0x08,0x00,	// 7d }
						0x10,0x08,0x08,0x10,0x08,	// 7e ~
						0x78,0x46,0x41,0x46,0x78};	// 7f ¦

			// 7e,43,40,43,7e --> Ü
         // 7e,43,42,43,7e --> Ö
         // 1e,21,21,71,21 --> Ç
         // 3c,42,53,53,72 --> Ğ

//function prototypes
void 	nokia_init();
void 	nokia_write_command(char bytefornokia_command);
void 	nokia_write_data(char bytefornokia_data);
void 	nokia_write_dorc(char bytefornokia);
void 	nokia_gotoxy(char xnokia, char ynokia);
void  nokia_contrast (byte contrast);
void  nokia_printchar(char cvar);
void 	nokia_clean_ddram();
void 	table_to_nokialcd();
void  LcdPixel (char x, char y);

char char_row,charsel,charpos,chardata;
int16 ddram;

void nokia_init() {
   nok_dc=1;            // bytes are stored in the display data ram, address counter, incremented automatically
   nok_cs=1;            // chip disabled
   delay_us(200);

   nok_res=0;
   delay_ms(10);
   nok_res=1;

   nokia_write_command(0x21); // set extins extended instruction set
   nokia_write_command(0xc8); // Vop  v1: 0xc8 (for 3V), v2: 0xa0 (for 3V)
   nokia_write_command(0x13); // bias
   nokia_write_command(0x20); // horizontal mode from left to right, X axe are incremented automatically,
                              // 0x22 for vertical addressing, back on normal instruction set too
   nokia_write_command(0x09); // all on

   delay_ms(50);

   nokia_clean_ddram();       // reset DDRAM, otherwise the lcd is blurred with random pixels

   delay_ms(10);

   nokia_write_command(0x08); // mod control blank change (all off)
   delay_ms(10);

   nokia_write_command(0x0c); // mod control normal change
}

void nokia_clean_ddram() {
   nokia_gotoxy(0,0);			// 84*6=504		clear LCD
   for (ddram=504; ddram>0; ddram--)
      nokia_write_data(0x00);
}

void nokia_write_command(char bytefornokia_command)
{
   nok_dc=0;	// byte is a command it is read with the eight SCLK pulse
   nok_cs=0;	// chip enabled
   nokia_write_dorc(bytefornokia_command);
   nok_cs=1;	// chip disabled
}

void nokia_write_data(char bytefornokia_data)
{
   nok_dc=1;
   nok_cs=0;	// chip enabled
   nokia_write_dorc(bytefornokia_data);
   nok_cs=1;	// chip disabled
}

void nokia_write_dorc(char bytefornokia) {		// serial write data or command subroutine
   char caa;
   for (caa=8;caa>0;caa--)
      {
   		nok_sclk=0;
   		delay_us(2);
   		if ((bytefornokia&0x80)==0)
            nok_sda=0;
   		else
            nok_sda=1;
   		nok_sclk=1;
         delay_us(2);
   		bytefornokia = bytefornokia << 1;
   	}
}

void nokia_gotoxy(char xnokia, char ynokia) {   // Nokia LCD 3310 Position cursor
   nokia_write_command(0x40|(ynokia&0x07));     // Y axe initialisation: 0100 0yyy
   nokia_write_command(0x80|(xnokia&0x7f));     // X axe initialisation: 1xxx xxxx
}

void nokia_contrast (char contrast) {
    nokia_write_command(0x21);                  // LCD Extended Commands.
    nokia_write_command(0x80 | contrast);       // Set LCD Vop (Contrast).
    nokia_write_command(0x20);                  // LCD Standard Commands, horizontal addressing mode.
}

void nokia_printchar(char cvar) {					// Write 1 character to LCD
   charsel=cvar;
   table_to_nokialcd();
}

void table_to_nokialcd() {                      // extract ascii from tables & write to LCD
   if (charsel<0x20) return;
   if (charsel>0x7f) return;

   for (char_row=0;char_row<5;char_row++)
      {
         if (charsel<0x50){charpos=(((charsel&0xff)-0x20)*5);chardata=TABLE5[(charpos+char_row)];}	// use TABLE5
         if (charsel>0x4f){charpos=(((charsel&0xff)-0x50)*5);chardata=TABLE6[(charpos+char_row)];}	// use TABLE6

      	nokia_write_data(chardata);  // send data to nokia
      }
      	nokia_write_data(0x00);      // 1 byte (always blank)
}

void LcdPixel (char x, char y) {
    int16 offset;
    byte  data;

    if (x > 84) return;
    if (y > 48) return;

    offset = y - ((y / 8) * 8) - 1;
    data = (0x01 << offset);

    nokia_gotoxy(x, (y/6));
    nokia_write_data(data);
}

Nokia 3310 library PICBASIC

@ DEVICE pic16F877A
@ DEVICE pic16F877A, WDT_on
@ DEVICE pic16F877A, PWRT_off
@ DEVICE pic16F877A, PROTECT_OFF
@ DEVICE pic16F877A, HS_OSC
'Include "Modedefs.Bas" 
'TRISC=0
TRISD=0
'TRISE=0
'TRISA=0                   
'TRISB=0
OPTION_REG.7=1              'PULL UP DİRENÇLERİNİN HEPSİ İPTAL
adcon1=7                       



      DEFINE OSC 20
'3310 lcd tanımlamaları  
      DC          VAR PortB.4
      DTA         VAR PortB.3
      RST         VAR PortB.5
      CLK         VAR PortB.2
      Chr         VAR WORD
      j           var byte
      i           VAR byte
      CharCount   VAR Byte
      PosX        VAR Byte
      PosY        VAR Byte
      Column      VAR Byte [6]
     
      LcdData     VAR BYTE
     
'*****RTC DS1302  TANIMLAMALARI*****
RTC_RST VAR PORTC.3
RTC_CLK VAR PORTC.1
RTC_DTA VAR PORTC.2
MENU    VAR PORTD.2
YUKARI  VAR PORTD.3
ASAGI   VAR PORTC.4
'*******DS1820 TANIMLAMALARI***************
Comm_Pin    VAR	PortA.1     ' One-wire Data-Pin "DQ" PortB.0 da
'*****RTC DS1302 DEĞİŞKENLERİ*****
SN          VAR BYTE
DAK         VAR BYTE
SAAT        VAR BYTE
GUN         VAR BYTE
AY          VAR BYTE
YIL         VAR BYTE
MEM         var byte
SAYI        VAR BYTE
day         var byte'haftanın gunlerı degiskeni
e           VAR BYTE
ONLAR       VAR BYTE
BIRLER      VAR BYTE
SN_ESKI      VAR BYTE
YENILE      VAR BIT
deger       var byte


'DS1820 DEGİSKENLERİ***************

Busy        VAR BIT         ' Busy Status-Bit
HAM         VAR	WORD        ' Sensör HAM okuma değeri
ISI         VAR WORD        ' Hesaplanmış ISI değeri
Float       VAR WORD        ' Holds remainder for + temp C display
X           VAR WORD       
SIGN_BITI   VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
NEGAT_ISI   CON 1           ' Negatif_Cold = 1

SIGN        VAR BYTE        '  ISI değeri için  +/-  işaret
TEMP        VAR BYTE         ' Div32 bit hesap için geçici değişken
ISI_ESKI    VAR BYTE
'ilk degerler
sn=40
saat=23
dak=59
gun=20
ay=01
yil=08
day=1
'***********************************
' LCD BASLANGIC AYARLARI
  PAUSE 100
  GOSUB LCD_INIT
  PAUSE 100
  GOSUB LCD_Clear
 
    low RTC_RST  'RESET VE CLOCK PİNLERİ SIFIRLADIK saat saymaya baslıyor    
    LOW RTC_CLK
    
    
    GOSUB ZAMAN_YAZ
    GOSUB IMAJ1
    PAUSE 2000
    GOSUB EKRAN1
    GOSUB ZAMAN_GOSTER
    SN_ESKI=SN
    'PAUSE 2000

    
basla1:
    if  MENU=0 then BASLA1
BASLA:   
   if  MENU=0 then saatayar
    
    'ISI_ESKI=ISI
    'gosub zaman_goster
    GOSUB SENSOROKU
    gosub zaman_oku
    IF SN_ESKI<>SN THEN
    gosub zaman_goster
    SN_ESKI=SN
    ENDIF
    

    GOSUB DEGER_AL
    gosub isilcd
    IF  ISI_ESKI<>ISI THEN
    GOSUB ANALOG_YAZ
    ISI_ESKI=ISI
    ENDIF
    goto basla
LCD_Init:
    LOW RST 
    pause 20  
    HIGH RST  
    LOW DC  ' RESET LCD
  
    LcdData= $21: GOSUB LCD_ByteOut        ' LCD EXTENDED COMMANDS
    LcdData= $d1: GOSUB LCD_ByteOut        ' SET LCD Vop (CONTRAST)
    LcdData= $06: GOSUB LCD_ByteOut        ' SET TEMP COEFFICENT
    LcdData= %00010101: GOSUB LCD_ByteOut        ' LCD BIAS MODE
    LcdData= $20: GOSUB LCD_ByteOut        ' LCD STANDARD COMMANDS
    LcdData= $0c: GOSUB LCD_ByteOut        ' LCD IN NORMAL MODE
    RETURN
  
LCD_ByteOut:
    SHIFTOUT DTA,CLK,1,[LcdData]
    RETURN
  
LCD_StringOut:
    GOSUB KOLON_YAZ
    HIGH DC
    SHIFTOUT DTA,CLK,1,[Column(0),Column(1),Column(2),Column(3),Column(4),Column(5)]
    RETURN
LCD_Clear:
    PosX=0:PosY=0:GOSUB LCD_GotoXY
    HIGH DC
    FOR Chr=1 TO 252
    LcdData=0:GOSUB LCD_ByteOut
    LcdData=0:GOSUB LCD_ByteOut
    NEXT Chr
    RETURN
LCD_GotoXY:
    LOW DC
    LcdData= %01000000 |PosY' :
    GOSUB LCD_ByteOut
    POSX=POSX*6
    LcdData=%10000000 |PosX'  :
    GOSUB LCD_ByteOut
    high dc
    RETURN
KOLON_YAZ:
    SELECT CASE lcdData
 
 
 case "A"'65   $7F,$09,$09,$09,$7F,$00,
 
     COLUMN(0)=$7E
     COLUMN(1)=$11
     COLUMN(2)=$11
     COLUMN(3)=$11
     COLUMN(4)=$7E
     COLUMN(5)=$00
    
    
 case "B"'65
     COLUMN(0)=$7F
     COLUMN(1)=$49
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$36
     COLUMN(5)=$00
      
  case "C"

     COLUMN(0)=$3E
     COLUMN(1)=$41
     COLUMN(2)=$41
     COLUMN(3)=$41
     COLUMN(4)=$22
     COLUMN(5)=$00
 
    
 case 199'"Ç"
     COLUMN(0)=$1E
     COLUMN(1)=$21
     COLUMN(2)=$61
     COLUMN(3)=$21
     COLUMN(4)=$12
     COLUMN(5)=$00 
  case "D"'65
     COLUMN(0)=$7F
     COLUMN(1)=$41
     COLUMN(2)=$41
     COLUMN(3)=$22
     COLUMN(4)=$1C
     COLUMN(5)=$00
   
  case "E"'65
     COLUMN(0)=$7F
     COLUMN(1)=$49
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$41
     COLUMN(5)=$00
   
  case "F"'65
     COLUMN(0)=$7F
     COLUMN(1)=$09
     COLUMN(2)=$09
     COLUMN(3)=$09
     COLUMN(4)=$01
     COLUMN(5)=$00
   
 case "G"'65
     COLUMN(0)=$3E
     COLUMN(1)=$41
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$7A
     COLUMN(5)=$00

    
     case 208'"Ğ"'65
     COLUMN(0)=$7E
     COLUMN(1)=$43
     COLUMN(2)=$53
     COLUMN(3)=$53
     COLUMN(4)=$72
     COLUMN(5)=$00


    
     case "H"'65
     COLUMN(0)=$7F
     COLUMN(1)=$08
     COLUMN(2)=$08
     COLUMN(3)=$08
     COLUMN(4)=$7F
     COLUMN(5)=$00

    
     case "I"'65
     COLUMN(0)=$00
     COLUMN(1)=$41
     COLUMN(2)=$7F
     COLUMN(3)=$41
     COLUMN(4)=$00
     COLUMN(5)=$00

    
     case 221'"İ"
     COLUMN(0)=$00
     COLUMN(1)=$44
     COLUMN(2)=$7D
     COLUMN(3)=$44
     COLUMN(4)=$00
     COLUMN(5)=$00

     case "J"'65
     COLUMN(0)=$20
     COLUMN(1)=$40
     COLUMN(2)=$41
     COLUMN(3)=$3F
     COLUMN(4)=$01
     COLUMN(5)=$00

    
     case "K"'65
     COLUMN(0)=$7F
     COLUMN(1)=$08
     COLUMN(2)=$14
     COLUMN(3)=$22
     COLUMN(4)=$41
     COLUMN(5)=$00

    
     case "L"'65
     COLUMN(0)=$7F
     COLUMN(1)=$40
     COLUMN(2)=$40
     COLUMN(3)=$40
     COLUMN(4)=$40
     COLUMN(5)=$00

    
     case "M"'65
     COLUMN(0)=$7F
     COLUMN(1)=$02
     COLUMN(2)=$0C
     COLUMN(3)=$02
     COLUMN(4)=$7F
     COLUMN(5)=$00

    
     case "N"'65
     COLUMN(0)=$7F
     COLUMN(1)=$04
     COLUMN(2)=$08
     COLUMN(3)=$10
     COLUMN(4)=$7F
     COLUMN(5)=$00

     case "O"'65
     COLUMN(0)=$3E
     COLUMN(1)=$41
     COLUMN(2)=$41
     COLUMN(3)=$41
     COLUMN(4)=$3E
     COLUMN(5)=$00

    
     case 214'"Ö" $3C,$43,$42,$43,$3C,$00
     COLUMN(0)=$3C
     COLUMN(1)=$43
     COLUMN(2)=$42
     COLUMN(3)=$43
     COLUMN(4)=$3C
     COLUMN(5)=$00

     case "P"'65
     COLUMN(0)=$7F
     COLUMN(1)=$09
     COLUMN(2)=$09
     COLUMN(3)=$09
     COLUMN(4)=$06
     COLUMN(5)=$00

    
     case "R"'65
     COLUMN(0)=$7F
     COLUMN(1)=$09
     COLUMN(2)=$19
     COLUMN(3)=$29
     COLUMN(4)=$46
     COLUMN(5)=$00

    
     case "S"'65
     COLUMN(0)=$46
     COLUMN(1)=$49
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$31
     COLUMN(5)=$00

     case 222'"Ş"$22,$65,$65,$25,$19,$00
     COLUMN(0)=$22
     COLUMN(1)=$65
     COLUMN(2)=$65
     COLUMN(3)=$25
     COLUMN(4)=$19
     COLUMN(5)=$00

    
     case "T"'65
     COLUMN(0)=$01
     COLUMN(1)=$01
     COLUMN(2)=$7F
     COLUMN(3)=$01
     COLUMN(4)=$01
     COLUMN(5)=$00
     
     case "U"'65
     COLUMN(0)=$3F
     COLUMN(1)=$40
     COLUMN(2)=$40
     COLUMN(3)=$40
     COLUMN(4)=$3F
     COLUMN(5)=$00
     
     case 220'"Ü"  $3D,$40,$40,$40,$3D,$00
     COLUMN(0)=$3D
     COLUMN(1)=$40
     COLUMN(2)=$40
     COLUMN(3)=$40
     COLUMN(4)=$3D
     COLUMN(5)=$00

    
     case "V"'65
     COLUMN(0)=$1F
     COLUMN(1)=$20
     COLUMN(2)=$40
     COLUMN(3)=$20
     COLUMN(4)=$1F
     COLUMN(5)=$00
     

    
     case "W"'65
     COLUMN(0)=$3F
     COLUMN(1)=$40
     COLUMN(2)=$38
     COLUMN(3)=$40
     COLUMN(4)=$3F
     COLUMN(5)=$00



     case "Y"' $07,$08,$70,$08,$07,$00
          
     COLUMN(0)=$07
     COLUMN(1)=$08
     COLUMN(2)=$70
     COLUMN(3)=$08
     COLUMN(4)=$07
     COLUMN(5)=$00    
     case "Z"'65
          
     COLUMN(0)=$61
     COLUMN(1)=$51
     COLUMN(2)=$49
     COLUMN(3)=$45
     COLUMN(4)=$43
     COLUMN(5)=$00

    
     case "0"'65
     COLUMN(0)=$3E
     COLUMN(1)=$51
     COLUMN(2)=$49
     COLUMN(3)=$45
     COLUMN(4)=$3E
     COLUMN(5)=$00

    
     case "1"'65
     COLUMN(0)=$00
     COLUMN(1)=$42
     COLUMN(2)=$7F
     COLUMN(3)=$40
     COLUMN(4)=$00
     COLUMN(5)=$00
 
    
     case "2"'65
     COLUMN(0)=$42
     COLUMN(1)=$61
     COLUMN(2)=$51
     COLUMN(3)=$49
     COLUMN(4)=$46
     COLUMN(5)=$00

    
     case "3"'65
     COLUMN(0)=$21
     COLUMN(1)=$41
     COLUMN(2)=$45
     COLUMN(3)=$4B
     COLUMN(4)=$31
     COLUMN(5)=$00

    
     case "4"'65
     COLUMN(0)=$18
     COLUMN(1)=$14
     COLUMN(2)=$12
     COLUMN(3)=$7F
     COLUMN(4)=$10
     COLUMN(5)=$00

    
     case "5"'65
     COLUMN(0)=$27
     COLUMN(1)=$45
     COLUMN(2)=$45
     COLUMN(3)=$45
     COLUMN(4)=$39
     COLUMN(5)=$00

    
     case "6"'65
     COLUMN(0)=$3C
     COLUMN(1)=$4A
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$30
     COLUMN(5)=$00

    
     case "7"'65
     COLUMN(0)=$01
     COLUMN(1)=$71
     COLUMN(2)=$09
     COLUMN(3)=$05
     COLUMN(4)=$03
     COLUMN(5)=$00

    
    case "8"'65
    COLUMN(0)=$36
     COLUMN(1)=$49
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$36
     COLUMN(5)=$00

    
    case "9"'65
    COLUMN(0)=$06
     COLUMN(1)=$49
     COLUMN(2)=$49
     COLUMN(3)=$49
     COLUMN(4)=$3E
     COLUMN(5)=$00

    
     case " "'65
     COLUMN(0)=$00
     COLUMN(1)=$00
     COLUMN(2)=$00
     COLUMN(3)=$00
     COLUMN(4)=$00
     COLUMN(5)=$00

    
     case "+"'65
     COLUMN(0)=$08
     COLUMN(1)=$08
     COLUMN(2)=$3E
     COLUMN(3)=$08
     COLUMN(4)=$08
     COLUMN(5)=$00    
     
     case "-"'65
     COLUMN(0)=$08
     COLUMN(1)=$08
     COLUMN(2)=$08
     COLUMN(3)=$08
     COLUMN(4)=$08
     COLUMN(5)=$00

    
     case "."
     COLUMN(0)=$00
     COLUMN(1)=$00
     COLUMN(2)=$60
     COLUMN(3)=$60
     COLUMN(4)=$00
     COLUMN(5)=$00

     case "*"
     COLUMN(0)=$14
     COLUMN(1)=$08
     COLUMN(2)=$3E
     COLUMN(3)=$08
     COLUMN(4)=$14
     COLUMN(5)=$00

    
     case ":"
     COLUMN(0)=$00
     COLUMN(1)=$36
     COLUMN(2)=$36
     COLUMN(3)=$00
     COLUMN(4)=$00
     COLUMN(5)=$00

    end select
    return

 IMAJ1:
 PosX=0:PosY=0:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$01,$FD,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$85,$C5,$65,$35,$35,$35,$35,$35,$65,$C5,$85,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$05,$FD,$01,$FF],lcddata
  gosub LCD_ByteOut
  next i
  
  PosX=0:PosY=1:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$C0,$60,$30,$18,$0C,$06,$83,$81,$E0,$F0,$F8,$F8,$F8,$F0,$00,$80,$80,$81,$83,$86,$8C,$18,$30,$60,$C0,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF],lcddata
  gosub LCD_ByteOut
  next i
    
  PosX=0:PosY=2:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$E0,$F0,$18,$0C,$06,$03,$01,$F0,$F8,$F0,$F8,$FC,$FF,$FF,$FF,$FF,$FF,$E1,$E1,$E1,$E0,$E0,$FF,$FF,$FF,$FF,$FF,$F7,$E7,$00,$00,$00,$01,$03,$06,$0C,$18,$F0,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=3:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$00,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$0F,$18,$30,$60,$C0,$80,$0F,$3F,$BF,$9F,$FF,$FF,$8F,$8F,$0F,$07,$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00,$80,$C0,$60,$30,$18,$0C,$07,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=4:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$00,$FF,$00,$FC,$38,$F0,$E0,$F0,$38,$FC,$00,$F8,$FC,$84,$FC,$F8,$00,$FC,$38,$E0,$C0,$E0,$38,$FC,$00,$FC,$24,$24,$24,$25,$03,$06,$0D,$1B,$33,$63,$C1,$83,$03,$00,$01,$01,$01,$00,$00,$00,$80,$C0,$60,$30,$18,$0D,$06,$03,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=5:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$80,$BF,$A0,$A3,$A0,$A0,$A3,$A0,$A0,$A3,$A0,$A3,$A0,$A0,$A0,$A3,$A0,$A3,$A0,$A0,$A3,$A0,$A0,$A3,$A0,$A3,$A2,$A2,$A2,$A2,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A1,$A3,$A6,$AC,$AC,$AC,$AC,$A6,$A3,$A1,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$A0,$BF,$80,$FF],lcddata
  gosub LCD_ByteOut
  next i
  return
  EKRAN1:
   PosX=0:PosY=0:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$07,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$77,$17,$17,$77,$47,$47,$07,$07,$07,$EF,$AF,$5F,$FF,$1F,$EF,$EF,$1F,$FF,$FF,$7F,$3F,$7F,$FF,$FF,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
  
  PosX=0:PosY=1:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$9E,$DE,$1F,$FF,$3F,$DA,$DA,$3B,$FB,$FF,$00,$00,$00,$FF,$FF,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
    
  PosX=0:PosY=2:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$F9,$7A,$FB,$FF,$7C,$7B,$EB,$EC,$EF,$FF,$00,$00,$00,$FF,$FF,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=3:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$6E,$E0,$EF,$F0,$EF,$EF,$F0,$BF,$BF,$FF,$00,$00,$00,$FF,$FF,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=4:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$05,$07,$00,$7F,$7F,$63,$63,$63,$77,$00,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$00,$00,$00,$FF,$FF,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
      
  PosX=0:PosY=5:GOSUB LCD_GotoXY
  for i=0 to 84
  LOOKUP i,[$FF,$FF,$FF,$C0,$DF,$D5,$D1,$C0,$DF,$D0,$D0,$C0,$DF,$D5,$D1,$C0,$DF,$CA,$D1,$C0,$C1,$DF,$C1,$C0,$DF,$C5,$DF,$C0,$DF,$D1,$DF,$C0,$C1,$DF,$C1,$C0,$DF,$D5,$D1,$C0,$DF,$CA,$D1,$C0,$DF,$C3,$CC,$DF,$C0,$DF,$D1,$DF,$C0,$FF,$83,$FD,$F3,$FD,$83,$FF,$83,$ED,$ED,$83,$FF,$83,$FD,$F3,$FD,$83,$FF,$81,$B5,$FF,$E0,$EE,$DF,$DF,$DF,$EE,$E0,$FF,$FF,$FF],lcddata
  gosub LCD_ByteOut
  next i
  return
  
  
  
  
  
  
  
  ZAMAN_OKU:

         high RTC_RST
         shiftout RTC_DTA, RTC_CLK, 0, [$BF]
         SHIFTIN RTC_DTA, RTC_CLK, 1, [SN, DAK, SAAT,GUN , AY, day, YIL, MEM]  'OKU
         low RTC_RST
         MEM=SN:GOSUB CEVIR:SN=SAYI  
         MEM=DAK:GOSUB CEVIR:DAK=SAYI
         MEM=SAAT:GOSUB CEVIR:SAAT=SAYI
         MEM=GUN:GOSUB CEVIR:GUN=SAYI
         MEM=AY:GOSUB CEVIR:AY=SAYI
         MEM=YIL:GOSUB CEVIR:YIL=SAYI
         MEM=day:GOSUB CEVIR:day=SAYI
        
         return
          

ZAMAN_YAZ:
         MEM=SN:GOSUB TERSCEVIR:SN=SAYI
         MEM=DAK:GOSUB TERSCEVIR:DAK=SAYI
         MEM=SAAT:GOSUB TERSCEVIR:SAAT=SAYI
         MEM=GUN:GOSUB TERSCEVIR:GUN=SAYI
         MEM=AY:GOSUB TERSCEVIR:AY=SAYI
         MEM=YIL:GOSUB TERSCEVIR:YIL=SAYI

           
         high  RTC_RST 
         SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0]    'YAZMAK İÇİN HAZIRLA
         low RTC_RST:PAUSE 1 
         high RTC_RST          
         SHIFTOUT  RTC_DTA, RTC_CLK, 0, [$BE, SN, DAK, SAAT,GUN , AY, day, YIL, 0]  'YAZ
         low RTC_RST 
         PAUSE 10
         return
               
CEVIR:
         ONLAR=MEM & %01110000
         ONLAR=ONLAR>>4
         BIRLER=MEM & %00001111
         SAYI=ONLAR*10+BIRLER
         RETURN  

TERSCEVIR:                
         ONLAR=MEM DIG 1
         ONLAR=ONLAR<<4
         BIRLER=MEM DIG 0
         SAYI=ONLAR+BIRLER
         RETURN
zaman_goster:
SAATLCD:
    posx=1:posy=1:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=saat dig i
    gosub lcdyaz
    next i
    
    lcddata=":"
    gosub LCD_StringOut
    FOR i=1 TO 0 step-1   
    deger=dak dig i
    gosub lcdyaz
    next i
    
    lcddata=":"
    gosub LCD_StringOut
    FOR i=1 TO 0 step-1   
    deger=sn dig i
    gosub lcdyaz
    next i
TARIHLCD:
    posx=1:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=GUN dig i
    gosub lcdyaz
    next i
    
    lcddata="-"
    gosub LCD_StringOut
    FOR i=1 TO 0 step-1   
    deger=AY dig i
    gosub lcdyaz
    next i
    
    lcddata="-"
    gosub LCD_StringOut
    lcddata="2"
    gosub LCD_StringOut
    lcddata="0"
    gosub LCD_StringOut
    FOR i=1 TO 0 step-1   
    deger=YIL dig i
    gosub lcdyaz
    next i
    return
    
isilcd:
    
    posx=2:posy=4:gosub lcd_gotoxy
    deger=sign        
    gosub lcdyaz
    
    FOR i=2 TO 0 step-1   
    deger=ISI dig i
    gosub lcdyaz
    next i
    lcddata="."
    gosub LCD_StringOut
    deger=FLOAT dig 0
    gosub lcdyaz
    RETURN
ANALOG_YAZ:
    GOSUB EKRAN1
    gosub zaman_goster
    BRANCH ISI,[SIFIR,BIR,IKI,UC,DORT,BES,ALTI,YEDI,SEKIZ,DOKUZ,ONU,ONBIR,ONIKI,ONUC,ONDORT,ONBES,ONALTI,ONYEDI,ONSEKIZ,ONDOKUZ,YIRMI,YIRMIBIR,YIRMIIKI,YIRMIUC,YIRMIDORT,YIRMIBES,YIRMIALTI,YIRMIYEDI,YIRMISEKIZ,YIRMIDOKUZ,OTUZ]
 SIFIR:
    GOSUB POZISYON
    LCDDATA=0                                            
    
    GOTO CIKIS                                   
 BIR:
    GOSUB POZISYON
    LCDDATA=%10000000
    
    GOTO CIKIS
 IKI:    
    GOSUB POZISYON
    LCDDATA=%11000000
    
    GOTO CIKIS
 UC:    
    GOSUB POZISYON
    LCDDATA=%11100000
    
    GOTO CIKIS
 DORT:    
    GOSUB POZISYON
    LCDDATA=%11110000
    
    GOTO CIKIS
 BES:    
    GOSUB POZISYON
    LCDDATA=%11111000
    
    GOTO CIKIS
 ALTI:    
    GOSUB POZISYON
    LCDDATA=%11111100
    
    GOTO CIKIS
 YEDI:    
    GOSUB POZISYON
    LCDDATA=%11111110
    
    GOTO CIKIS
 SEKIZ:    
    GOSUB POZISYON
    LCDDATA=%11111111
    
    GOTO CIKIS
 DOKUZ:
    GOSUB POZISYON
    LCDDATA=%10000000
    
    GOTO CIKIS
 ONU:    
    GOSUB POZISYON
    LCDDATA=%11000000
   
    GOTO CIKIS
 ONBIR:    
    GOSUB POZISYON
    LCDDATA=%11100000
    
    GOTO CIKIS
ONIKI:    
    GOSUB POZISYON
    LCDDATA=%11110000
    
    GOTO CIKIS
 ONUC:    
    GOSUB POZISYON
    LCDDATA=%11111000
    
    GOTO CIKIS
 ONDORT:    
    GOSUB POZISYON
    LCDDATA=%11111100
    
    GOTO CIKIS
 ONBES:    
    GOSUB POZISYON
    LCDDATA=%11111110
    
    GOTO CIKIS
 ONALTI:    
    GOSUB POZISYON
    LCDDATA=%11111111
    
    GOTO CIKIS
 ONYEDI:
    GOSUB POZISYON
    LCDDATA=%10000000
    
    GOTO CIKIS
 ONSEKIZ:    
    GOSUB POZISYON
    LCDDATA=%11000000
    
    GOTO CIKIS
 ONDOKUZ:    
    GOSUB POZISYON
    LCDDATA=%11100000
    
    GOTO CIKIS
 YIRMI:    
    GOSUB POZISYON
    LCDDATA=%11110000
    
 YIRMIBIR:    
    GOSUB POZISYON
    LCDDATA=%11111000
    
    GOTO CIKIS
 YIRMIIKI:    
    GOSUB POZISYON
    LCDDATA=%11111100
    
    GOTO CIKIS
 YIRMIUC:    
    GOSUB POZISYON
    LCDDATA=%11111110
    
    GOTO CIKIS
 YIRMIDORT:    
    GOSUB POZISYON
    LCDDATA=%11111111
    
    GOTO CIKIS
 YIRMIBES:
    GOSUB POZISYON
    LCDDATA=%10000000
    
    GOTO CIKIS
 YIRMIALTI:    
    GOSUB POZISYON
    LCDDATA=%11000000
    
    GOTO CIKIS
 YIRMIYEDI:    
    GOSUB POZISYON
    LCDDATA=%11100000
    
    GOTO CIKIS
 YIRMISEKIZ:    
    GOSUB POZISYON
    LCDDATA=%11110000
    
    GOTO CIKIS
 YIRMIDOKUZ:    
    GOSUB POZISYON
    LCDDATA=%11111000
    GOTO CIKIS
 OTUZ:    
    GOSUB POZISYON
    LCDDATA=%11111100
   
CIKIS: GOSUB LCD_BYTEOUT
    RETURN    
SENSOROKU: 
    OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
    RETURN
 DEGER_AL:  
    OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
    OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
    GOSUB   Hesapla
    RETURN
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    sign  = 10
    IF SIGN_BITI = NEGAT_ISI THEN
       sign   = 11  
       temp=($ffff-ham+1)*625
       ISI  = DIV32 10 
       GOTO GEC   
    endif
    TEMP = 625 * (HAM+1)        ' 
    ISI = DIV32 10          ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
GEC:
    FLOAT = (ISI //1000)/100
    ISI=ISI/1000
    
    RETURN

    
lcdyaz:
    LOOKUP DEGER,["0123456789+- "],LCDDATA 
    gosub LCD_StringOut
   return
POZISYON:
    
    LOW DC
    IF ISI<=8 THEN
    LCDDATA=%11001101    'X
    GOSUB LCD_ByteOut
    LcdData= %01000100    'Y
    GOSUB LCD_ByteOut
    GOTO CIK
    ELSE
    LCDDATA=%11001101
    GOSUB LCD_ByteOut
    LcdData= %01000100
    GOSUB LCD_ByteOut
    HIGH DC
    LCDDATA=%11111111
    GOSUB LCD_ByteOut    
    LOW DC
    ENDIF
    
    IF ISI<=16 THEN          
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000011   'Y
    GOSUB LCD_ByteOut
    GOTO CIK
    ELSE
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000011   'Y
    GOSUB LCD_ByteOut
    HIGH DC
    LCDDATA=%11111111
    GOSUB LCD_ByteOut    
    LOW DC
    ENDIF    

    IF ISI<=24 THEN
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000010   'Y
    GOSUB LCD_ByteOut
    GOTO CIK
    ELSE
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000010   'Y
    GOSUB LCD_ByteOut
    HIGH DC
    LCDDATA=%11111111
    GOSUB LCD_ByteOut    
    LOW DC
    ENDIF    

    IF ISI<=30 THEN
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000001   'Y
    GOSUB LCD_ByteOut
    ELSE
    LCDDATA=%11001101  'X
    GOSUB LCD_ByteOut
    LcdData= %01000001   'Y
    GOSUB LCD_ByteOut
    HIGH DC
    LCDDATA=%11111111
    GOSUB LCD_ByteOut    
    LOW DC
    
    ENDIF
CIK:    
    HIGH DC
    RETURN
saatayar:
  LOW DC        'lcdye komut gondermek ıcın 0 yapılmalıdır
  LcdData= %00001101:GOSUB LCD_ByteOut
  PAUSE 400
  LcdData= %00001100:GOSUB LCD_ByteOut
  HIGH DC
IF MENU=0 THEN saatayar
saatayar1:
GOSUB SAAT_YAZ

if menu=0 then dakikaayar
if yukari=0 then saatiarttir
if ASAGI=0 then saatiazalt
goto saatayar1

saatiarttir:
IF YUKARI=0 THEN saat=saat+1
IF SAAT=24 THEN SAAT=0      
goto saatayar1

saatiazalt:
IF ASAGI=0 THEN saat=saat-1
IF SAAT=255 THEN SAAT=23
goto saatayar1
'-----------------------------DAKİKA AYAR--------------------------------------
dakikaayar:
if MENU=0 then dakikaayar
GOSUB ZAMAN_YAZ
GOSUB ZAMAN_OKU
GOSUB ZAMAN_GOSTER
dakikaayar1:
GOSUB DAKIKA_YAZ
if MENU=0 then GUN_AYAR
if YUKARI=0 then dakarttir
if ASAGI=0 then dakazalt

dakarttir:
IF YUKARI=0 THEN dak=dak+1
IF DAK=60 THEN DAK=0
goto dakikaayar1

dakazalt:
IF ASAGI=0 THEN dak=dak-1
IF DAK=255 THEN DAK=59              
goto dakikaayar1
 
GUN_AYAR:
if menu=0 then GUN_AYAR
GOSUB ZAMAN_YAZ
GOSUB ZAMAN_OKU
GOSUB ZAMAN_GOSTER
GUN_AYAR1:
GOSUB GUN_YAZ
if menu=0 then ay_a
if yukari=0 then GUN_ARTTIR
if ASAGI=0 then GUN_AZALT

GUN_ARTTIR:
IF YUKARI=0 THEN GUN=GUN+1
IF GUN=32 THEN GUN=1       
goto GUN_AYAR1

GUN_AZALT:
IF ASAGI=0 THEN GUN=GUN-1
IF GUN=255 OR GUN=0 THEN GUN=31
goto GUN_AYAR1
'---------------------------------AY AYAR--------------------------------------
AY_A:
if MENU=0 then AY_A
GOSUB ZAMAN_YAZ
GOSUB ZAMAN_OKU
GOSUB ZAMAN_GOSTER
AY_A1:
GOSUB AY_YAZ
if MENU=0 then YIL_A
if YUKARI=0 then AY_ART
if  ASAGI=0 then AY_AZAL

AY_ART:
IF YUKARI=0 THEN AY=AY+1
IF AY=13 THEN AY=1
goto AY_A1

AY_AZAL:
IF ASAGI=0 THEN AY=AY-1
IF AY=255 OR AY=0 THEN AY=12              
goto AY_A1
'--------------------------------YIL AYAR--------------------------------------
YIL_A:
IF MENU=0 THEN YIL_A
GOSUB ZAMAN_YAZ
GOSUB ZAMAN_OKU
GOSUB ZAMAN_GOSTER
YIL_A1:
GOSUB YIL_YAZ
if MENU=0 then ZAMAN_AYARLANDI
if YUKARI=0 then YIL_ART
if ASAGI=0 then YIL_AZAL

YIL_ART:
IF YUKARI=0 THEN YIL=YIL+1
IF YIL=100 THEN AY=00
goto YIL_A1

YIL_AZAL:
IF ASAGI=0 THEN YIL=YIL-1
IF YIL=255 THEN YIL=99              
goto YIL_A1

ZAMAN_AYARLANDI:
GOSUB ZAMAN_YAZ
GOSUB ZAMAN_OKU
GOSUB ZAMAN_GOSTER
  LOW DC        'lcdye komut gondermek ıcın 0 yapılmalıdır
  LcdData= %00001101:GOSUB LCD_ByteOut
  PAUSE 400
  LcdData= %00001100:GOSUB LCD_ByteOut
  HIGH DC 
  GOTO BASLA1 
SAAT_YAZ:
    
    

    posx=1:posy=1:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=saat dig i
    gosub lcdyaz
    next i
    pause 150
        posx=1:posy=1:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=12
    gosub lcdyaz
    next i
    pause 200
    return
DAKIKA_YAZ:
    posx=4:posy=1:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=DAK dig i
    gosub lcdyaz
    next i
    pause 150
    posx=4:posy=1:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=12
    gosub lcdyaz
    next i
    pause 200
    return
GUN_YAZ:
    posx=1:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=GUN dig i
    gosub lcdyaz
    next i
    pause 150
    posx=1:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=12
    gosub lcdyaz
    next i
    pause 200
    return
AY_YAZ:
    posx=4:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=AY dig i
    gosub lcdyaz
    next i
    pause 150
    posx=4:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=12
    gosub lcdyaz
    next i
    pause 200
    return
YIL_YAZ:
    posx=9:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=YIL dig i
    gosub lcdyaz
    next i
    pause 150
    posx=9:posy=2:gosub lcd_gotoxy
    FOR i=1 TO 0 step-1   
    deger=12
    gosub lcdyaz
    next i
    pause 200
    return    
   END

Nokia3310 Proteus Model Dosyaları Örnek Simülasyon;

nokia-3310-proteus-model-ve-ornek-pic-ccs-picbasic-uygulamasi

Şifre-Pass: 320volt.com

Yayım tarihi: 2008/06/19 Etiketler: , , , , , , ,



4 Yorum “3310 LCD Proteus Model Örnek Ccs PICbasic Uygulaması

  1. ogulogul

    Paylaşımınız için içtenlikle teşekkür ederim.
    Ancak “3310_lcd2basic.zip”içeriğini Proteus 7.1 SP2 de çalıştıramadım.
    (Model ve library proteus dosyalarını proteus içine attığım halde)
    Selamlar.

    CEVAPLA
  2. atakanatakan

    Merhaba,
    Bu 3310 kütüphanesinde bir sorunla karşılaştım. Düşey moda geçiremiyorum. 00100010 komutu gönderip sonra yazmayı deniyorum, fakat yan yana yazmaya devam ediyor. Bu konuda bilgisi olanların yardımını bekliyorum.
    Teşekkür ederim 🙂

    CEVAPLA
  3. davouddavoud

    hi , thanks a lot for lib.. , it works with proteus 7.5 sp3, copy files in model and library folder in labcenter electronics folder , regard

    CEVAPLA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir