por Rodrigo.rb3s » 09 Jun 2010 08:43
RobL
Altereri os registradores como mandaram, esse pic não tem o "cmcom" o registrador que faz essa função é CCP1CON E O ADCON1 PRA VALOR "6"
mas ainda não resolveu, eu colco chaves e resistor de pull up nos pinos do PORTA e esecuto o programa ele testa sempre o primeiro botao que eu pesso mas não testa os outros mesmo eu invertendo as posiçoes ele só testa um e para...
BTFSC PORTA,0
OU BTFSC PORTA,1 eu ainda não sei porque, ai está o Codigo que eu alterei...
INCLUDE <P16F76.INC>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _XT_OSC
ERRORLEVEL -302
;*************************************************************************
; LOCAL PARA DEFINIR VARAVEIS
;
CBLOCK 0X20
TMPLCDREGISTER
MSDELAYCOUNTER
ENDC
;LOCAL PARA DEFINIR CONSTANTES
#DEFINE BANK0 BCF STATUS,RP0
#DEFINE BANK1 BSF STATUS,RP0
#DEFINE LCD_RS PORTB,2 ;PIC RB2(17) NO LCD PINO(4) RS
#DEFINE LCD_E PORTB,3 ;PIC RB3(18) NO LCD PINO(6) ENABLE
#DEFINE LCD_DB4 PORTB,4 ;PIC RB4(10) NO LCD PINO(11)
#DEFINE LCD_DB5 PORTB,5 ;PIC RB5(11) NO LCD PINO(12)
#DEFINE LCD_DB6 PORTB,6 ;PIC RB6(12) NO LCD PINO(13)
#DEFINE LCD_DB7 PORTB,7 ;PIC RB7(13) NO LCD PINO(14)
;
;
;*************************************************************************
;*************************************************************************
;
ORG 0X00
GOTO INICIO
ORG 0X04
NOP
RETFIE
;
; PORT B'76543210'
;
INICIO
MOVLW 0X00
MOVWF CCP1CON
CLRF PORTB
CLRF PORTB
CLRF PORTB
BANK1
MOVLW 0X00
MOVWF OPTION_REG
MOVLW 0X00
MOVWF INTCON
MOVLW 0x06
MOVWF ADCON1
MOVLW 0XFF
MOVWF TRISA
MOVLW 0X00
MOVWF TRISB
MOVLW 0X00
MOVWF TRISC
BANK0
;
;*************************************************************************
; COMEÇO DO PROGRAMA
;*************************************************************************
CALL LCDINIT ; ROTINA QUE INICIALIZA DISPLAY LCD
; PRIMEIRA CHAMADA OBRIGATÓRIA
; AO INICIAR O PROGRAMA
;*************************************************************************
CALL SISTEMAPRONTO ; PRIMEIRA MENSAGEM NO DISPLAY DE ;LCD
;*************************************************************************
;
CLRF PORTC
LOOP
BTFSC PORTA,1 ; TESTA O PORTA,0 SE ESTÁ EM 0
GOTO LOOP ; NAO
MOVLW H'FF'
CALL MSDELAY
CALL PROCESSO_EM_ANDAMENTO
GOTO PROCESSO
BSF PORTC,4
BTFSC PORTA,0
GOTO SENSOR2
BSF PORTB,0
GOTO SENSOR2
SENSOR2
BTFSC PORTA,2
GOTO LOOP
BSF PORTB,1
GOTO PROCESSO
PROCESSO
CALL PROCESSO_EM_ANDAMENTO
BSF PORTC,3
BCF PORTB,1
MOVLW H'FF'
CALL MSDELAY
CALL MSDELAY
CALL MSDELAY
BCF PORTC,3
BSF PORTB,1
GOTO SENSOR3
SENSOR3
BTFSC PORTA,3
GOTO PROCESSO
BCF PORTC,3
BCF PORTB,0
BCF PORTB,1
CALL PROCESSO_FINALIZADO
GOTO LOOP
byte