Eğer PIC'i 4MHz osilatör ile kullanıyorsanız, bacakları GND'ye bağlamayın.
GND ile osilatör bacakları arasına 15pF kondansatör bağlayın.
Aşağıdaki resimdeki gibi...
YARARMAN kardeş ben zaten resimdeki gibi yaptım. dediğiniz gibi 4 mhz kullanıyorum ve 33pF kondansatör kullanıyorum ama GND dediğiniz VSS olmuyormu onunla osilatörün ne alakası var?
evet saolasın gerçekten oldu problem osilatör konfigirasyonundaymış ama şuan da program kendine sürekli res atıyor yani porta nın 0. pini +5V ise ledlerin sönmesi ve sonsuz döngüde kalması lazımken isisde ve gerçek devrede program sürekli seslenip l7edler tekrar yanıyor konlar aşağıda devre senin verdiğin gibi kurulu sadece porta ya 1 adet +5 volt giden butun var. Bunun nedeni ne olabilir?
---------------------
;**********************************************************************
; *
; This file is a basic code template for assembly code generation *
; on the PIC16F84A. This file contains the basic code *
; building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler (Document DS33014). *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;**********************************************************************
; *
; Filename: xxx.asm *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
; *
;**********************************************************************
; *
; Files required: P16F84A.INC *
; *
; *
; *
;**********************************************************************
; *
; Notes: *
; *
; *
; *
; *
;**********************************************************************
list p=16F84A ; list directive to define processor
#include <p16F84a.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _XT_OSC
; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.
;***** VARIABLE DEFINITIONS
w_temp EQU 0x0C ; variable used for context saving
status_temp EQU 0x0D ; variable used for context saving
;**********************************************************************
RESET_VECTOR CODE 0x0000 ; processor reset vector
goto start ; go to beginning of program
ISR CODE 0x0004 ; interrupt vector location
Interrupt:
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
; Place ISR Here
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
Projeyi Proteus'da hem de MPLAB'ta baştan hazırladım.
Bir önceki kodumda WatchDog'u açık unutmuşum.
Onu düzelttim, şimdi istediğin gibi çalışıyor.
Yeni projeyi, aşağıdaki bağlantıdan indirebilirsin.
Kod:
list p=16F84A
#include <p16F84a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
ORG 0x00
CLRF PORTB
BSF STATUS,5
CLRF TRISB
MOVLW 0xFF
MOVWF TRISA
BCF STATUS,5
MAIN
MOVLW 0x03
MOVWF PORTB
CONTROL
BTFSS PORTA,0
GOTO CONTROL
MOVLW 0x00
MOVWF PORTB
DONGU
GOTO DONGU
END