Assembly dilinin anlaşılması ve 7 segment displaylerin kullanılması için güzel bir uygulama olduğunu düşünüyorum. Kodları ben yazdım. Yorum kısımlarında açıklamalar yaptım.  0 Dan 9 a kadar sayıyor. Ayrıca isterseniz mantığını anladıktan sonra sizde tersten saydırma yada displayle farklı uygulamalar yapabilirsiniz.

Her bir sayı arasında ki geçiş için 1 sn bıraktım. Bekle komutunu her yazdığınızda 0.5 sn bekleme süresi artacaktır.

display

 7 segmenti yandaki şekilde ki gibi gösterebiliriz. Piyasada 2 çeşit 7 segment display bulunuyor. Anot ve katot olmaktadır. Bu şekilde kiler anot displayler benim projede kullandığım da anot displaydi.

Boş uçlar toprak msp430 veya kullandığınız farklı bir işlemci ile yaptığınızda toprak noktasını kullanabilirsiniz. Bağlantılarınızı  yaptarken pt ucunu kullanmadım o displayin sağ alt kısmında kalan noktanın yanmasını sağlıyor.

Bağlantılarınızı direk launchpad üzerinden yapabilirsiniz. Launchpad verdiği gerilim fazla olmadığından direnç kullanmadım fakat direnç kullanmanız Displayin zarar görmesini engelleyecektir. Garantiye almak için direnç kullanabilirsiniz. 220 ohm veya 33o ohm gibi değerler işinizi görecektir.

7 segment display uygulaması

Burda sayıları nasıl portlarla bağdaştırdığımı anlamak için şu yazıyı okumanızı öneriyorum.

Sayı tabanları arasında ki geçiş işinize yarayacaktır.

Bağlantılara gelince

; P1.0 —> a

; P1.1 —> b

; P1.2 —> c

; P1.3 —> d

; P1.4 —> e

; P1.5 —> f

; P1.6 —> g

; GND —> GND

Bu da videosu:

http://www.youtube.com/watch?v=sRegpYM-NFM

;*******************************************************************************;   MSP430 Assembly Sayı 0-9 Devresi;  Açıklama: 7 segment display ile saydırma işlemi yapıldı. Assembly kodları kullanıldı;                P1.0 ---> a;                P1.1 ---> b;                P1.2 ---> c;                P1.3 ---> d;                P1.4 ---> e;                P1.5 ---> f;                P1.6 ---> g;                GND  ---> GND;;   SelimErkan;   http://www.elektronikhobi.net;   Nisan 20132;   Derleme IAR Embedded Workbench Version: 5.51;*******************************************************************************#include  "msp430g2553.h";-------------------------------------------------------------------------------            ORG     0F800h                  ; Program Reset;-------------------------------------------------------------------------------RESET       mov.w   #0280h,SP               ; StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDTilkayar     bis.b   #0FFh,&P1DIR            ; Kullanacağımız portlar belirlendi.            bic.b   #0FFh,&P1OUT            ; Program çalışmaya başladığında                                             ;yanan segment olmaması için tüm                                             ;segmentler söndürüldü    AnaKod      mov.b   #03Fh,&P1OUT            ; 0 için 16lık tabanda açık portlar            call    #bekle                  ; Bekle komutu ile 0.5sn bekleme            call    #bekle                  ;1 sn ye tamamlandı 2. kullanım            mov.b   #006h,&P1OUT            ; 1 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #05Bh,&P1OUT            ; 2 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #04Fh,&P1OUT            ; 3 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #066h,&P1OUT            ; 4 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #06Dh,&P1OUT            ; 5 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #0FDh,&P1OUT            ; 6 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #007h,&P1OUT           ; 7 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #07Fh,&P1OUT            ; 8 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            mov.b   #06Fh,&P1OUT            ; 9 için 16lık tabanda açık portlar            call    #bekle            call    #bekle            jmp     AnaKod                ; Başa dön                                                                                                                              bekle       mov.w   #0ffffh,R5   ;R5 bekleme yapması için değer atandıss          dec     R5           ;R5 değeri 1 er azaltıldı.            jnz     ss           ;Sıfır değilse tekrar azaltmaya gönderildi.            ret                  ;sıfırsa bu kod çalışır yani bekle kodunun                                 ; çağrıldığı yere gider                                                                                  ORG     0FFFEh                  ; MSP430 RESET Vector            DW      RESET                   ;            END

  • deniz

    7447 ile 7 segment anot displayi de kullandığım ileri sayıcı devresi yapıyorum. Display in + ucu nerede onu söyleyebilirmisiniz?