zaman geçiktirme programı

Katılım
27 Ara 2009
Mesajlar
1
Puanları
1
Yaş
40
arkadaşlar pıc e yeni başladım bana yardımcı olursanız sevinirim
bu program basit zaman geçiktirme programı.ve başlangıç kısmında
MOVLW H'FF' ;W←h'FF bu komutu niçin w'ye FF yüklüyoruz bana göre bir anlamı yok ve CLRF komutunun kaç tane anlamı var


INCLUDE "P16F84.INC"
SAYACl EQU H'0C' ;SAYACl registerinin adresi
SAYAC2 EQU H’0D’ ;SAYAC2 registerinin adresi
CLRF PORTB ;PortB'yi sıfırla
BSF STATUS,5 ;BANKl’e geç
CLRF TRISB ;PortB'nin tüm uçları çıkış
MOVLW H'FF' ;W←h'FF
MOVWF TRISA ;PortA'nın tüm uçları giriş
BCF STATUS, 5 ;BANK0’a geç
BASLA
MOVLW H'0A' ;W←h'0A'
MOVWF SAYACl ;SAYACl←W
TEST
BTFSC PORTA,1 ;PortA'nın 1. bit'i 0 mı?
GOTO TEST ;Hayır, tekrar test. et
GECIKME ;Gecikme sağlama bölümü
MOVLW H'FF' ;W←h'FF'
MOVWF SAYAC2 ;SAYAC2←W
GECIKIME ;Gecikme sağlama bölümü
DECFSZ SAYAC2, F ;SAYAC2←SAYAC2-1, SAYAC2=0 mı?
NOP ; Arkın sönmesini bekle
NOP ; “
NOP ; “
GOTO GECIKME ;Hayır, SAYAC2'yi tekrar azalt AZALT
DECFSZ SAYACl, F ;SAYACK-SAYACl-1 ,SAYAC1=0 mı?
GOTO YAK ;Hayır, YAK etiketine atla
GOTO BASLA ;Evet, başa dön YAÎ;
MOVF SAYACl, W ; W←SAYACl
MOVWF PORTB ;SAYAC1’i PortB'ye gönder
GOTO TEST ;PortA'yi tekrar test et.
END ;Prograa kodlarının sonu
 
MOVLW H'FF' ;W←h'FF
MOVWF TRISA ;PortA'nın tüm uçları giriş

w register içindeki değeri porta ya yüklüyor asm de program yazarken bir değeri doğrudan yazamıyorsun w register içine atıp w reg içindekini istediğine yazıyorsun clrf komutunun ise tek bir anlamı var oda clrf den sonra gelen reg tüm bitlerini 0 yapmak
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…