Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

kayan yazı

Başlatan macaronlu, 22 Nisan 2011, 18:21:45

macaronlu

include 16F628 -- kullanılacak chip
-- cihaz sigorta ayarları
pragma target OSC HS -- kristal türü
pragma target clock 4_000_000 -- kristal hızı
pragma target WDT disabled -- wdt kapalı
pragma target LVP disabled -- lvp kapalı

enable_digital_io() -- dijital giriş çıkışlar etkin

--include shift_in_out -- 74hc595 kullanmak için gerekli kütüphane
include delay -- bekleme kütüphanesi
--include dotmatrix_5x7 -- 5x7 karakter kütüphanesi

-- pin tanımlamaları
var volatile bit satir7 is pin_b0
var volatile bit satir6 is pin_b2
var volatile bit satir5 is pin_b3
var volatile bit satir4 is pin_b4
var volatile bit satir3 is pin_b5
var volatile bit satir2 is pin_b6
var volatile bit satir1 is pin_b7
-- 74HC595 için pin tanımlamaları
var volatile bit aktar is pin_a0
var volatile bit clock is pin_a1
var volatile bit data is pin_a2
-- pin giriş-çıkış ayarları
portb_direction = all_output
porta_direction = all_outpu
bu kütüphane dosyası ile yazılabilirmi elinde jal dosyası olan varsa lütfen yardım .yardım için şimdiden teşekür ederim

M_B

#1
 Merhaba;
Serkan Ayyıldızın Jal ile programlama kıtabındaki uygulamalarında var.
Serkan Ayyıldızın Jalwin bulursan onun ıcınde ıstedıgınız klasor var.
Yalnız onu jalv2 ye sızın uyarlamanız lazım.


http://groups.yahoo.com/group/jallist/files/Serkan%20AYYILDIZ/JalWin.rar

Edit: link eklendi.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

macaronlu

böyle bir puroje yapan yokmu acil yardım .
jal ustaları nerede .bir türlü işin içinden çıkamadım
yardım için teşekür .

macaronlu

-- ------------------------------------------------------
--
include 16f628                    -- target PICmicro
--
-- This program assumes a 20 MHz resonator or crystal
-- is connected to pins OSC1 and OSC2.
pragma target clock 20_000_000     -- oscillator frequency
-- configuration memory settings (fuses)
pragma target OSC  HS              -- HS crystal or resonator
pragma target WDT  disabled        -- no watchdog
pragma target LVP  disabled        -- no Low Voltage Programming
pragma target MCLR external        -- reset externally
--
-- 74hc595 input expander
-- how to use:
-- The DATA pin should be set as input, all other as outputs

var volatile bit DATA   is pin_a3           -- Any other  I/O pin could
--_be used
var volatile bit CLOCK  is pin_a2
var volatile bit LATCH  is pin_a1
var volatile bit LOAD   is pin_a0

pin_a0_direction = output
pin_a1_direction = output
pin_a2_direction = output
pin_a3_direction = input

var byte  vport_b = 0

procedure hc595_receive is


var byte  Var1, Var2     -- port status and counter

   Var2 = 8              -- initializing counter
   Latch = high          -- receive pin states into input latch
asm   nop
   Latch = low
   Load  = low          -- transfer the contents of input latch to SHIFT
-- reg
asm   nop
   Load = high


asm local  Loop1          -- lokal label
asm Loop1:

assembler

      rlf  Var1,f         ;rotate "Var1" one place to the left

      btfss  Data        ;is data line = "1" ?
      bcf    Var1,0      ;if not, clear bit 0 in Var1
      btfsc  Data        ;is data line = "0" ?
      bsf    Var1,0      ;if not, set bit 0

      bsf    Clock       ;generate one clock
      nop
      bcf    Clock

      decfsz  Var2,f     ;has 8 bits been received?
end assembler

asm   goto    Loop1       ;if not, repeat


vport_b = Var1

end procedure



biri yardım etsin lütfen

macaronlu

yardım edicek kimse yok galiba

Rekofen

Kardeşim  daha önce denemedim ama sana fikir vermesi açısından şöyle bir yönten deneybilirsin
Satırlarını bir prosedür içine al mesela :

önce satırları değişkenlere ata diyelim 3 satır kaydırma işlemi olsun
karakterlerinine atayalım önce :

var byte  s1 = "k" ,s2 = "a" , s3 = "y" -- gibi


procedure kay is s1 = s2, s2 = s3 end procedure
  burada kaydırma işlemini yapıyoruz

kaç kez kayacak ise yanı hareketi tamamlama işlemi içinde

forever loop 

for 5 loop  --   5 kere  tekrar edecek

clear (display adı, tanımlaması) -- temizleme

print = s1 --(display kütüpanesindeki yazdırma komutu gelir buraya)
print = s2
print = s3

end loop
kay -- tekrar başa dönüyor işlem
end loop


jal'in ilk versiyounda ki örneklere bakarsan uyarlaya bilirsin aslında v2 ile pek bir fak yok ama kılçık jal işte kolay ama uğraştırıyor.Yazdığım sallama örnek ilk versiondan aklımda kalanlar.Biraz uraşırsan rahatlıkla uyarlarsın.
Jal iyidir :)

macaronlu

sag ol ama ne yaptıysam yazdıramadım teşekür ederim

macaronlu

#7
arkadaşlar bunu yeni yazdım jal hata vermiyor fakat hex te üretmiyor fikri olan vara incaeleyip yardımcı olursa minetar kalırım .


include 16f628                    -- target PICmicro
--
-- This program assumes a 20 MHz resonator or crystal
-- is connected to pins OSC1 and OSC2.
pragma target clock 20_000_000     -- oscillator frequency
-- configuration memory settings (fuses)
pragma target OSC  HS              -- HS crystal or resonator
pragma target WDT  disabled        -- no watchdog
pragma target LVP  disabled        -- no Low Voltage Programming
pragma target MCLR external        -- reset externally
--
enable_digital_io()                -- disable analog I/O (if any)
--
-- You may want to change the selected pin:
var volatile bit satir8 is pin_b0
var volatile bit satir7 is pin_b1
var volatile bit satir6 is pin_b2
var volatile bit satir5 is pin_b3
var volatile bit satir4 is pin_b4
var volatile bit satir3 is pin_b5
var volatile bit satir2 is pin_b6
var volatile bit satir1 is pin_b7

var byte bekle = 1 -- tarama hızımız
var byte kelime_uzunluk,tara_sayi,k

const tarama[8] =
{0b_11111110,
0b_11111101,
0b_11111011,
0b_11110111,
0b_11101111,
0b_11011111,
0b_10111111,
0b_01111111}

const byte kelime[] =  "B" "Ü" "L" "E" "N" "T"   "Y" "A" "Z" "A" "R"

procedure temizle is
-forever loop

for 5 lop
end procedure
"cıkış_1 byte (low,high,on,0A4000000 )"

-end loop
aktar = high aktar = low
end procedure
temizle

var byte satirlar[count(kelime)]


var byte fazlalik,uzunluk
fazlalik = (20 - count(kelime))

forever loop

for 8 using tara_sayi loop

for fazlalik loop
Disari_it(low,high,0b00000000)
end loop

FOR COUNT(kelime) USING kelime_uzunluk LOOP -- taranacak kelime uzunluğu kadar döngü
--Disari_it(low,high,karakter_al(kelime,COUNT(kelime)-kelime_uzunluk-1,tara_sayi))
END LOOP

portb = tarama[tara_sayi]
aktar =low  aktar =  high
delay_1ms(2)

end loop

end loop
---------------------------------------------------------------------------------


dotmarix_8x8.jal

---------------------------------------------------------------------------------



const byte karakterler[462] =
--1st 2st 3st 4st 5st 6st 7st (satirlar) satir başlangıç no
{0x0E,0x11,0x11,0x11,0x1F,0x11,0x11, -- A 0
0x1E,0x11,0x11,0x1E,0x11,0x11,0x1E, -- B 7
0x0F,0x10,0x10,0x10,0x10,0x10,0x0F, -- C 14
0x1F,0x10,0x10,0x10,0x10,0x1F,0x04, -- Ç 21
0x1E,0x11,0x11,0x11,0x11,0x11,0x1E, -- D 28
0x1F,0x10,0x10,0x1E,0x10,0x10,0x1F, -- E 35
0x1F,0x10,0x10,0x1E,0x10,0x10,0x10, -- F 42
0x1F,0x10,0x10,0x17,0x11,0x11,0x1F, -- G 49
0x0E,0x1F,0x10,0x10,0x17,0x11,0x1F, -- Ğ 56
0x11,0x11,0x11,0x1F,0x11,0x11,0x11, -- H 63
0x0E,0x04,0x04,0x04,0x04,0x04,0x0E, -- I 70
0x04,0x00,0x0E,0x04,0x04,0x04,0x0E, -- İ 77
0x01,0x01,0x01,0x01,0x11,0x11,0x0E, -- J 84
0x11,0x12,0x14,0x18,0x14,0x12,0x11, -- K 91
0x10,0x10,0x10,0x10,0x10,0x10,0x1F, -- L 98
0x11,0x1B,0x15,0x11,0x11,0x11,0x11, -- M 105
0x11,0x11,0x19,0x15,0x13,0x11,0x11, -- N 112
0x1F,0x11,0x11,0x11,0x11,0x11,0x1F, -- O 119
0x0A,0x00,0x0E,0x11,0x11,0x11,0x0E, -- Ö 126
0x1E,0x11,0x11,0x1E,0x10,0x10,0x10, -- P 133
0x1E,0x11,0x11,0x1E,0x14,0x12,0x11, -- R 140
0x1F,0x10,0x10,0x1F,0x01,0x01,0x1F, -- S 147
0x1F,0x10,0x10,0x1F,0x01,0x1F,0x04, -- Ş 154
0x1F,0x04,0x04,0x04,0x04,0x04,0x04, -- T 161
0x11,0x11,0x11,0x11,0x11,0x11,0x1F, -- U 168
0x0A,0x00,0x11,0x11,0x11,0x11,0x1F, -- Ü 175
0x11,0x11,0x11,0x11,0x11,0x0A,0x04, -- V 182
0x11,0x11,0x11,0x0A,0x04,0x04,0x04, -- Y 189
0x1F,0x01,0x02,0x04,0x08,0x10,0x1F, -- Z 196
0x11,0x11,0x11,0x11,0x15,0x1B,0x11, -- W 203
0x11,0x11,0x0A,0x04,0x0A,0x11,0x11, -- X 210
0x0E,0x11,0x11,0x11,0x15,0x12,0x0D} -- Q 32 217

