P16F877A ile Kara Simsek Uygulaması


list p =16F877A
include <p16f877A.inc>
deg1      EQU       028h
deg2      EQU       029h
                org         0000                                        
                goto      START
                org         0010
                      retfie
START
                bsf       STATUS,RP0                ;BANK1 geç
                MOVLW              0X06     ;w reg. 00000110 yükle
                MOVWF              ADCON1    ;w reg. içeri?ini ADCON1 yükle ve A digital giris
     MOVLW   b'00000000'            ;w reg. '00000000' yükle
                MOVWF              TRISD           ;w rer. içeri?ini TRISC yükle ve çikis yap
                bcf         STATUS,RP0             ;BANK0 geç
                MOVLW              b'00001001'       ;w reg. '00000110' yükle
                MOVWF              PORTA             ;w reg. içeri?ini PORTA yükle
    MOVLW          0x01                              ;w reg. '00000001' yükle
                MOVWF              PORTD              ;w reg. içeri?ini PORTC yükle

DON
                BTFSS    PORTA,3          ; PORTA 'nin RA2 girisi  0 mi
                call        SAGKAYDIR          ; Evet SAGKAYDIR prosedurune dallan
                call    gecikme            ;Hayir Gecikme prosedurune dallan
                BTFSS PORTA,0            ; PORTA 'nin RA1 girisi 0 mi
                call SOLKAYDIR            ;Evet SOLKAYDIR prosedurune dallan
                call gecikme               ;HAYIR gecikme prosedurune dallan
                goto DON                       ;PORTA 'nin giris için secilen uclari 1 ise Don
                               ;prosedüründe islem yap.boylece kalinan yerden devami saglar.
SAGKAYDIR
 
                RRF            PORTD,1            ;PORTC nin icerigi 1 saga kaydir.
                call         gecikme          
                return
SOLKAYDIR
 
                RLF             PORTD,1          ;Port C nin içerigini 1 sola kaydir.
                call         gecikme        
 
                return
gecikme  
                movlw   H'FF'        
                movwf   deg1                  
etiket1    
                movlw  H'FF'
                movwf    deg2
                             
etiket2
                decfsz  deg2,F         ;Gecikme için olusturdugum kod blogu
                goto    etiket2        ;256*256 +4 geriye sayarak bekletiyorum
                decfsz  deg1,F         ;Ledlerin gözle görülür biçimde yanmasini sagliyor
                goto    etiket1
                return

                end



Yorumlar

Bu blogdaki popüler yayınlar

DevExpress TreeList Kullanımı

Devexpress GridControl SimpleButon Ekleme

DevExpress LookupEdit Veri Gösterimi