pıc16f84

elektrik elektronik bölümü end. Bakım ve onarım alanı 12. sınıf ögrencisiyim
 
HANGİ OKULDA OKUOSUN
-------------------------------------
bende endüstriyel bakım onarımdım
 
Moderatör tarafında düzenlendi:
4mhz kristalle yapılan osilatör devresiyle çalışan pıc16f84 entegresinde A portu giriş B portu çıkış olarak ayarlanacaktır.RA0 pul down şeklinde baglanan butona basıldıktan 2 sn sonra RB0,RB1,RB2,RB3 e bağlı ledleri 5sn yakan sonra söndüren RA1 e pull up şeklinde bağlanan butona basılıp bırakıldıktan 4sn sonra RB4,RB5,RB6,RB7 ye bağlı lederi 6sn yakan sonra söndüren assembly programını yazınız

assembly ve akış şeması lazım yardımcı olursanız sevinirim

1 sn den 70 us hata var.zamanlamada tam uğraşmadım biraz ayarla düzeltebileceğini umuyorum.
Kaynak kodlar..

list p=16f84
include "p16f84.inc"
CNT100U EQU H'26'
CNT200U EQU H'27'
CNT500U EQU H'28'
CNT1M EQU H'10'
CNT100M EQU H'11'
CNT500M EQU H'12'
CNT1S EQU H'13'
CNTXS EQU H'14'

ORG 0X000
GOTO PORT_AYAR
PORT_AYAR
BSF STATUS,5 ; BANK 1 GEC
CLRF TRISB ; PORTB CIKIS
MOVLW H'FF'
MOVWF TRISA ;PORTA GİRİŞ AYARLANDI
BCF STATUS,5 ;BANK0 GEC
CLRF PORTB
TEST1
BTFSC PORTA,0 ;PORTA NIN 1 BİTİ 0 Mİ?
GOTO TEST1 ;DEĞİL YENİDEN TEST ET.
CALL SN_5 ;5 SN BEKLE
TEST2
BTFSC PORTA,1 ;PORTA NIN 1 BİTİ 0 Mİ?
GOTO TEST2 ;DEĞİL YENİDEN TEST ET.
CALL SN_6 ;6 SN BEKLE
GOTO TEST1
SN_5
BTFSS PORTA,0 ;BUTON BIRAKILDIMI
GOTO SN_5
MOVLW d'2' ;2 SN BEKLE
CALL TXS
MOVLW 0X0F ;DÜSÜK 4 BİT YAK
MOVWF PORTB
MOVLW D'5' ;5 SN BEKLE
CALL TXS
CLRF PORTB ;portb yi sil
RETURN
SN_6
BTFSS PORTA,1 ;BUTON BIRAKILDIMI
GOTO SN_6
MOVLW d'4' ;4 SN BEKLE
CALL TXS
MOVLW 0XF0 ;YÜKSEK 4 BİT YAK
MOVWF PORTB
MOVLW D'6' ;5 SN BEKLE
CALL TXS
CLRF PORTB ;portb yi sil
RETURN

;***************************
;** BEKLE ALT PROGRAMI******
;***************************
;**** 100u sn lik bekleme**************************
;**************************************************
T100U ;**********
MOVLW D'32' ;(1) =1 ;**********
MOVWF CNT100U ;(1) =1 ;**********
T100ULP ;**********
DECFSZ CNT100U,F ;(32-1)+2 =33 ;**********
GOTO T100ULP ;(32-1)*2 =62 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =101 SAYKIL****
;**************************************************
;**** 500u sn lik bekleme**************************
;**************************************************
T500U ;**********
MOVLW D'5' ;(1) =1 ;**********
MOVWF CNT500U ;(1) =1 ;**********
T500ULP ;**********
CALL T100U ;(2) =2 ;**********
DECFSZ CNT500U,F ;(5-1)+2 =4 ;**********
GOTO T500ULP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =17SAYKIL ****
;**************************************************
;**** 1ms sn lik bekleme**************************
;**************************************************
T1M ;**********
MOVLW D'2' ;(1) =1 ;**********
MOVWF CNT1M ;(1) =1 ;**********
T1MLP ;**********
CALL T500U ;(2) =2 ;**********
DECFSZ CNT1M,F ;(5-1)+2 =4 ;**********
GOTO T1MLP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =17SAYKIL ****
;**************************************************
;**** 100ms sn lik bekleme**************************
;**************************************************
T100M ;**********
MOVLW D'100' ;(1) =1 ;**********
MOVWF CNT100M ;(1) =1 ;**********
T100MLP ;**********
CALL T1M ;(2) =2 ;**********
DECFSZ CNT100M,F ;(5-1)+2 =4 ;**********
GOTO T100MLP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =17SAYKIL ****
;**************************************************
;**** 500ms sn lik bekleme**************************
;**************************************************
T500M ;**********
MOVLW D'5' ;(1) =1 ;**********
MOVWF CNT500M ;(1) =1 ;**********
T500MLP ;**********
CALL T100M ;(2) =2 ;**********
DECFSZ CNT500M,F ;(5-1)+2 =4 ;**********
GOTO T500MLP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =17SAYKIL ****
;**************************************************
;**** 1s sn lik bekleme**************************
;**************************************************
T1S ;**********
MOVLW D'2' ;(1) =1 ;**********
MOVWF CNT1S ;(1) =1 ;**********
T1SLP ;**********
CALL T500M ;(2) =2 ;**********
DECFSZ CNT1S,F ;(5-1)+2 =4 ;**********
GOTO T1SLP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =17SAYKIL ****
;**************************************************
;**** "X" sn lik bekleme**************************
;**************************************************
TXS ;**********
MOVWF CNTXS ;(1) =1 ;**********
TXSLP ;**********
CALL T1S ;(2) =2 ;**********
DECFSZ CNTXS,F ;(5-1)+2 =4 ;**********
GOTO TXSLP ;(5-1)*2 =8 ;**********
RETURN ;(2) =2 ;**********
;****************************TOPLAM =16SAYKIL ****
;**************************************************
END
 
en gec bu aksam hex dosyasını gonderebılırım sadece mıkrobasıc dılınde yazacam galıba sıze sadece hex dosyası lazım
 

Forum istatistikleri

Konular
129,689
Mesajlar
929,035
Kullanıcılar
452,395
Son üye
gkmeens

Yeni konular

Geri
Üst