KESME OLUSTURMAK (INTERRUPT)

Başlatan PROF6, 10 Kasım 2003, 23:50:20

PROF6

;PORTA.1     BUTON
;PORTB.1     LED

BASLA:
PORTB.1=1
PAUSE 5000
PORTB.1=0
PAUSE 5000
GOTO BASLA

5 saniyede bir yanıp sonen led olusturdum,kesme ile nasıl;butona basıldıgını gosterıp baska bir etikete gonderebılırım??
aslında basit bir "if" komutuyla porta ya basılıp basılmadıgını sorabılırım fakat bunu her 5sanıyee bir sormus olacak program,ben dongu donerken dısardan bi pulse gonderdıgımı nasıl gosterıp baska bir etikete gonderebılırım??

james

RB0 hardware interruptını kullanabilirsin.butonu RB0 a bağla.bu pinde değişme olduğunda kesme oluştur.
ARAMIYORUM , BULUYORUM

mmengi

dostum bu aradığına benzer bir örnek pbp nun sample dizininde zaten var.

' On Interrupt - Interrupts in BASIC
'  Turn LED on.  Interrupt on PORTB.0 (INTE) turns LED off.
'  Program waits .5 seconds and turns LED back on.

led     var     PORTB.7


       OPTION_REG = $7f        ' Enable PORTB pullups

       On Interrupt Goto myint ' Define interrupt handler
       INTCON = $90            ' Enable INTE interrupt

loop:   High led                ' Turn LED on
       Goto loop               ' Do it forever


' Interrupt handler
       Disable                 ' No interrupts past this point
myint:  Low led                 ' If we get here, turn LED off
       Pause   500             ' Wait .5 seconds
       INTCON.1 = 0            ' Clear interrupt flag
       Resume                  ' Return to main program
       Enable

james

list  p=16F877
      include p16f877.inc

      org   00
      goto   main

         org    04h
                   goto  interrupt

      include genel.inc

main       bsf   STATUS,5
                    movlw 01h      ;portb 0 giriş diğerleri çıkış
                           movwf TRISB
                           movlw 0FFh
                           movwf OPTION_REG
                   bcf   STATUS,5
                   bcf   INTCON,1
                          bsf   INTCON,7       
                          bsf   INTCON,4  

   flash   bsf   portb,1
      waitms   .255
      bcf   portb,1
      waitms   .255
      goto   flash
     
   interrupt       bcf    INTCON,1
                               call   done
                               retfie  

   done   bsf   portb,2
      return
      end

buda asm örneği
ARAMIYORUM , BULUYORUM