const byte karakterler1[462] =

{0x04,0x04,0x0C,0x04,0x04,0x04,0x0E, -- 1 0
0x0E,0x11,0x02,0x04,0x08,0x10,0x1F, -- 2 7
0x0E,0x11,0x01,0x06,0x01,0x11,0x0E, -- 3 14
0x11,0x11,0x11,0x1F,0x01,0x01,0x01, -- 4 21
0x1F,0x10,0x10,0x1E,0x01,0x01,0x1E, -- 5 28
0x1F,0x10,0x10,0x1F,0x11,0x11,0x1F, -- 6 35
0x1F,0x01,0x02,0x04,0x04,0x04,0x04, -- 7 42
0x0E,0x11,0x11,0x0E,0x11,0x11,0x0E, -- 8 49
0x0E,0x11,0x11,0x0F,0x01,0x01,0x0E, -- 9 56
0x0E,0x11,0x13,0x15,0x19,0x11,0x0E, -- 0 63

0x00,0x04,0x04,0x1F,0x04,0x04,0x00, -- + 70
0x00,0x00,0x00,0x1F,0x00,0x00,0x00, -- - 77
0x00,0x08,0x04,0x02,0x04,0x08,0x00, -- > 84
0x00,0x02,0x04,0x08,0x04,0x02,0x00, -- < 91
0x04,0x04,0x04,0x04,0x04,0x00,0x04, -- ! 98
0x00,0x00,0x1F,0x00,0x1F,0x00,0x00, -- = 105
0x00,0x00,0x00,0x00,0x00,0x00,0x00, -- bosluk 112
0x04,0x04,0x04,0x00,0x00,0x00,0x00, -- ' 50 119
0x0A,0x1F,0x0A,0x0A,0x0A,0x1F,0x0A, -- # 126
0x10,0x08,0x08,0x08,0x08,0x08,0x10, -- ) 133
0x01,0x02,0x02,0x02,0x02,0x02,0x01, -- ( 140
0x18,0x19,0x02,0x04,0x08,0x13,0x03, -- % 147
0x08,0x04,0x04,0x02,0x04,0x04,0x08, -- } 154
0x02,0x04,0x04,0x08,0x04,0x04,0x02, -- { 161
0x00,0x01,0x02,0x04,0x08,0x10,0x00, -- / 168
0x04,0x15,0x0E,0x1F,0x0E,0x15,0x04, -- * 175
0x00,0x00,0x00,0x00,0x00,0x00,0x04, -- . 182
0x00,0x00,0x00,0x00,0x04,0x04,0x08, -- , 189
0x00,0x00,0x04,0x00,0x04,0x04,0x08, -- ; 196
0x00,0x00,0x04,0x00,0x00,0x04,0x00, -- : 203
0x0E,0x02,0x02,0x02,0x02,0x02,0x0E, -- ] 210
0x0E,0x08,0x08,0x08,0x08,0x08,0x0E, -- [ 217
0x0E,0x11,0x12,0x04,0x04,0x00,0x04, -- ? 224
0x04,0x1F,0x14,0x1F,0x05,0x1F,0x04} -- $ 231



function karakter_al (byte in kelime[], byte in dize, byte in istenilen_satir) return byte is

case kelime[dize] of
"A" : return karakterler[0+istenilen_satır]
"B" : return karakterler[7+istenilen_satir]
"C" : return karakterler[14+istenilen_satir]
"Ç" : return karakterler[21+istenilen_satir]
"D" : return karakterler[28+istenilen_satir]
"E" : return karakterler[35+istenilen_satir]
"F" : return karakterler[42+istenilen_satir]
"G" : return karakterler[49+istenilen_satir]
"Ğ" : return karakterler[56+istenilen_satir]
"H" : return karakterler[63+istenilen_satir]
"I" : return karakterler[70+istenilen_satir]
"İ" : return karakterler[77+istenilen_satir]
"J" : return karakterler[84+istenilen_satir]
"K" : return karakterler[91+istenilen_satir]
"L" : return karakterler[98+istenilen_satir]
"M" : return karakterler[105+istenilen_satir]
"N" : return karakterler[112+istenilen_satir]
"O" : return karakterler[119+istenilen_satir]
"Ö" : return karakterler[126+istenilen_satir]
"P" : return karakterler[133+istenilen_satir]
"R" : return karakterler[140+istenilen_satir]
"S" : return karakterler[147+istenilen_satir]
"Ş" : return karakterler[154+istenilen_satir]
"T" : return karakterler[161+istenilen_satir]
"U" : return karakterler[168+istenilen_satir]
"Ü" : return karakterler[175+istenilen_satir]
"V" : return karakterler[182+istenilen_satir]
"Y" : return karakterler[189+istenilen_satir]
"Z" : return karakterler[196+istenilen_satir]
"W" : return karakterler[203+istenilen_satir]
"X" : return karakterler[210+istenilen_satir]
"Q" : return karakterler[217+istenilen_satir]

