Teknikim

Üye Girişi

PIC Uygulamaları 4-DC Motor Kontrolü
 

Yazan: Tuna BULUT, Tarih: 24-02-2008 17:03

Okunma Sayısı : 1965

Beğenilme : 12

Yayınlama yeri : Dersler, PIC Dersleri



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.

 


   
Beğenilme
E-mail olarak gönder
İlgili makaleler
Teknikim'e kaydet

Okuyucu yorumları  RSS feed Yorum
 

Ortalama Üye Değerlendirmesi

   (0 Oylama)

 


Yorumunuzu ekleyin
Sadece kayitli kullanicilar bir Makaleyi yorumlayabilir. Lütfen ücretsiz üye olun veya giriş yapın.

Gönderilen yeni yorum yok



mXcomment 1.0.8 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved