blob: 694c0ac27c481b7f2fd3c6088a83325d165846f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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
endc
org 0x0
errorlevel -302 ;desabilitar mensagens de avisos na compilacao
goto INICIO
;;;;;;;;INICIO DO TIMER;;;;;;;;;;;;;;;;
org 0x004
retfie
INICIO:
; RB0 -> echo
; RB1 -> trigger
banksel TRISB
movlw b'00000001' ; rb0 = input(recebe) / rb1 = output(manda)
movwf TRISB
;; echo e trigger arrumados
;;setar timer
;;;;option_reg
movlw b'00000000' ; prescaler = 2 para ficar o mais rapido possivel
banksel OPTION_REG
movwf OPTION_REG
;;;;intcon
movlw b'00000000' ; rotinas de interrupcoes estao desativadas por enquanto
banksel INTCON ; e todas as rotinas de interrupcao estao desativadas
movwf INTCON
;;;;TMR0
movlw d'255' ; para o timer ficar o mais rapido possivel
banksel TMR0 ; Nint = 500000
movwf TMR0
;;ATIVAR O TRIGGER;;;
banksel PORTB
bsf PORTB, RB1 ; ligou o trigger
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop ;; 11 us
bcf PORTB, RB1 ;; desliga o trigger
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
goto $
end
|