|
Sayfa 2 Toplam: 3
PIC Assembly Kodu
;DC-MOTOR KONTROL KODU
;Tuna
BULUT TARAFINDAN YAZILMIŞTIR
LIST P=16F628A
INCLUDE "P16F628A.INC"
__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON
& _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;-------------DEĞİŞKENLERİ
BİR ADRESE ATA----------------
CBLOCK H'20'
SAYAC1
SAYAC2
ENDC
;------------------------------------------------------------------------
MOVLW H'07'
MOVWF CMCON ;COMPARATOR
ÖZELLİĞİ KAPALI VE PORTA I/O İÇİN AKTİF MODDA
CLRF PORTB ;PORTB Yİ SIFIRLA
;GİRİŞ-ÇIKIŞ
TANIMLAMALARI
BANKSEL TRISA ;BANK1
E GEÇİŞ YAP
MOVLW H'FF'
MOVWF TRISA ;PORTA NIN BÜTÜN PİNLERİNİ GİRİŞ YAP
CLRF TRISB ;PORTB NİN BÜTÜN PİNLERİNİ ÇIKIŞ YAP
BANKSEL PORTB ;TEKRAR BANK0 A GEÇ
CLRF PORTB ;PORTB Yİ SIFIRLA
MOVLW H'FF'
MOVWF PORTA
;ANA
PROGRAM
DONGU
BTFSS PORTA,1 ;ORTADAKİ BUTONU KONTROL ET
;1
SE BİR SONRAKİ KOMUTU ATLA
GOTO DUZ ;2
MOTORU DA ÇALIŞTIR
BTFSS PORTA,0 ;SOL
BUTONU KONTROL ET
;1
SE BİR SONRAKİ KOMUTU ATLA
GOTO SOL ;SOL
MOTORU ÇALIŞTIR
BTFSS PORTA,2 ;SAG
BUTONU KONTROL ET
;1
SE MOTORLARI DURDUR VE BAŞA DÖN
GOTO SAG
DUR
BCF PORTB,0 ;SAG
MOTORU DURDUR
BCF PORTB,2 ;SOL
MOTORU DURDUR
CALL GECIKME
GOTO DONGU
DUZ
BSF PORTB,0 ;SAG
MOTORU ÇALIŞTIR
BSF PORTB,2 ;SOL
MOTORU ÇALIŞTIR
CALL GECIKME
GOTO DONGU
SOL
BSF PORTB,0 ;SAG
MOTORU ÇALIŞTIR
BCF PORTB,2 ;SOL
MOTORU DURDUR
CALL GECIKME
GOTO DONGU
SAG
BCF PORTB,0 ;SAG
MOTORU DURDUR
BSF PORTB,2 ;SOL
MOTORU ÇALIŞTIR
CALL GECIKME
GOTO DONGU
;----------------------50 MS'LİK
GECİKME-----------------------------------
GECIKME
MOVLW D'65'
MOVWF SAYAC1 ;SAYAC1 E H'FF' DEĞERİNİ
YÜKLE
DONGU1
MOVLW H'FF'
MOVWF SAYAC2 ;SAYAC2 YE H'FF' DEĞERİNİ
YÜKLE
DONGU2
DECFSZ SAYAC2,1 ;SAYAC2 İ 1 AZALT
VE SAYAC2 ÜZERİNE KAYDET 0 SA BİR SONRAKİ KOMUTU ATLA
GOTO DONGU2
DECFSZ SAYAC1,1 ;SAYAC1 İ 1 AZALT
VE SAYAC1 ÜZERİNE KAYDET 0 SA BİR SONRAKİ KOMUTU ATLA
GOTO DONGU1
RETURN
;----------------------------------------------------------------------------
END ;PROGRAMI
SONLANDIR
Not: Eğer RA6 ve RA7 pinlerini Giriş/Çıkış(I/O) olarak
kullanmak istiyorsanız. Harici osilatör kullanmak yerine PIC16F628A'nın
içinde bulunan 4 MHz dahili osilatörü kullanabilirsiniz. Bunun için
devrede ve kodda birtakım değişiklik yapmanız gerekir: Devrede RA6 ve
RA7 pinlerine bağlı bulunan elemanların yani kristal ve
kapasitörlerin bağlantısını kesin ve kodda _XT_OSC yerine _INTRC_OSC_NOCLKOUT yazın.
Ayrıca Reset opsiyonunu kullanmak istemiyor ve bu pini giriş olarak
kullanmak istiyorsanız. RA5/MCLR pinine bağlı tüm elemanların ve
yolların bağlantısını kesin kısacası bu pini açıkta bırakın ve kodda _MCLRE_ON yerine _MCLRE_OFF yazın. Şunu unutmayın ki RA5 pinini giriş olarak kullanabilirsiniz ama çıkış olarak kullanamazsınız.
Eğer motor istediğiniz yönde dönmüyorsa kablo
bağlantılarını aralarında değiştirin.
|