"1" : return karakterler1[0+istenilen_satir]
"2" : return karakterler1[7+istenilen_satir]
"3" : return karakterler1[14+istenilen_satir]
"4" : return karakterler1[21+istenilen_satir]
"5" : return karakterler1[28+istenilen_satir]
"6" : return karakterler1[35+istenilen_satir]
"7" : return karakterler1[42+istenilen_satir]
"8" : return karakterler1[49+istenilen_satir]
"9" : return karakterler1[56+istenilen_satir]
"0" : return karakterler1[63+istenilen_b0]

"+" : return karakterler1[70+istenilen_satir]
"-" : return karakterler1[77+istenilen_satir]
"<" : return karakterler1[84+istenilen_satir]
">" : return karakterler1[91+istenilen_satir]
"!" : return karakterler1[98+istenilen_satir]
"=" : return karakterler1[105+istenilen_satir]
" " : return karakterler1[112+istenilen_satir]
"'" : return karakterler1[119+istenilen_satir]
"#" : return karakterler1[126+istenilen_satir]
")" : return karakterler1[133+istenilen_satir]
"(" : return karakterler1[140+istenilen_satir]
"%" : return karakterler1[147+istenilen_satir]
"}" : return karakterler1[154+istenilen_satir]
"{" : return karakterler1[161+istenilen_satir]
"/" : return karakterler1[168+istenilen_satir]
"*" : return karakterler1[175+istenilen_satir]
"." : return karakterler1[182+istenilen_satir]
"," : return karakterler1[189+istenilen_satir]
";" : return karakterler1[196+istenilen_satir]
":" : return karakterler1[203+istenilen_satir]
"]" : return karakterler1[210+istenilen_satir]
"[" : return karakterler1[217+istenilen_satir]
"?" : return karakterler1[224+istenilen_satir]
"$" : return karakterler1[231+istenilen_satir]

end case
end function

Rekofen

#8
Alıntı yapılan: macaronlu - 01 Mayıs 2011, 22:15:18
sag ol ama ne yaptıysam yazdıramadım teşekür ederim



Kardeşim jalv2 ye göre dosyaları düzenledim test ettim.Jalv2 kütüphane dosyalarını ekledim dene bakalım bende çalışıyor bir kaç nokta sıyırıyor bazen ama anca bu kadar hiç asembler kulanmayan biri olarak bu kadar oluyor  :o inşallah işin görülür beni bilgilendirirsen sevinirim.Kolay gele.

https://rapidshare.com/files/460364916/jalv2-5X7_MAT-Rekofen-picpuroje.com.rar

şifresi = picproje.com yada picpuroje.com karıştırmışım  :P

Kardeşim dosyadaki lib dosyasının içindeki dosyaları jalv2 nin kurulduğu klasördeki lib klasörüne kopyala dilediğin gibi uygula.
Pic16f877/20p  ile yaptım simülatörde çalışıyor.Sende dene bakalım.Sen pic değiştirmek istersen haber ver zaman bulabilirsem lib'i ona göre uyarlamayı deneriz.Ancak söz veremem.Kolay gelsin.
Jal iyidir :)

macaronlu

arkadaş hazır klasörleri göndermişsin ben 74hc595 kulanmak istiyorum fakat tanıtmayı başaramadım gende bir dosya daha var incele istersen sen hangi dosyayı derledin hoşçakal :(

Rekofen

Hazır dosya değil dostum onlar jal'ın ilk sürümü içindi doğal olarak çalışmıyordu, jalv2 ye göre sende düzenleyebilirsin yapman gerekenler basit.Port adlarını değiştir hangi kontorl ünitesini kullanacaksan onun kütüphanesini ekle geçikmeleri düzenle bu kadar istediğin gibi kullan.Kolay gelsin.
Jal iyidir :)

macaronlu

