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ĞLUKocaeli Üniversitesi Mekatronik Bölümü

LinkBack URL
About LinkBacks


Alıntı ile Cevapla
Beğenilen Sayfayı İşaretleyin