Página 1 de 1

Simulação no Proteus - 16F628A

MensagemEnviado: 29 Mar 2009 13:13
por hsena
Olá galera estou começando a aprender assembly para PIC.
Fiz um programa para piscar um led pelos pinos RA0, RA1 ou RA2, pro PIC16F628A, aparentemente a simulação efetuada no MPLAB ocorreu tudo bem, só que quando simulo no PROTEUS os pinos RA setados no programa não da sinal de vida.

Abaixo segue o programa teste, montado no MPLAB 8.20

Código: Selecionar todos

  LIST P=16F628a           
  RADIX HEX                 
  #INCLUDE <P16F628A.INC>   
  __CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_ON & _XT_OSC

;-----------------------------DEFINIÇÕES--------------------------------------------------


#DEFINE    BANK0  BCF STATUS,RP0
#DEFINE    BANK1  BSF STATUS,RP0
#DEFINE      LED   PORTA,0    

;--------------------------------------------------------------------


;------------------------VETOR RESET---------------------------------
   ORG 0x00
   GOTO MAIN   
;--------------------------------------------------------------------


;-------------------------INICIO-------------------------------------

INICI0:
      
      BANK1
      
      MOVLW   B'00000000'
      MOVWF   INTCON         
      
      MOVLW   B'00000000'      
      MOVWF   TRISA
      
      BANK0
      
      MOVLW   B'00000111'      
      MOVWF   CMCON

;--------------------------------------------------------------------

      CLRF   PORTA    

;-----------------------------------MAIN-----------------------------
MAIN:

      GOTO ACENDE_LED
         
         
APAGA_LED:
         
      BCF      LED
      GOTO   MAIN
         
ACENDE_LED:
   
      BSF      LED
      GOTO   APAGA_LED
         

   END


Desde de já agradeço.

MensagemEnviado: 29 Mar 2009 13:35
por MOR_AL
Olá hsena.

1 - O programa tem "main" e "Início" ... E não vai passar por "Início", pois tem a instrução goto main. Retire o primeiro "goto Main"

2 - O led vai acender e apagar tão rápido que vai parecer que está "meio" aceso. Coloque um intervalo de tempo de, digamos, meio segundo após a alteração do estado do pino que contém o led.

3 - Tente usar a instrução "CALL", que fica um pouco mais fácil de acompanhar o programa, apesar deste ser elementar.

MOR_AL