Arkadaşlar Merhaba,
Resimde de paylaştığım üzere bu devrede displaye sabit bir sayı yazdırmak istiyorum.
NUMARA
MOVLW 0x06 ;W kaydedicisine 1 say?s?n? at?ld?.
MOVWF PORTB
MOVLW 0xFE
MOVWF PORTC
CALL ZAMAN
MOVLW 0x07 ;W kaydedicisine 7 say?s?n? at?ld?.
MOVWF PORTB
MOVLW 0xFD
MOVWF PORTC
CALL ZAMAN
MOVLW 0x6D ;W kaydedicisine 5 say?s?n? at?ld?.
MOVWF PORTB
MOVLW 0xFB
MOVWF PORTC
CALL ZAMAN
GOTO NUMARA
ZAMAN
movlw .255 ; desimal olarak 255 sayısını w registerine yükle
movwf R7 ; w registerindeki sayıyı R7 registerine yükle
z0
movlw .255 ; desimal olarak 255 sayısını w registerine yükle
movwf R6 ; w registerindeki sayıyı R6 registerine yükle
z1
decfsz R6,F ; R6 nin değerini bir azalt ve 0 değilse
goto z1 ; Z1 ye git
decfsz R7,F ; R7 in değerini bir azalt ve 0 değilse
goto z0 ; Z0 e git
retlw 00 ; geldiğin yere geri git
Bu şekilde sadece ilk 3 digiti çalıştırdım. 1. digite sayı geliyor, 1. digitteki sayı gidince 2. digitteki sayı geliyor, 2. digitteki kapanınca 3. digitteki sayı geliyor, sırasıyla böyle devam ediyor.
Süreyi kısaltmayı düşündüm ama bu seferde 3 digitte farklı şekiller oluşmaya başladı.
Sağlıcakla kalın.
(https://i.ibb.co/zxwfXHY/Ekran-Al-nt-s.png) (https://ibb.co/zxwfXHY)
Proteus gerçek zamanlı olarak 7 segment displayi çalıştıramadığı için farklı şekiller oluşması normaldir. Gerçekte olduğu gibi görüntü elde etmek beklenmemeli bu yüzden.
Alıntı yapılan: quarko - 13 Mayıs 2020, 15:31:59Proteus gerçek zamanlı olarak 7 segment displayi çalıştıramadığı için farklı şekiller oluşması normaldir. Gerçekte olduğu gibi görüntü elde etmek beklenmemeli bu yüzden.
Elimde bu displayden olmadığı için reelde deneyemeyeceğim. Program kurgusu sizce doğru mu? Bekleme zamanı kaç ms olmalıdır?
Display özelliklerinden süresini
50uS ye kadar indirebilirsiniz
şimdilik.
Birinci display açılır, rakam
yollanıp bir süre bekkenir.
Boş veri yollanır. İkinci display
açılır. Bu şekilde devam eder...
Süre kısmını izlereyek
bakabilirsiniz
50us çok kısa bir süre. Eğer tarama işini kesme ile yapıyorsan, gereksiz yere sürekli kesmeye gitmiş olacaksın. Ayrı aşırı hızlı tararsan, parlaklıkta bir miktar kaybolacaktır. O yüzden optimum bir süre tercih etmelisin. Bunun içinde 2msn gibi bir süre yeterli olacaktır.
Proteus daki dispay süresinden
bahsediyorum.
Kurgun doğru,call zaman dansornra
MOVLW 0xFF
MOVWF PORTC
göndererek
@mehmet hocanında dikkat çekti gibi ışık veren segmentlerı kapatmalısın, yoksa gölge yapıyor.