Anda di halaman 1dari 5

; SENSOR DE temperatura

; elkin vivas y angela garcia


; escuela de tecnologia electrica
; universidad tecnologica de pereira
; DEFINICION DE REGISTROS UTILIZADOS
pcl
equ
02h
status equ
03
ptoa
equ
05
ptob
equ
06
ptoc
equ
07
ptod
equ
08
ptoe
equ
09
pclath equ
0ah
intcon equ
0bh
pir1
equ
0ch
rcsta equ
18h
txreg equ
19h
rcreg equ
1ah
adresh equ
1eh
adcon0 equ
1fh
trisa equ
85h
trisb equ
86h
trisc equ
87h
trisd equ
88h
trise equ
89h
txsta equ
98h
spbrg equ
99h
adresl equ
9eh
adcon1 equ
9fh
; Definicion de bits utilizados
rp0
equ
5
rp1
equ
6
irp
equ
7
z
equ
2
c
equ
0
txif
equ
4
go
equ
2
; Variables del usuario
loops equ
30h
loops2 equ
31h
loops3 equ
36h
dig0
equ
32h
dig1
equ
33h
buffer equ
35h
; Configuracion para el simulador Proteus
list p=16f877
_CP_ALL
EQU
H'0FCF'
_CP_HALF
EQU
H'1FDF'
_CP_UPPER_256
EQU
H'2FEF'
_CP_OFF
EQU
H'3FFF'
_DEBUG_ON
EQU
H'37FF'
_DEBUG_OFF
EQU
H'3FFF'
_WRT_ENABLE_ON
EQU
H'3FFF'
_WRT_ENABLE_OFF
EQU
H'3DFF'
_CPD_ON
EQU
H'3EFF'
_CPD_OFF
EQU
H'3FFF'
_LVP_ON
EQU
H'3FFF'
_LVP_OFF
EQU
H'3F7F'
_BODEN_ON
EQU
H'3FFF'

_BODEN_OFF
_PWRTE_OFF
_PWRTE_ON
_WDT_ON
_WDT_OFF
_LP_OSC
_XT_OSC
_HS_OSC
_RC_OSC

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

H'3FBF'
H'3FFF'
H'3FF7'
H'3FFF'
H'3FFB'
H'3FFC'
H'3FFD'
H'3FFE'
H'3FFF'

__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON


; posicion
org
00
;inicia desde la
posicion 00
goto
inicio
;ir a inicio
; retardo
retarms nop
;nada
movwf
loops
;retardo de milis
egundos cargado desde afuera
otro2
movlw
d'110'
;carga a w con 11
0
movwf
loops2
;mueva w a posici
on loops2
otro
nop
;nada
nop
;nada
nop
;nada
nop
;nada
nop
;nada
nop
;nada
decfsz
loops2,1
;decrementa loop
s2 y guarda en f
goto
otro
;ir a otro
decfsz
loops,1
;decrementa loop
s y guarda en f
goto
otro2
;ir a otro2
return
;retorna
; convertir A/D
conver
nop
;nada
bsf
ptod,1
;enciende el led
de convirtiendo
bcf
ptod,2
;apagar el led de
convirtio
clrf
36h
;limpiar posicion
36
movlw
d'5'
;carge a w 5
call
retarms
;llamar retardo
bsf
adcon0,2
;empezar a conver
tir A/D
nop
;nada
nop
;nada
pereira nop
;nada
btfsc
adcon0,go
;pregunta si ya c
onvirtio
goto
pereira
;ir a pereira
bcf
ptod,1
;apagar el led de
convirtiendo
bsf
ptod,2
;enciende el led
de convirtio
movf
adresh,0
;pasa adresh a w
movwf
36h
;pasar w a 36h

call
motor
;llamar a rurina
motor
return
;retorna
; encender motor
motor
nop
;nada
movlw
d'30'
;carga w con 31
subwf
36h,w
;compara 31 con l
o convertido
btfss
status,c
;pregunta si esta
en 0
bsf
ptod,0
;encienda el moto
r
movlw
d'31'
;carga w con 31
subwf
36h,w
btfsc
status,c
bcf
ptod,0
return
;retorna
;retorna
; tabla rutina para display
tabla
nop
;nada
addwf
pcl,1
;suma W y pcl y g
uarda en f
retlw
b'11000000'
;retorna y carga
con 0 a w
retlw
b'11111001'
;retorna y carga
con 1 a w
retlw
b'10100100'
;retorna y carga
con 2 a w
retlw
b'10110000'
;retorna y carga
con 3 a w
retlw
b'10011001'
;retorna y carga
con 4 a w
retlw
b'10010010'
;retorna y carga
con 5 a w
retlw
b'10000010'
;retorna y carga
con 6 a w
retlw
b'11111000'
;retorna y carga
con 7 a w
retlw
b'10000000'
;retorna y carga
con 8 a w
retlw
b'10010000'
;retorna y carga
con 9 a w
; binario
musica nop
;nada
clrf
37h
;limpia registro
37h
clrf
38h
;limpia registro
37h
clrf
status
;limpia registro
status
des
nop
;nada
movlw
d'10'
;carge w con 10
subwf
36h,1
;reste w con 36h
y guarde en 36h
incf
37h
;incremente 37h
btfsc
status,c
en cero c del registro estatus
goto
des
decf
37h

;pregunta si esta
;ir a des
;decremente 37h

movlw
d'10'
;carge w con 10
addwf
36h,0
;suma w con 36h y
guarde en w
return
;retorna
; display
display nop
;nada
bsf
ptoc,0
;apage display 0
movf
36h
;mueva 36h a w
call
tabla
;llama tabla
movwf
ptob
;pasar w a puerto
B
bcf
ptoc,1
;prenda display 1
movlw
d'5'
;carge w con 5
call
retarms
;llama retardo
bsf
ptoc,1
;apage display 1
movfw
37h
;mover 37h a w
call
tabla
;llama tabla
movwf
ptob
;pasar w a puerto
B
bcf
ptoc,0
;preda display 0
movlw
call

d'5'
retarms

;carge w con 5
;llama retardo
return
;retorna
; configuracion de puertos
inicio nop
;nada
clrf
status
;limpia status
bcf
status,6
;pone en 0 statu
s,6
bsf
status,5
;pone en 1 statu
s,5 banko1
movlw
b'11111111'
;carga a w con co
nfiguracion puerto a
movwf
trisa
;mueva w a trisa
movlw
b'00000000'
;carga a w con co
nfiguracion puerto b
movwf
trisb
;mueva w a trisb
movlw
b'11111100'
;carga a w con co
nfiguracion puerto c
movwf
trisc
;mueva w a trisc
movlw
b'11111000'
;carga a w con co
nfiguracion puerto d
movwf
trisd
;mueva w a trisd
movlw
b'11101111'
;carga a w con co
nfiguracion puerto e
movwf
trise
;mueva w a trise
movlw
b'00001101'
;escoger tension
externa
movwf
adcon1
;mueva w a adcon1
bcf
status,5
;pone en 0 status
,5 banko0
; inicio del programa
clrf
ptob
;limpiar puerto B
movlw
d'0'
;cargar w con 0
call
tabla
;llamar tabla
movwf
ptob
;pasar w a puerto
B
ciclo2 clrf
ptoc
;limpiar puerto C
movlw
b'10000001'
;carga w con conf
iguracion activar convercion

movwf

adcon0

;escoger reloj F

call
call

conver
musica

;llamar a conver
;llamar a musica

call
goto

display
ciclo2

;llamar a display
;ir a ciclo2

osc / 32

end

;fin