Proton Plus RB4-7 interrup ve 7segment

seven_segment_display[1]Bir dost istedi, protonla hallettik beraberce benim için zor oldu zira uzun zamandır ne isis ne proton nede PIC kullanıyordum.
Program interrupt kullanarak ileri geri ve reset yapıyor. buna bağlı olarak portd de bağlı bulunan iki adet 4511 ile display sürülüyor.

    Device = 16F877A
    Xtal 4
    All_Digital True
    Symbol PS0 = OPTION_REG.0      ' Prescaler Rate Select
    Symbol PS1 = OPTION_REG.1      ' Prescaler Rate Select
    Symbol PS2 = OPTION_REG.2      ' Prescaler Rate Select
    Symbol PSA = OPTION_REG.3      ' Prescaler Assignment
    Symbol T0SE = OPTION_REG.4     ' TMR0 Source Edge Select
    Symbol T0CS = OPTION_REG.5     ' TMR0 Clock Source Select
    Symbol INTEDG = OPTION_REG.6   ' Interrupt Edge Select
    Symbol NOT_RBPU = OPTION_REG.7 ' PORTB Pull-up Enable
    Symbol RBIF = INTCON.0 ' RB Port Interrupt Flag
    Symbol INTF = INTCON.1 ' RB0 External Interrupt Flag
    Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag
    Symbol RBIE = INTCON.3 ' RB Port Change Interrupt Enable
    Symbol INTE = INTCON.4 ' RB0 External Interrupt Enable
    Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable
    Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable
    Symbol GIE = INTCON.7  ' Global Interrupt Enable
    TRISB=%11111111
    TRISD=%00000000
    Clear
    Dim Birler As Byte
    Dim Onlar As Byte
    RBIE=1  ;RBIE yani portb 4-7 pinlerini kontrol eden interrupt
    GIE=1	;global interrupt aç
    On Interrupt GoTo KESME_ALTPROGRAMI ;interrup oluşursa git
;display sürücü E pin Birler basamağı için PORTD.5
;display sürücü E pin Onlar basamağı için PORTD.6
;Butonlar PORTB.5 ve PORTB.6 ve Portb.7
;-------------------------------------------------------------TARAMA BU BOLUMDE YAPILIYOR
start:
    PORTD=%00010000 | Birler
    DelayMS 1            ;bu deger tarama hızını etkiler
    PORTD=%00100000 | Onlar
    DelayMS 1            ;bu deger tarama hızını etkiler
GoTo start
;----------------------------------------------------------------KESME ALTPROGRAMI
Disable
KESME_ALTPROGRAMI:
            GIE=0   ;tüm interruptlar kapalı
            RBIE=0  ;RB4-7 interrupt kapalı
        ;--------------------------------------------------------Buton Kontrol
                ;Arttır
                    If PORTB.5=0 Then Inc Birler
                    If Birler>9 Then
                        Inc Onlar
                        Birler=0
                    EndIf
                ;AZALT
                    If PORTB.6=0 Then Dec Birler
                    If Birler=$FF Then
                        Dec Onlar
                        Birler=9
                    EndIf
                ;Sil
                    If PORTB.7=0 Then
                        Birler=0
                        Onlar=0
                    EndIf
        ;------------------------------------------------------------------Buton Sonu
                    RBIF=0 ;oluşan interrupt ın bayrağını sil. amacı yeni interrupt gelmesi için
                    RBIE=1  ;RB4-7 interrupt Açık
                    GIE=1   ;tüm interruptlar Açık
        Resume
        Enable
;-------------------------------------------------------------------KESME SONU
   Stop
;-------------------------------------------------------------------Program Sonu

program ve isis dosyası için.
http://www.4shared.com/rar/ZblsYQaEce/zdemirhoca.html

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: