MPLAB'DA YAPILMIŞTIR.
;************************************************************
; PIC18F4550 İLE YAPILMIŞ ÖRNEK BİR STEP MOTOR KONTROLÜ
;
; BA?LIK: STEP MOTOR KONTROLÜ
; YAPIM TARİHİ: 21.10.2014 14:16
; YAPAN: İDO2323
; FREKANS: 20MHz(HS)
;************************************************************
; BU PROGRAM A PORTUNUN 4. VE 3. PİNİNE BAĞLANMIŞ BUTONLAR İLE STEP MOTOR KONTROLÜ YAPILACAKTIR.
;
; DEVREDE ULN2003A STEP SÜRÜCÜ KULLANILMIŞTIR.
; D PORTUNUN(0,1,2,3) BİTLERİ SÜRÜCÜ YE BAĞLANMIŞTIR.
; STEP MOTOR AÇISI 7.5 DERECEDİR.
; RA4'E BASINCA STEP MOTOR 30 DERECE SAĞA, RA3'E BASINCA SOLA HAREKET ETMEKTEDİR.
;
list p=18f4550
#include <P18F4550.INC>
CONFIG FOSC = HS
;************************************************************
; DE???KENLER
Count equ 0x000
sayac1 equ 0x002
sayac2 equ 0x004
sayac3 equ 0x006
;************************************************************
org 00000h ; Reset noktas?
goto Start
;************************************************************
;program kodu burada çal???yor.
org 00020h ; Program?n ba?lang?ç adresi
Start
MOVLW 0Fh ; Configure A/D
MOVWF ADCON1 ; for digital inputs
MOVLW 07h ; Configure comparators
MOVWF CMCON ; for digital input
clrf LATB ; Portb'nin ç?k??lar?n? s?f?rla
clrf TRISB ; Portb'nin bütün pinlerini ç?k?? olarak ayarla
clrf PORTD
clrf TRISD
clrf LATD
MOVLW 0X00
MOVWF TRISD
clrf Count ; count de?i?keninini
;------------------------------------------------
nod
test
btfss PORTA,3 ;PORTA'n?n 3. biti 1 ise gecikme ça??r
goto test1
call GECIKME
call sol
goto nod
test1
btfss PORTA,4 ;PORTA'n?n 4. biti 1 ise ise gecikme ça??r
goto test
call GECIKME
call sag
goto nod
;------30 derece sola----------------
sol
movlw b'00001001'
movwf LATD
call GECIKME
movlw b'00000011'
movwf LATD
call GECIKME
movlw b'00000110'
movwf LATD
call GECIKME
movlw b'00001100'
movwf LATD
call GECIKME
RETURN
;----------------------------------------
;------30 derece sağa----------------
sag
movlw b'00001100'
movwf LATD
call GECIKME
movlw b'00000110'
movwf LATD
call GECIKME
movlw b'00000011'
movwf LATD
call GECIKME
movlw b'00001001'
movwf LATD
call GECIKME
RETURN
;----------------------------------------
; GEC?KME ALT PROGRAMININ BA?LANGICI
;----------------------------------------
GECIKME
movlw h'ff'
MOVWF sayac1
DONGU13
movlw h'ff'
MOVWF sayac2
DONGU15
DECFSZ sayac2,F ;sayac2'nin de?erini 1 azalt s?f?r olursa "DECFSZ sayac1,F" komutuna atla
GOTO DONGU15
DECFSZ sayac1,F ;sayac1'nin de?erini 1 azalt s?f?r olursa "DECFSZ sayac1,F" döngüden ç?k
GOTO DONGU13
RETURN
END
;------------------------------------------------
END