-- ===================================================
-- Title: JalV2 device include file for PIC 16F628A
--
-- Author: Rob Hamerling, Copyright (c) 2008..2009, all rights reserved.
--
-- Adapted-by:
--
-- Compiler: 2.4m
--
-- This file is part of jallib  (http://jallib.googlecode.com)
-- Released under the ZLIB license (http://www.opensource.org/licenses/zlib-license.html)
--
-- Description:
--    Device include file for pic16f628a, containing:
--    - Declaration of ports and pins of the chip.
--    - Procedures for shadowing of ports and pins
--      to circumvent the read-modify-write problem.
--    - Symbolic definitions for configuration bits (fuses)
--    - Some device dependent procedures for common
--      operations, like:
--      . enable_digital_io()
--
-- Sources:
--  - "x:/mplab843/mplab ide/device/pic16f628a.dev"
--  - "x:/mplab843/mpasm suite/lkr/16f628a_g.lkr"
--
-- Notes:
--  - Created with Dev2Jal Rexx script version 0.0.88
--  - File creation date/time: 27 Dec 2009 14:43
--
-- ===================================================
--
const word DEVICE_ID   = 0x1060
const byte PICTYPE[]   = "16F628A"
const byte DATASHEET[] = "40044"
const byte PGMSPEC[]   = "41196"
--
-- Vdd Range: 2.000-6.000 Nominal: 5.000
-- Vpp Range: 12.750-13.250 Default: 13.000
--
-- ---------------------------------------------------
--
include chipdef_jallib                  -- common constants
--
pragma  target  cpu   PIC_14            -- (banks = 4)
pragma  target  chip  16f628a
pragma  target  bank  0x0080
pragma  target  page  0x0800
pragma  stack   8
pragma  code    2048                    -- (words)
pragma  eeprom  0x2100,128
pragma  ID      0x2000,4
pragma  data    0x20-0x6F,0xA0-0xEF,0x120-0x14F
pragma  shared  0x70-0x7E,0x7F-0x7F
--
var volatile byte _pic_accum shared at { 0x7E,0xFE,0x17E,0x1FE }   -- (compiler)
var volatile byte _pic_isr_w shared at { 0x7F,0xFF,0x17F,0x1FF }   -- (compiler)
--
const word  _FUSES_CT             = 1
const word  _FUSE_BASE            = 0x2007
const word  _FUSES                = 0b_0011_1111_1111_1111

- ------------------------------------------------
var volatile byte   INDF                      at { 0x0,0x80,0x100,0x180 }
var volatile byte   _ind                      at { 0x0,0x80,0x100,0x180 }      -- (compiler)
-- ------------------------------------------------
var volatile byte   TMR0                      at { 0x1,0x101 }
-- ------------------------------------------------
var volatile byte   PCL                       at { 0x2,0x82,0x102,0x182 }
var volatile byte   _pcl                      at { 0x2,0x82,0x102,0x182 }      -- (compiler)
-- ------------------------------------------------

-- definition for characters 32 ... 79
-- --------------------------------------------------------------------
const byte _character_5x7_table_0[] = {
  0x00, 0x00, 0x00, 0x00, 0x00,    -- 0x20 =
  0x00, 0x00, 0x6F, 0x6F, 0x00,    -- 0x21 = !
  0x02, 0x01, 0x02, 0x01, 0x00,    -- 0x22 = "
  0x14, 0x3E, 0x14, 0x3E, 0x14,    -- 0x23 = #
  0x26, 0x49, 0x7F, 0x49, 0x32,    -- 0x24 = $
  0x23, 0x13, 0x08, 0x64, 0x62,    -- 0x25 = %
  0x24, 0x5A, 0x59, 0x25, 0x52,    -- 0x26 = &
  0x02, 0x03, 0x01, 0x00, 0x00,    -- 0x27 = '
  0x00, 0x3E, 0x41, 0x00, 0x00,    -- 0x28 = (
  0x00, 0x00, 0x41, 0x3E, 0x00,    -- 0x29 = )
  0x2A, 0x1C, 0x3E, 0x1C, 0x2A,    -- 0x2A = *
  0x00, 0x08, 0x1C, 0x08, 0x00,    -- 0x2B = +
  0x00, 0x00, 0x30, 0x70, 0x00,    -- 0x2C = ,
  0x00, 0x08, 0x08, 0x08, 0x00,    -- 0x2D = -
  0x00, 0x00, 0x60, 0x60, 0x00,    -- 0x2E = .
  0x20, 0x10, 0x08, 0x04, 0x02,    -- 0x2F = /
  0x3E, 0x41, 0x41, 0x41, 0x3E,    -- 0x30 = 0
  0x00, 0x00, 0x42, 0x7F, 0x40,    -- 0x31 = 1
  0x42, 0x61, 0x51, 0x49, 0x46,    -- 0x32 = 2
  0x22, 0x41, 0x49, 0x49, 0x36,    -- 0x33 = 3
  0x07, 0x08, 0x08, 0x08, 0x7F,    -- 0x34 = 4
  0x2F, 0x49, 0x49, 0x49, 0x31,    -- 0x35 = 5
  0x3E, 0x49, 0x49, 0x49, 0x32,    -- 0x36 = 6
  0x01, 0x01, 0x01, 0x79, 0x07,    -- 0x37 = 7
  0x36, 0x49, 0x49, 0x49, 0x36,    -- 0x38 = 8
  0x26, 0x49, 0x49, 0x49, 0x3E,    -- 0x39 = 9
  0x00, 0x00, 0x36, 0x36, 0x00,    -- 0x3A = :
  0x00, 0x00, 0x36, 0x76, 0x00,    -- 0x3B = ;
  0x08, 0x14, 0x22, 0x41, 0x00,    -- 0x3C = <
  0x00, 0x14, 0x14, 0x14, 0x00,    -- 0x3D = =
  0x00, 0x41, 0x22, 0x14, 0x08,    -- 0x3E = >
  0x02, 0x01, 0x61, 0x69, 0x06,    -- 0x3F = ?
  0x3E, 0x41, 0x4D, 0x4B, 0x2E,    -- 0x40 = @
  0x7E, 0x09, 0x09, 0x09, 0x7E,    -- 0x41 = A
  0x7F, 0x49, 0x49, 0x49, 0x36,    -- 0x42 = B
  0x3E, 0x41, 0x41, 0x41, 0x22,    -- 0x43 = C
  0x7F, 0x41, 0x41, 0x41, 0x3E,    -- 0x44 = D
  0x7F, 0x49, 0x49, 0x49, 0x41,    -- 0x45 = E
  0x7F, 0x09, 0x09, 0x09, 0x01,    -- 0x46 = F
  0x3E, 0x41, 0x41, 0x51, 0x32,    -- 0x47 = G
  0x7F, 0x08, 0x08, 0x08, 0x7F,    -- 0x48 = H
  0x00, 0x41, 0x7F, 0x41, 0x00,    -- 0x49 = I
  0x20, 0x40, 0x40, 0x41, 0x3F,    -- 0x4A = J
  0x7F, 0x08, 0x14, 0x22, 0x41,    -- 0x4B = K
  0x7F, 0x40, 0x40, 0x40, 0x40,    -- 0x4C = L
  0x7F, 0x02, 0x0C, 0x02, 0x7F,    -- 0x4D = M
  0x7F, 0x06, 0x18, 0x30, 0x7F,    -- 0x4E = N
  0x3E, 0x41, 0x41, 0x41, 0x3E,    -- 0x4F = O
0}
-- --------------------------------------------------------------------


-- --------------------------------------------------------------------
-- definition for characters 80 ... 127
-- --------------------------------------------------------------------
const byte _character_5x7_table_1[] = {
  0x7E, 0x09, 0x09, 0x09, 0x06,    -- 0x50 = P
  0x3E, 0x41, 0x51, 0x61, 0x7E,    -- 0x51 = Q
  0x7F, 0x09, 0x19, 0x29, 0x46,    -- 0x52 = R
  0x26, 0x49, 0x49, 0x49, 0x32,    -- 0x53 = S
  0x01, 0x01, 0x7F, 0x01, 0x01,    -- 0x54 = T
  0x3F, 0x40, 0x40, 0x40, 0x3F,    -- 0x55 = U
  0x1F, 0x20, 0x40, 0x20, 0x1F,    -- 0x56 = V
  0x3F, 0x40, 0x30, 0x40, 0x3F,    -- 0x57 = W
  0x41, 0x36, 0x1C, 0x36, 0x41,    -- 0x58 = X
  0x01, 0x42, 0x7C, 0x42, 0x01,    -- 0x59 = Y
  0x61, 0x51, 0x49, 0x45, 0x43,    -- 0x5A = Z
  0x7F, 0x41, 0x41, 0x00, 0x00,    -- 0x5B = [
  0x02, 0x04, 0x08, 0x10, 0x20,    -- 0x5C = \
  0x00, 0x00, 0x41, 0x41, 0x7F,    -- 0x5D = ]
  0x00, 0x02, 0x01, 0x02, 0x00,    -- 0x5E = ^
  0x40, 0x40, 0x40, 0x40, 0x40,    -- 0x5F = _
  0x00, 0x00, 0x00, 0x00, 0x00,    -- 0x60 = `
  0x20, 0x54, 0x54, 0x54, 0x78,    -- 0x61 = a
  0x7F, 0x44, 0x44, 0x44, 0x38,    -- 0x62 = b
  0x38, 0x44, 0x44, 0x44, 0x28,    -- 0x63 = c
  0x38, 0x44, 0x44, 0x44, 0x7F,    -- 0x64 = d
  0x38, 0x54, 0x54, 0x54, 0x48,    -- 0x65 = e
  0x78, 0x14, 0x14, 0x04, 0x00,    -- 0x66 = f
  0x08, 0x14, 0x54, 0x54, 0x38,    -- 0x67 = g
  0x7F, 0x08, 0x08, 0x08, 0x70,    -- 0x68 = h
  0x00, 0x40, 0x7A, 0x40, 0x00,    -- 0x69 = i
  0x00, 0x40, 0x40, 0x3A, 0x00,    -- 0x6A = j
  0x7F, 0x10, 0x28, 0x44, 0x00,    -- 0x6B = k
  0x00, 0x44, 0x7E, 0x40, 0x00,    -- 0x6C = l
  0x78, 0x04, 0x78, 0x04, 0x78,    -- 0x6D = m
  0x7C, 0x04, 0x04, 0x04, 0x78,    -- 0x6E = n
  0x38, 0x44, 0x44, 0x44, 0x38,    -- 0x6F = o
  0x7C, 0x14, 0x14, 0x14, 0x08,    -- 0x70 = p
  0x08, 0x14, 0x14, 0x14, 0x7C,    -- 0x71 = q
  0x78, 0x04, 0x04, 0x04, 0x08,    -- 0x72 = r
  0x48, 0x54, 0x54, 0x54, 0x24,    -- 0x73 = s
  0x3F, 0x44, 0x44, 0x40, 0x20,    -- 0x74 = t
  0x3C, 0x40, 0x40, 0x20, 0x7C,    -- 0x75 = u
  0x1C, 0x20, 0x40, 0x20, 0x1C,    -- 0x76 = v
  0x3C, 0x40, 0x38, 0x40, 0x3C,    -- 0x77 = w
  0x44, 0x28, 0x10, 0x28, 0x44,    -- 0x78 = x
  0x0C, 0x10, 0x50, 0x50, 0x3C,    -- 0x79 = y
  0x44, 0x64, 0x54, 0x4C, 0x44,    -- 0x7A = z
  0x08, 0x36, 0x41, 0x41, 0x00,    -- 0x7B = {
  0x00, 0x00, 0x7F, 0x00, 0x00,    -- 0x7C = |
  0x00, 0x41, 0x41, 0x36, 0x08,    -- 0x7D = }
  0x02, 0x01, 0x02, 0x01, 0x00,    -- 0x7E = ~
  0x00, 0x00, 0x00, 0x00, 0x00,    -- 0x7F = 
0}
-- --------------------------------------------------------------------


-- --------------------------------------------------------------------
-- global array that will contain the pixel value of selected character
-- --------------------------------------------------------------------
var volatile byte character_5x7 [5]


-- --------------------------------------------------------------------

-- --------------------------------------------------------------------
-- Fills the global array CHARACTER_5x7 with
-- the pixel values of character ASCII.
-- Only the ASCII values 32 .. 127 are avalaible.
-- If the ASCII value is within the valid range,
-- TRUE is returned.
-- --------------------------------------------------------------------
function get_character_5x7(byte in Ascii) return bit is
var byte i
var byte ii
  if Ascii>=32 then
    if Ascii<80 then
      ii = 5 * (Ascii - 32)
      for 5 using i loop
        character_5x7 = _character_5x7_table_0[ii+i]
      end loop
    elsif Ascii<128 then
      ii = 5 * (Ascii - 80)
      for 5 using i loop
        character_5x7 = _character_5x7_table_0[ii+i]
      end loop
    else
      return false
    end if
  else
    return false
  end if
  return true
end function
-----------------------------------------------------------------------


-- --------------------------------------------------------------------
-- Library ID
-- --------------------------------------------------------------------
const word Character_5x7_ID = 20
const word Character_5x7_Version = 1
--if identity
--if Ask_Library_IDentity then
-- my_identity (Character_5x7_ID, Character_5x7_Version)
--end if
-- --------------------------------------------------------------------

bu gönderdigimi konturol edermisin şimdiden teşekürler :(


ByTEK

Ben jalv2 ile 16F877 kullanarak 100x7 kayan yazı programı yazdım.. ama henüz eksikleri çok var paylaşılacak vaziyette değil.. saat,sıcaklık,bilgisayar kontrolü eklediğimde paylaşacağım.. biraz uğraşırsanız ve mantığını biliyorsanız jalv2 güzel bir dildir.. :) Kaynak olmayınca kendiniz yapıyorsunuz ve böylece kolayca öğrenmiş oluyorsunuz.. :) süper değil mi ? :)

macaronlu

const  zamani = 400_000_000 / target_clock         -- delay kütüphanesini
const bir_ms_bekle = 1000 - ((14 * zamani) / 100) -- dahil etmeye gerek kalmasın
                                                  -- diye delay kütüphanesinden
procedure bekle_1ms(word in n) is                 -- alınmıştır
   for n loop                                     -- gerekli bekleme
      if (bir_ms_bekle <= 1000) then              -- sürelerini bu procedure
         _usec_delay(bir_ms_bekle)                -- sayesinde yapılacaktır.
      else
         _usec_delay(1)
      end if
   end loop
end procedure

PROCEDURE disari_itis_Beklemesi IS
bekle_1ms(500)
END PROCEDURE

PROCEDURE iceri_itis_Beklemesi IS
bekle_1ms(500)

VAR VOLATILE BIT disari_clock     IS Pin_a0            -- clock pini
VAR VOLATILE BIT disari_clock_yon IS Pin_a0_direction  -- clock pininin yönü
VAR VOLATILE BIT disari_veri      IS Pin_a2            -- Data pini
VAR VOLATILE BIT disari_veri_yon  IS Pin_a2_direction  -- data pini yönü
VAR VOLATILE BIT aktar_pin        IS Pin_a1            -- Aktar pini




PROCEDURE Disari_it( BIT IN Disari_Clock_Cinsi, BIT IN disari_Cikis_Modu, BYTE IN veri ) IS
   disari_veri = low
   disari_veri_yon = output

      if Disari_Clock_Cinsi then
      disari_clock = low
      disari_clock_yon = input
      if disari_Cikis_Modu then
         -- İlk LSB
         var bit veri_biti at veri : 0
         for 8 loop
            while ! disari_clock LOOP
            END LOOP
            disari_veri = veri_biti
            veri = veri >> 1
            while disari_clock LOOP
            end loop
         end loop
      else
         -- İlk MSB
         var bit veri_biti at veri : 7
         for 8 loop
            while ! disari_clock LOOP
            end loop
            disari_veri = veri_biti
            veri = veri << 1
            while disari_clock LOOP
            end loop
         end loop
      end if
   else
      disari_clock = low
      disari_clock_yon = output
      if disari_Cikis_Modu then
         --İlk LSB
         var bit veri_biti at veri : 0
         for 8 loop
            disari_veri = veri_biti
            veri = veri >> 1
            disari_clock = high
            disari_itis_Beklemesi
            disari_clock = low
            disari_itis_Beklemesi
         end loop
         disari_veri = low
      else
         --İlk MSB
         var bit veri_biti at veri : 7
         for 8 loop
            disari_veri = veri_biti
            veri = veri << 1
            disari_clock = high
            disari_itis_Beklemesi
            disari_clock = low
            disari_itis_Beklemesi
         end loop
         disari_veri = low
      end if
   end if
END PROCEDURE

procedure yukle is
aktar_pin = high
bekle_1ms(20)
aktar_pin = low
end procedure

procedure ver_1byte( BIT IN clock_cins, BIT IN Cikis_Mod,  BIT IN aktar_pini,
byte in ver1 ) is
Disari_it(clock_cins, Cikis_Mod, ver1)

if aktar_pini == on then
yukle
end if
end procedure

procedure ver_2byte( BIT IN clock_cins, BIT IN aktar_pini,
                     BIT IN Cikis_Mod, byte in ver1, byte in ver2 ) is
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_3byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2, byte in ver3 ) is
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_4byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2, byte in ver3, byte in ver4 ) is
Disari_it(clock_cins, Cikis_Mod, ver4)
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_5byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2,
                      byte in ver3, byte in ver4, byte in ver5 ) is
Disari_it(clock_cins, Cikis_Mod, ver5)
Disari_it(clock_cins, Cikis_Mod, ver4)
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_6byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2, byte in ver3,
                      byte in ver4, byte in ver5, byte in ver6 ) is
Disari_it(clock_cins, Cikis_Mod, ver6)
Disari_it(clock_cins, Cikis_Mod, ver5)
Disari_it(clock_cins, Cikis_Mod, ver4)
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_7byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2, byte in ver3,
                      byte in ver4, byte in ver5, byte in ver6,
                      byte in ver7 ) is
Disari_it(clock_cins, Cikis_Mod, ver7)
Disari_it(clock_cins, Cikis_Mod, ver6)
Disari_it(clock_cins, Cikis_Mod, ver5)
Disari_it(clock_cins, Cikis_Mod, ver4)
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if
end procedure

procedure ver_8byte(  BIT IN clock_cins,BIT IN Cikis_Mod,BIT IN aktar_pini,
                      byte in ver1, byte in ver2, byte in ver3,
                      byte in ver4, byte in ver5, byte in ver6,
                      byte in ver7, byte in ver8 ) is
Disari_it(clock_cins, Cikis_Mod, ver8)
Disari_it(clock_cins, Cikis_Mod, ver7)
Disari_it(clock_cins, Cikis_Mod, ver6)
Disari_it(clock_cins, Cikis_Mod, ver5)
Disari_it(clock_cins, Cikis_Mod, ver4)
Disari_it(clock_cins, Cikis_Mod, ver3)
Disari_it(clock_cins, Cikis_Mod, ver2)
Disari_it(clock_cins, Cikis_Mod, ver1)
  if aktar_pini == on then
yukle
end if

end procedure
yazdıgım şu purogramı incele olabilirmi
catı olarak yardım edersen memnun olurum
şimdiden teşekür ederim :)

ByTEK

#14
Merhaba @macaronlu

        O verdiğin kodu acemi iken 32 ledli karaşimşek devresi için vermiştim.. kayan yazıda kullanamazsın...  jalv2 de bit dizisi oluşturacaksın sutun sayısı kadar.. sonra byte dizisini tek tek analiz edip bu bit dizisine yüklemen gerek.. biraz karışık bir işlem.. işin içine bilgisayarda girince daha karmaşık oluyor.. ben 10 günde ancak yazabildim.. birde sorun jal da bit dizisi yok.. :) 4 tane alt program yazıp byte dizilerinde adresleri kullanarak bit dizisi oluşturmalısın.. tek çözüm bu.. eğer zamanınız varsa bir süre sonra çalışır bir kayan yazı devresi ekleyeceğim.. Bu arada size tam olarak Kaça Kaç ve hangi PIC için gerekiyor ?