diff options
-rw-r--r-- | main.asm | 45 |
1 files changed, 40 insertions, 5 deletions
@@ -2,21 +2,44 @@ processor PIC16F873A #include <p16f873a.inc> __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_OFF & _CP_OFF & _CPD_OFF cblock 0x20 ;definir variaveis - led2 + tempbyte1 + tempbyte2 + ;; tempbyteX vai no timer para contar + byte1t1 + byte2t1 + ;; byteXt1: 2 bytes para armazernar o tempo 1 + byte1t2 + byte2t2 + ;; byteXt2: 2 bytes para armazenar o tempo 2 endc org 0x0 errorlevel -302 ;desabilitar mensagens de avisos na compilacao goto INICIO ;;;;;;;;INICIO DO TIMER;;;;;;;;;;;;;;;; org 0x004 - + ;;toif = 0;;;;;;;;;;;;;;; + movlw b'10100000' + banksel INTCON + movwf INTCON + ;;TMR0 = 255;;;;;;;;;;;;;;;;;;;;;; + movlw d'255' + movwf TMR0 ; nao precisar selecionar o banco, pois INTCON esta no mesmo banco de TMR0 + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ;;ADICIONAR 1 NO tempbyteX + incfsz tempbyte1, 1 + goto PULO + incf tempbyte2, 1 +PULO: + ;;;;;;;;;;;;;;;;;;;;;;;;;; + retfie INICIO: - ; RB0 -> echo + ; RB2 -> echo ; RB1 -> trigger banksel TRISB - movlw b'00000001' ; rb0 = input(recebe) / rb1 = output(manda) + movlw b'00000100' ; rb22= input(recebe) / rb1 = output(manda) movwf TRISB ;; echo e trigger arrumados @@ -50,9 +73,21 @@ INICIO: nop nop ;; 11 us bcf PORTB, RB1 ;; desliga o trigger + + ;;ATIVAR O TIMER;; + movlw b'10100000' + movwf INTCON ;nao precisa selecionar intcon esta no banco do portb ;;;;;;;;;;;;;;;;;;;;; !!!!!!! PQ TA DEMORANDO PARA O TIMER COMECAR + ;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - goto $ +ESPERA_RETORNO1: + btfss PORTB, RB2 ; VERIFICAR SE echo esta em 1 + goto ESPERA_RETORNO1 ; nao + ;;perguntar do timer que esta muito rapido e portanto nao sai dele + ;;perguntar do pq o rb2 esta em 1 quando comeca -> testar isso com um led + ;;DESATIVA O TIMER;; + movlw b'00000000' + movwf INTCON end |