arkadaşlar elim de bu şekil asm kodları var. yazı sağdan sola doğru kayıyor. ben bu kayma şeklini değiştirmek istiyorum. aşağıdan yukarı yukarıdan aşağı gibi kodları nasıl ve nereye yazmam gerekli. yardımlarınız için teşekkür ederim.. :P
proteus şeması için; http://rapidshare.com/files/14781271/16F84A.rar
LIST P=16F84A
INCLUDE "P16F84A.INC"
SAYAC EQU H'0C'
SAYAC1 EQU H'0D'
DEGER EQU H'0E'
SUTUN1 EQU H'11'
SUTUN2 EQU H'12'
SUTUN3 EQU H'13'
SUTUN4 EQU H'14'
SUTUN5 EQU H'15'
SUTUN6 EQU H'16'
SUTUN7 EQU H'17'
SUTUN8 EQU H'18'
SUTUN9 EQU H'19'
SUTUN10 EQU H'1A'
SUTUN11 EQU H'1B'
SUTUN12 EQU H'1C'
SUTUN13 EQU H'1D'
SUTUN14 EQU H'1E'
SUTUN15 EQU H'1F'
SUTUN16 EQU H'20'
SUTUN17 EQU H'21'
SUTUN18 EQU H'22'
SUTUN19 EQU H'23'
SUTUN20 EQU H'24'
SUTUN21 EQU H'25'
SUTUN22 EQU H'26'
SUTUN23 EQU H'27'
SUTUN24 EQU H'28'
SUTUN25 EQU H'29'
SUTUN26 EQU H'2A'
SUTUN27 EQU H'2B'
SUTUN28 EQU H'2C'
SUTUN29 EQU H'2D'
SUTUN30 EQU H'2E'
SUTUN31 EQU H'2F'
SUTUN32 EQU H'30'
SUTUN33 EQU H'31'
SUTUN34 EQU H'32'
START
ORG 0x00
BSF STATUS, 5
MOVLW H'00'
MOVWF PORTA
MOVWF PORTB
BCF STATUS, 5
GOTO Run1
Table1 ADDWF PCL, 1
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 5Fh
RETLW 00h
RETLW 7Fh
RETLW 01h
RETLW 01h
RETLW 01h
RETLW 00h
RETLW 7Fh
RETLW 08h
RETLW 1Ch
RETLW 22h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 48h
RETLW 4Ch
RETLW 4Ah
RETLW 31h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 08h
RETLW 1Ch
RETLW 22h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 08h
RETLW 04h
RETLW 7Fh
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 48h
RETLW 4Ch
RETLW 4Ah
RETLW 31h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
RETLW 00h
Run1
CLRF SUTUN1
CLRF SUTUN2
CLRF SUTUN3
CLRF SUTUN4
CLRF SUTUN5
CLRF SUTUN6
CLRF SUTUN7
CLRF SUTUN8
CLRF SUTUN9
CLRF SUTUN10
CLRF SUTUN11
CLRF SUTUN12
CLRF SUTUN13
CLRF SUTUN14
CLRF SUTUN15
CLRF SUTUN16
CLRF SUTUN17
CLRF SUTUN18
CLRF SUTUN19
CLRF SUTUN20
CLRF SUTUN21
CLRF SUTUN22
CLRF SUTUN23
CLRF SUTUN24
CLRF SUTUN25
CLRF SUTUN26
CLRF SUTUN27
CLRF SUTUN28
CLRF SUTUN29
CLRF SUTUN30
CLRF SUTUN31
CLRF SUTUN32
MOVLW H'00'
MOVWF SAYAC
Run2 MOVLW H'02'
MOVWF SAYAC1
CALL Shift
INCF SAYAC, 1
MOVF SAYAC, 0
CALL Table1
MOVWF SUTUN32
XORLW 0FFh
BTFSC STATUS, 2
GOTO Run1
Run3 DECFSZ SAYAC1,1
GOTO Run4
GOTO Run2
Run4 CALL Scan
GOTO Run3
Scan BSF PORTA, 1
NOP
BCF PORTA, 1
MOVF SUTUN1, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN2, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN3, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN4, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN5, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN6, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN7, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN8, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN9, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN10, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN11, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN12, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN13, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN14, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN15, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN16, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN17, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN18, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN19, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN20, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN21, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN22, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN23, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN24, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN25, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN26, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN27, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN28, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN29, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN30, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN31, 0
MOVWF PORTB
CALL DelD
MOVF SUTUN32, 0
MOVWF PORTB
CALL DelD
RETURN
Shift MOVF SUTUN2, 0
MOVWF SUTUN1
MOVF SUTUN3, 0
MOVWF SUTUN2
MOVF SUTUN4, 0
MOVWF SUTUN3
MOVF SUTUN5, 0
MOVWF SUTUN4
MOVF SUTUN6, 0
MOVWF SUTUN5
MOVF SUTUN7, 0
MOVWF SUTUN6
MOVF SUTUN8, 0
MOVWF SUTUN7
MOVF SUTUN9, 0
MOVWF SUTUN8
MOVF SUTUN10, 0
MOVWF SUTUN9
MOVF SUTUN11, 0
MOVWF SUTUN10
MOVF SUTUN12, 0
MOVWF SUTUN11
MOVF SUTUN13, 0
MOVWF SUTUN12
MOVF SUTUN14, 0
MOVWF SUTUN13
MOVF SUTUN15, 0
MOVWF SUTUN14
MOVF SUTUN16, 0
MOVWF SUTUN15
MOVF SUTUN17, 0
MOVWF SUTUN16
MOVF SUTUN18, 0
MOVWF SUTUN17
MOVF SUTUN19, 0
MOVWF SUTUN18
MOVF SUTUN20, 0
MOVWF SUTUN19
MOVF SUTUN21, 0
MOVWF SUTUN20
MOVF SUTUN22, 0
MOVWF SUTUN21
MOVF SUTUN23, 0
MOVWF SUTUN22
MOVF SUTUN24, 0
MOVWF SUTUN23
MOVF SUTUN25, 0
MOVWF SUTUN24
MOVF SUTUN26, 0
MOVWF SUTUN25
MOVF SUTUN27, 0
MOVWF SUTUN26
MOVF SUTUN28, 0
MOVWF SUTUN27
MOVF SUTUN29, 0
MOVWF SUTUN28
MOVF SUTUN30, 0
MOVWF SUTUN29
MOVF SUTUN31, 0
MOVWF SUTUN30
MOVF SUTUN32, 0
MOVWF SUTUN31
MOVF SUTUN33, 0
MOVWF SUTUN32
RETURN
DelD MOVLW H'00'
MOVWF DEGER
DelC DECFSZ DEGER, 1
GOTO DelC
MOVLW 00h
MOVWF PORTB
Clk BSF PORTA, 0
NOP
BCF PORTA, 0
RETURN
END
serpil_07
Selam,
Sarı çizmeli Mehmet ağa olmuş bu. Projenin şeması yok mu? Ne nereye bağlı?
Analyzer
Sütun taramalı kayan yazı ise ekran regsiterlerinin hepsini rrf ,rlf komutlarını kullanarak kaydırdığın zaman yazıda aşağı ve yukarı kayar, hatta ben bir harf yukarı bir harf aşağı kaydırma da yaptım bu yöntemle..
peki yazı sağdan sola doğru kayıyor. sağdan sola doğru kaydırma hangi kodla yapılıyor?
şuan sağa kayıyor ise kaydırma yordamının tam tersini yaparsan yani registerlerdeki veriyi tersyönde taşımaya başlarsan bu defa sola dopru kayar
MOVFW SUTUN_8
MOVWF SUTUN_9
MOVFW SUTUN_7
MOVWF SUTUN_8
MOVFW SUTUN_6
MOVWF SUTUN_7
MOVFW SUTUN_5
MOVWF SUTUN_6
MOVFW SUTUN_4
MOVWF SUTUN_5
MOVFW SUTUN_3
MOVWF SUTUN_4
MOVFW SUTUN_2
MOVWF SUTUN_3
MOVFW SUTUN_1
MOVWF SUTUN_2
MOVFW YENI_DATA ; BU REGE YÜKLENEN VERİ EKRANA YENİ GELECEK VERİNİN SON SUTUN BİLGİSİDİR..
MOVWF SUTUN_1
Bu konular daha öncede konuşuldu sitede biraz ararsanız bir çok bilgi bulabilirsiniz..
Alıntı yapılan: "Eagle_Tim"şuan sağa kayıyor ise kaydırma yordamının tam tersini yaparsan yani registerlerdeki veriyi tersyönde taşımaya başlarsan bu defa sola dopru kayar
MOVFW SUTUN_8
MOVWF SUTUN_9
MOVFW SUTUN_7
MOVWF SUTUN_8
MOVFW SUTUN_6
MOVWF SUTUN_7
MOVFW SUTUN_5
MOVWF SUTUN_6
MOVFW SUTUN_4
MOVWF SUTUN_5
MOVFW SUTUN_3
MOVWF SUTUN_4
MOVFW SUTUN_2
MOVWF SUTUN_3
MOVFW SUTUN_1
MOVWF SUTUN_2
MOVFW YENI_DATA ; BU REGE YÜKLENEN VERİ EKRANA YENİ GELECEK VERİNİN SON SUTUN BİLGİSİDİR..
MOVWF SUTUN_1
Bu konular daha öncede konuşuldu sitede biraz ararsanız bir çok bilgi bulabilirsiniz..
selam eagle_tim
sizim burda kullandıgınız movfw komutu ile movf komutu ayni islemimi yapiyor.
tamam arkadaşlar son bişey daha hepsini anladımda yazıyı aşağı doğru kaydırmam için aşağıdaki yazdığım kodlar doğrumudur? :?:
Shift RLF SUTUN2, 0
MOVWF SUTUN1
MOVF SUTUN3, 0
MOVWF SUTUN2
MOVF SUTUN4, 0
MOVWF SUTUN3
MOVF SUTUN5, 0
MOVWF SUTUN4
MOVF SUTUN6, 0
MOVWF SUTUN5
MOVF SUTUN7, 0
MOVWF SUTUN6
MOVF SUTUN8, 0
MOVWF SUTUN7
MOVF SUTUN9, 0
MOVWF SUTUN8
MOVF SUTUN10, 0
MOVWF SUTUN9
Alıntı yapılan: "serpil_07"tamam arkadaşlar son bişey daha hepsini anladımda yazıyı aşağı doğru kaydırmam için aşağıdaki yazdığım kodlar doğrumudur? :?:
öncelikle code ikonunu kullansanız daha iyi olur böyle anlamak zorlaşıyor.
YUKARI
BCF STATUS,0
RLF SUTUN_1,F
BCF STATUS,0
RLF SUTUN_2,F
BCF STATUS,0
RLF SUTUN_3,F
BCF STATUS,0
RLF SUTUN_4,F
BCF STATUS,0
RLF SUTUN_5,F
BCF STATUS,0
RLF SUTUN_6,F
BCF STATUS,0
RLF SUTUN_7,F
BCF STATUS,0
RLF SUTUN_8,F
BCF STATUS,0
RLF SUTUN_9,F
BCF STATUS,0
RLF SUTUN_10,F
RETURN
sütun tarama yapıyorsanız böyle olmalı bu yordamı her refreshden sonra 1 Kez çağırırsanız yazı veriyi gönderme deki yöne göre aşağı veya yukarı kayacaktır 9 defa çağırırsanız XXx8 yükseklik 8 olan dot için söylüyorum yazı yukarı veya aşağı gidip kaybolur terside RRF yaparak oluyor yazı çok hızlı aşağı veya yukarı kayar ise 1 rehreshde değilde 10-20 refreshde bir bu yordamı çağırın böylece istediğiniz hızda aşağı yukarı kayma sağlarsınız, işlem basit artık gerisi size kalıyor..
öncelikle size çok teşekkür ediyorum ilgilendiğiniz için. :P
1)elimizde satır taramalı devre olsaydı yazıyı yukarıdan aşağı yada aşağıdan yukarı kaydıramayacakmıyım ben?
2)ben proteusta kayan yazı devresinin satır veya sütun taramalı olduğunu nasıl öğrenebilirim?
Bunu anlamak için yazılıma bakmak en uygunu çünki, gerçekte olsa bazı bariz noktalardan anlaşılabilir ancak, proteusta satır veya sutun taramayı donanıma bakarak anlamak zor.. ama satır taramada sutunlar kuvetlendirilmeden dirençle entegre çıkışıda verilebilir. sutun tramada kuvvetlendirmek şart, çünki biri bir anda max 8 led yakıyor her pine 1 led düşecek şekilde, diğeri ise bu 8 ledi tek pinden yakıyor. bu yüzden akım problemi olacağından sutun taramada entegre çıkışı güçlendirilir ama dediğim gibi proteusta entegre yanıp bozulmayacağından çizen kişi bunları dikkate almamış olabilir, devreye bakarak kesin bir yorum yapılamaz diye düşünüyorum çünki aynı donanımla her iki yazılımda çalışabilir..
Aşağı Yukarı kaydırma işlemi sadece algoritma olarak değişirdi okadar..
yazıyı. RRf sağa kaydırma RLF ise sola kaydırma olarak bir yerde okudum.
aşağı ve yukarı kaydırma komut larını göremedim. 16f serisinin 35 tane komutunun içinde yok. nasıl bir durum.
Programcılık satranç gibidir, komutlar da taşlar gibi sınırlıdır.
Hamleler, kombinasyonlar, algoritmalar artık her neyse sizin oluşturmanız gereken şeylerdir.
Bu kayan yazı devresini 4x (5*7) display'le proje olarak yapmıştım.
Mesela orda yağmur efektiyle yaz, harfleri döndürerek yaz gibi durumlar ve daha bir çok efekt vardı.
Eğer aradığınız komut düşünülse, bunlarıda düşünmeleri gerekirdi.
Velasılkelam her durumun bir komutu olsa(ki imkansız) bize gerek kalmazdı, ne mutlu ki şimdilik yok ;)
Sizin sorununuza gelince, en basit tasarımla; devre dizaynınıza göre, yazılımınızda sağa sola yatay kaydırma için bir byte'in içeriğini bir sonraki byte'in içeriğine kopyalayıp, kendisine de bir öncekini alıyorsanız, aşağı yukarı dikey kaydırma için, carry üzerinden bit kaydırma komutlarını kullanarak ilgili her byte'i işlemeniz gerekir.
Devre dizaynınızı tam tersi şekilde yaptıysanız, bu yapıda tam tersi şekle döner.