21 Eylül 2008 Pazar

Pic programlama ve assembly..

LIST    p=16F628 ; PIC16F844 is the target processor
#include "P16F628A.INC" ; Include header file

sayac1 equ 0x20
sayac2 equ 0x21
sayac3 equ 0x22
sayac4 equ 0x23

basla
bsf 0x03, 5 ; Statusun 5. bitini 1 yap yani bank 1 seçili
   movlw b'00000000' ; w rege 0 aktar
   movwf 0x86 ; TrisB yi sıfırla yani tüm B portlari çıkış
movwf 0x85 ; TrisA yi sıfırla yani tüm A portlari çıkış
bcf 0x03, 5 ; Statusun 5. bitini 0 yap yani bank 0 seçili
yak
movlw b'11111111';w registerine 1 leri doldur
movwf 0x05;sonra bu birleri PORTA ya yolla yani ledleri yak
call bekle1sn
movlw b'00000000';w registerine 0 ları doldur
movwf 0x05;sonra bu sıfırları PORTA ya yolla yani ledleri söndür
call bekle1sn
goto yak

; azalttan itibaren 3 saykıl, bu durumda 0,00000075 zamanda bir
;dongu tamamlanıyor. Bir milisaniye yani sn nin 1/1000 i için
; yaklaşık 1332 kez dönmeli. Bu durumda sayac 222 yapılır ise
;altı kez döndürülür ise bir ms geçmiş olur..
bekle1msn
movlw d'222'
movwf sayac1
movlw d'6'
movwf sayac2
azalt1ms
decfsz sayac1, 1
goto azalt1ms
decfsz sayac2, 1
goto azalt1ms
return

bekle10msn
movlw d'10'
movwf sayac3
azalt10ms
call bekle1msn
decfsz sayac3, 1
goto azalt10ms
return

bekle1sn
movlw d'100'
movwf sayac4
azalt100ms
call bekle10msn
decfsz sayac4, 1
goto azalt100ms
return
end

Hiç yorum yok:

Yorum Gönder