12F675 kullanarak buton ile led kontrolü

Başlatan crapsh, 31 Ocak 2013, 14:42:01

crapsh

Merhaba Arkadaşlar,

12F675 de buton ile led kontrolü gibi asm dilinde basit bir program yazmaya çalışıyorum fakat sonuç alamadım. yazdığım program aşağıdadır hata yı gören arkadaşların yardımını istiyorum.

;LED
   LIST   P=12F675
   INCLUDE   "P12F675.INC"
SAYAC1   EQU   H'0C' i
SAYAC2   EQU   H'0D'
   CLRF    GPIO
   BCF     STATUS,RP0
   CLRF    GPIO
   MOVLW   07h
   MOVWF   CMCON
   BSF           STATUS,RP0
   CLRF        ANSEL
   MOVLW   H'01'
   MOVWF   TRISIO
   BCF          STATUS,RP0
BASLA
   BTFSS   GPIO,0
   GOTO   BASLA   
   BSF           GPIO,1   
   BSF           GPIO,2   
   CALL           TIMER
   CLRF    GPIO
   CLRF    GPIO
   GOTO   BASLA
TIMER   
   MOVLW   H'FF'   
   MOVWF   SAYAC1   
TIMER1
   MOVLW   H'FD'
   MOVWF   SAYAC2
TIMER2
   DECFSZ   SAYAC2,F
   GOTO   TIMER2
   DECFSZ   SAYAC1,F
   GOTO   TIMER1
   RETURN
   END
   

Kabil ATICI

Sayac1 ve sayac2 için atadığın adreslere bir bak.
veri kağıtlarında 20h'dan başlıyor görünüyor... (sayfa 8)
ambar7

ipek

pullup'ları açar isen gpio,0 'a direnç koymaya gerek kalmaz

ram bölgesinide macro'layarak kullanabilirsin

config satırını eklemwyi sakın ihmal etme

__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF &_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

 list      p=12f675    ;list directive to define processor
 Errorlevel,-302
#include "p12f675.inc"    ;processor specific variable definitions
;-------------------------------------------------------------------
  CBLOCK H'20'
	SAYAC1   
	SAYAC2 
  ENDC 
;-----------------------------------------------------------------------  
   CLRF    GPIO
   BCF     STATUS,RP0 
   CLRF    GPIO
   MOVLW   07h
   MOVWF   CMCON
	BSF           STATUS,RP0
;----------------------------------------------------------
	movwf	WPU			; Select Weak Pull-up Enabled
	bcf	OPTION_REG,7	; Enable all Weak Pull-up
	movlw	b'00000001'
;----------------------------------------------------------

   CLRF        ANSEL
   MOVLW   H'01'
   MOVWF   TRISIO
   BCF          STATUS,RP0
BASLA
   BTFSS   GPIO,0
   GOTO   BASLA   
   BSF           GPIO,1   
   BSF           GPIO,2   
   CALL           TIMER
   CLRF    GPIO
   CLRF    GPIO
   GOTO   BASLA
TIMER   
   MOVLW   H'FF'   
   MOVWF   SAYAC1   
TIMER1
   MOVLW   H'FD'
   MOVWF   SAYAC2
TIMER2
   DECFSZ   SAYAC2,F
   GOTO   TIMER2
   DECFSZ   SAYAC1,F
   GOTO   TIMER1
   RETURN
   END

crapsh

yazdığınızı aynı şekilde kopyalayıp yapıştırdım fakat çalışmadı acaba hatamı var bi yerde ?

   __CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF &_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

   list      p=12f675    ;list directive to define processor
   Errorlevel,-302
   #include "p12f675.inc"    ;processor specific variable definitions
;-------------------------------------------------------------------
   CBLOCK H'20'
   SAYAC1   
       SAYAC2
     ENDC
;----------------------------------------------------------------------- 
   CLRF   GPIO
      BCF   STATUS,RP0
      CLRF   GPIO
      MOVLW   07h
      MOVWF   CMCON
   BSF   STATUS,RP0
;----------------------------------------------------------
   movwf   WPU         ; Select Weak Pull-up Enabled
   bcf   OPTION_REG,7   ; Enable all Weak Pull-up
   movlw   b'00000001'
;----------------------------------------------------------
   CLRF    ANSEL
   MOVLW   H'01'
   MOVWF   TRISIO
   BCF     STATUS,RP0
BASLA
   BTFSS   GPIO,0
   GOTO   BASLA   
   BSF      GPIO,1   
   BSF      GPIO,2   
   CALL    TIMER
   CLRF    GPIO
   CLRF    GPIO
   GOTO   BASLA
TIMER   
   MOVLW   H'FF'   
   MOVWF   SAYAC1   
TIMER1
   MOVLW   H'FD'
   MOVWF   SAYAC2
TIMER2
   DECFSZ   SAYAC2,F
   GOTO   TIMER2
   DECFSZ   SAYAC1,F
   GOTO   TIMER1
   RETURN
   END

ipek

hemen isis'ledim start verilince gpio2 ve 3 led bağladım yanıyorlar gpio0 'da buton var basınca sönüyor.