1 den 2´e kadar. Toplam 2 Sayfa bulundu

Konu: Pic ile 7 Led`li Gösterge (Havaya Yazı Yazmak)

  1. #1
    Emektar Üye
    EXiR - ait Kullanıcı Resmi (Avatar)

    Arrow Pic ile 7 Led`li Gösterge (Havaya Yazı Yazmak)



    Devre şeması oldukça basittir. Burada önemli olan pic'i programlamadan önce motorun saniyedeki tur sayısı ve sütun genişliği hesaplanıp belirlenmelidir.
    İnsan beyni saniyede 15 kareye kadar olan resimleri algılayabildiği için bu sistemde motor saniyede 20 tur atacaktır.
    1 saniye = 20 tur atması isteniyorsa
    1 tur T = 1/f = 1/20 = 0,05 saniye = 50 milisaniye
    Sistemin sütun sayısını hesaplamak için
    Dairenin çevresi = 50cm ise
    Örneğin;
    sütun genişliği = 0,5cm
    50/0,5 = 100 sütun
    Sistemin satır sayısını hesaplamaya gerek yoktur, çünkü sistemde 7 LED kullanıldığı için satır sayısı da 7 dir.

    Yukarıdaki grafik oldukça kolaylık sağlayacaktır.
    Bir sütun için gecikme süresi (LED in 0,5cm yanık kalma süresi) için
    1 tur = 0,05 sn ise
    0,05/100 = 0,0005 sn = 500 milisaniyelik bir gecikme yapılmalıdır. Yazdığımız metnin bitiş noktası da belirlenmelidir. Böylelikle boşta kalan kısım hesaplanıp gecikme yapılması çok önemlidir. Aksi taktirde görüntü oluşmaz.
    Metin için kullanılan sütun sayısı;
    Örneğin; 25 sütun ise
    Boşta kalan kısım = 100 – 25=75 sütundur.
    Bu durumda boşta kalan kısım için gecikme
    Bir sütun için 500 mikro saniye ise; 75 x 0,0005 = 0,0375 = 37,5 milisaniye olmalıdır.
    Metin için toplam gecikme 25 x 0,0005 = 0,0125 = 12,5 milisaniye
    1 tur = metin süresi + botsa kalma süresi = 12,5 + 37,5 = 50 milisaniye

    Assembly dilinde çift döngü yapmak için;
    KOMUT SAYKIL
    MOVLW h'M' 1
    MOVWF 0X20 1
    D1 MOVLW h'N' 1XM
    MOVWF 0X21 1XM
    D2 DECFSZ 0X21,1 1XNXM
    GOTO D2 2XNXM
    DECFSZ 0X20,1 1XM
    GOTO D1 2XM
    RETURN 2

    KOMUT SAYKIL SAYISI = 3XNXM

    GECİKME SÜRESİ = KOMUTSAYKIL SÜRESİ X 4 / f
    12,5 milisaniye gecikme için
    4 MHz lik osilatör kullanıldığın da GS = KSS X 4/4 den GS = KSS olur
    12,5 milisaniye = 12500 mikro saniye
    KSS = 3xNxM olduğuna göre 12500 = 3xNxM NxM = 4166 N=255 ise M=16
    37,5 milisaniye gecikme için
    37500 = 3xNxM NxM = 12500 N=255 ise M=49
    Örneğin bir metin olarak ABC harflerini yazdıralım.
    Programı yazmak için grafiğe ihtiyacımız olacaktır.

    Grafiğin alt tarafı metne bağlı olarak binary olarak doldurulur. Metne denk gelen kutucular 1 diğerleri ise 0 olarak yazılır. Programı yazarken binary kodlara bakılarak PORTB yönlendirilir.
    Metin kısmı 15 sütun dan oluştuğu için gecikme süresi
    15 x 0,0005 = 7.5 milisaniye
    7500 = 3xNxM NxM = 2500 N=255 ise M=10 olur.
    Boşta kalan kısım 100 – 15 = 85 sütun dan oluştuğu için gecikme süresi
    85 x 0,0005 = 42.5 milisaniye
    42500 = 3xNxM NxM = 14166 N=255 ise M=55 olur.
    ;*********DEĞİŞKENLERİN TANIMLANMASI******************************
    LIST P=16F628A
    ;yazan: Remzi ŞAHİNOĞLU
    PORTB EQU 0X06
    PORTA EQU 0X05
    STATUSEQU 0X03
    TRISB EQU 0X86
    TRISA EQU 0X85
    CMCON EQU 0X1F
    ;*********GİRİS/CIKIS AYARLARININ OLUSTURULMASI*********************
    BSF STATUS,5 ;BANK1 E GEC
    CLRF TRISB ;PORTB CIKIS
    MOVLW b'01000011' ;RB0,RB1,RB7 GİRİŞ
    MOVWF TRISA ;PORTA GİRİS
    BCF STATUS,5 ;BANK0 A GEC
    MOVLW b'00000111' ;BÜTÜN KARSILASTIRICILAR KAPALI
    MOVWF CMCON ;TÜM PİNLER GİRİS/CIKIS
    CLRF PORTB ;BASLANGICTA TÜM LED LER SÖNÜK
    ;***************ANA PROGRAMIN OLUSTURULMASI**********************
    ;************* "A" HARFİ İÇİN ***************************************
    BASLA
    MOVLW b'01111111'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'00001001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'00001001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'01111111'
    MOVWF PORTB
    CALL BEKLE1

    CLRF PORTB
    CALL BEKLE1
    ;************* "B" HARFİ İÇİN*************************************
    MOVLW b'01111111'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'01001001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'01001001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'00110110'
    MOVWF PORTB
    CALL BEKLE1

    CLRF PORTB
    CALL BEKLE1


    ;************ "C" HARFİ İÇİN**************************************
    MOVLW b'00111110'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'01000001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'01000001'
    MOVWF PORTB
    CALL BEKLE1
    MOVLW b'00100010'
    MOVWF PORTB
    CALL BEKLE1
    CLRF PORTB
    CALL BEKLE1

    CLRF PORTB
    CALL BEKLE2
    GOTO BASLA
    ;***************1 MİLİSANİYE GECİKME YAP**************************
    ;***********LEDİN BİR PARCA YANIK KALMA SÜRESİ********************
    BEKLE1
    MOVLW d'255' ;YAKLASIK 1 MİLİSANİYE
    MOVWF 0X21 ;BEKLEME YAP
    D1 MOVLW d'10'
    MOVWF 0X20
    D2 DECFSZ 0X20,1
    GOTO D2
    DECFSZ 0X21,1
    GOTO D1
    RETURN
    ;*****************95 MİLİSANİYE GECİKME YAP***********************
    ;************PROGRAM BOSLUGUNDA Kİ LEDİN SÖNÜK KALMA SÜRESİ*******
    BEKLE2
    MOVLW d'255' ;YAKLASIK 74 MİLİSANİYE
    MOVWF 0X22 ;BEKLEME YAP
    D3 MOVLW d'55'
    MOVWF 0X23
    D4 DECFSZ 0X23,1
    GOTO D4
    DECFSZ 0X22,1
    GOTO D3
    RETURN

    END

    Remzi ŞAHİNOĞLU
    Kocaeli Üniversitesi Mekatronik Bölümü

  2. #2
    kaynataya selam

    Standart

    Tesekkürler...

Benzer Konular

  1. MSN Ters Yazı ile yazmak istermisiniz!!!!
    By ABYSS in forum Messenger ve Diğer Mesajlaşma Programları
    Cevaplar: 49
    Bölüm Listesi: 06-21-2009, 05:42 PM
  2. konuşarak yazı yazmak
    By gandalf1453 in forum Güncel
    Cevaplar: 1
    Bölüm Listesi: 07-20-2007, 12:52 PM
  3. güneşe yazı yazmak
    By blackcat in forum Tanışalım-Kaynaşalım/Geyik Bölümü
    Cevaplar: 0
    Bölüm Listesi: 07-20-2007, 08:59 AM

Beğenilen Sayfayı İşaretleyin

Beğenilen Sayfayı İşaretleyin

Yetkileriniz

  • You may not post new threads
  • You may not post replies
  • Eklenti Ekleyemezsiniz
  • You may not edit your posts
  •  
[Gizlilik Politikası]-[UslanmaM Kuralları]-[UslanmaM İletişim/Contact]