BÖYLE DEĞİŞİK BİR ŞEY KARŞILAŞTINIZMI?

Başlatan carirt, 17 Eylül 2011, 15:43:44

carirt

 LIST P=16F628A
      INCLUDE   P16F628A.INC
    __CONFIG _INTOSC_OSC_NOCLKOUT  & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _CP_OFF & DATA_CP_OFF
   
;----------------------------------------------------------
BASLA           
           ORG             H'0000'   
           MOVLW           D'7'
           MOVWF           CMCON
           CLRF            PORTB
           BANKSEL         TRISB
           CLRF            TRISB
           MOVLW           B'11111111'
           MOVWF           TRISA
           BANKSEL         PORTB
           MOVLW           PORTA
           MOVWF           PORTB
           GOTO            BASLA
           END
         PROGRAMDA PORTA DAKİ BUTONLARDAN BİRİNE BASILDIMI PORT B DE GÖSTERECEK ÇOK KÜÇÜK PROGRAM
GEL GELELİM İLGİNÇLİĞİ
SADECE RA5 YANİ RESET BUTONUNA BAILDIĞINDA RB0 RB2 LEDLERİ YANIYOR NİYE ÖYLE OLDUĞUNU ANLAMADIM

SpeedyX

Çünkü program kökten yanlış.

* ASM komutlarının ne işe yaradığını
* INITIAL ların tek sefer yapılmasının yeterli olduğunu
* Code tag kullanımını öğrenin.

           MOVLW           PORTA
           MOVWF           PORTB

-Hasan-

#2
MOVLW PORTA
MOVWF PORTB


değil,

MOVF PORTA , W
MOVWF PORTB


olacak.

Verdiğiniz şekilde yaparsanız, RB0 ile RB2 ' nin yanması normaldir. Aslında PORTA bir sabit ismidir. PORTA ' RAM ' da 0x05 adresinde olduğu için, INC dosyasında:

PORTA EQU 0x05


şeklinde tanımlıdır. Bknz. "PIC16F628A.INC"

Bu şekilde tanımlama yapıldığında, programda PORTA yazdığınız her yerin 0x05 olduğu kabul edilir. Yani siz o satırlarda:

MOVLW 0x05
MOVWF PORTB


demiş gibi olursunuz ki siz de de aynen öyle olmuş, PORTB ' ye 0x05 bilgisi gitmiş; RB0 ile RB2 aktif olmuş.  :)

carirt

yürüyen ışık gibi programlar yapabiliyorken basit bir programda takıldım bu arada deneme setim easy pic6 mikroelektronika

-Hasan-


carirt

DEDİĞİN ŞEKİLDE DENEDİM OLDU SAĞOLASIN