Saat: 22:15:42 Gösterim: 1316
Bu yazımda da , 16F628A'nın B portuna bağlı 8 ledin bir buton yardımıyla TEK ve ÇİFT olarak yapmayı anlatacağız. Assebmly döngü mantığını kavrama da yardımcı olacaktır. Sizde değişik kombinasyonlar deneyebilirsiniz. İki buton kullanabilirsiniz.
Program kodları:
;====led_yak_son===25.01.2008======
;====ErhanHARMANKAYA===============
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _INTRC_OSC_NOCLKOUT &_WDT_OFF &_PWRTE_ON &_MCLRE_ON &_BODEN_OFF &_LVP_OFF &_DATA_CP_OFF &_CP_OFF
;==================================
ORG h'00' ;Burdan yazmaya başla
AYARLA
CLRF PORTB ;PORT B'nin bütün uçlarını temizle
BANKSEL TRISA ;BANK1'e geç
MOVLW h'FF' ;Akü'ye FF koy
MOVWF TRISA ;Akü'nün içine TRISA'ya koy / A'nın bütün bitleri 1 yapıldı.-Giriş
CLRF TRISB ;B'nin bütün bitlerini 0 la- Çıkış yapıldı
BANKSEL PORTA ;BANK0'a geç
MOVLW h'FF' ;aküye 00000111 koy
MOVWF CMCON ;porta ilk 3 giriş dijital I/O
TEST ;PortA 7. bit set mi etiketi
BTFSC PORTA, 7 ;PortA'nın 7. biti 0 ise aşağıya gir
GOTO CIFT_YAK ;HAYIR
GOTO TEK_YAK ;EVET 0
TEK_YAK
MOVLW b'10101010' ;TEK sayı numaralı ledler yakılır 1-3-5-7
MOVWF PORTB
GOTO TEST
CIFT_YAK
MOVLW b'01010101' ;çift sayılı ledler yaılır 0-2-4-6
MOVWF PORTB
GOTO TEST
END
;===================================

Yine yanlarında Yorum(Comment) olarak açıkladım kodları.
Yine projeye ait Assembly ve Hex kodlarını ayrıca Proteusta yapılmış Design dosyasını [ŞURADAN] indirebilirsiniz.
Bundan sonraki derste de 1 saniyelik süre oluşturma ve zamanlama döngülerini göreceğiz( yine hepberaber
)
Kolay gelsin hepinize...




Gönderen:
Metehan 



