Académique Documents
Professionnel Documents
Culture Documents
COMPONENTE PRCTICO
INTEGRANTES
JOHN ALEXANDER RUBIO CHAVEZ
74185810
YAMID URIEL BARRERA
74085337
NOVIEMBRE DE 2014
Ejercicio 1.2.2: Control de un teclado matricial mnimo 4x3 (comercialmente como teclado
telefnico) o 4x4 y control de acceso por clave de seguridad de cuatro (4) dgitos, ver
apartado de acciones que debe ejecutarse en la prctica, el teclado en el caso del 4x3 debe
contener:
Los diez (10) dgitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).
Una tecla # (en teclados comerciales) se tomara como accin de ingreso de clave para ser
evaluada por el sistema microcontrolado.
Una tecla * (en teclados comerciales) se tomara como accin de borrado de clave y
regreso a estado inicial, para recibir un nuevo intento de clave.
Los indicadores que deben tenerse son del tipo LED, solo uno de ellos debe encender a la vez
y su funcin se describe como:
LED Amarillo o Azul, indica que el sistema y teclado est listo para recibir una nueva clave.
LED Verde, indica que el usuario a digitado una clave correcta.
LED Rojo, indica que el usuario a digitado una clave incorrecta.
Las acciones que debe cumplir la prctica son:
Grabar una clave de 4 dgitos en la memoria no voltil del micro o EEPROM, para el ejercicio
la clave debe ser semestre/ao, por ejemplo para el segundo semestre de 2014 seria (0214).
Codigo
LIST P=16F84a
INCLUDE "P16F84a.INC"
__config _CP_OFF &_PWRTE_OFF& _WDT_OFF & _XT_OSC
RADIX HEX
errorlevel -302
pc
equ 2h
status equ 3h
ptoa equ 5h
ptob equ 6h
trisa equ 85h
trisb equ 86h
opt_reg equ 81h
cta1 equ 20h
cta2 equ 21h
Tecla equ 22h
digi1 equ 23h
digi2 equ 24h
digi3 equ 25h
digi4 equ 26h
Paso equ 27h
z
equ 02h
;flag de cero
ORG
05h
;Tecla n0 = 0
;Tecla n1 = 1
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
'4'
'7'
'*'
'2'
'5'
'8'
'0'
'3'
'6'
'9'
'#'
;Tecla n2 = 4
;Tecla n3 = 7
;Tecla n4 = A
;Tecla n5 = 2
;Tecla n6 = 5
;Tecla n7 = 8
;Tecla n8 = 0
;Tecla n9 = 3
;Tecla n10 = 6
;Tecla n11 = 9
;Tecla n12 = B
;Primera columna = 0
;Sale si se ha pulsado tecla.
;Si no tecla pulsada, incrementa tecla.
;Segunda columna = 0
GOTO
INCF
BTFSS
GOTO
INCF
BTFSS
GOTO
INCF
antirebotes
Tecla,1
PORTB,2
antirebotes
Tecla,1
PORTB,1
antirebotes
Tecla,1
Ultima_Tecla
MOVLW d'13'
SUBWF Tecla,0
BTFSC STATUS,2
GOTO NTeclas
BSF STATUS,0
RRF PORTB,1
GOTO Cheq_Col
NTeclas
Movlw 'Z'
MOVWF Tecla
RETURN
antirebotes
RETURN
INICIO
bsf
status, 5
;selecciona el banco de memoria 1
movlw 00h
;ra3 intrada ,configura el puerto a
movwf trisa
;bit 3 entrada, demas bits salidas.
movlw 1eh
;configura el puerto b
movwf trisb
;como salidas
bcf
opt_reg,7
;activamos resistencias PULL UP
bcf
status, 5
;selecciona el banco de memoria 0
clrf ptoa
clrf ptob
;------------------------Senal de buen inicio
bsf
ptoa,0
movlw .150
movwf cta1
call retardo
bcf
ptoa,0
movlw .50
movwf cta1
call retardo
bsf
ptoa,0
movlw .150
movwf cta1
call retardo
;---------movlw 00h
movwf EEADR
movlw '0'
movwf EEDATA
Call EscDato
movlw 01h
movwf EEADR
movlw '2'
movwf EEDATA
Call EscDato
movlw 02h
movwf EEADR
movlw '1'
movwf EEDATA
Call EscDato
movlw 03h
movwf EEADR
movlw '3'
movwf EEDATA
Call EscDato
;---------ciclo clrf digi1
clrf digi2
clrf digi3
clrf digi4
clrf Paso
bsf
ptoa,0
ciclox1 call KB_Scan
movlw 'Z'
xorwf Tecla,0
btfsc status, z
Goto ciclox1
movlw '*'
xorwf Tecla,0
btfsc status, z
Goto NueCla
movlw '#'
;verificar clave
xorwf Tecla,0
btfsc status, z
Goto Confir1
movfw Tecla
movwf digi1
incf Paso,1
goto ciclox1
verel2 movlw 01h
xorwf Paso,0
btfss status, z
Goto verel3
movfw Tecla
movwf digi2
incf Paso,1
goto ciclox1
verel3 movlw 02h
xorwf Paso,0
btfss status, z
Goto verel4
movfw Tecla
movwf digi3
incf Paso,1
goto ciclox1
verel4 movlw 03h
xorwf Paso,0
btfss status, z
Goto verel4
movfw Tecla
movwf digi4
goto ciclox1
Confir1 movlw 00h
Call LeeDato
Movfw Tecla
xorwf digi1,0
btfss status, z
goto ledrojo
movlw 01h
Call LeeDato
Movfw Tecla
xorwf digi2,0
btfss status, z
goto ledrojo
movlw 02h
Call LeeDato
Movfw Tecla
xorwf digi3,0
btfss status, z
goto ledrojo
movlw 03h
Call LeeDato
xorwf digi4,0
btfss status, z
goto ledrojo
goto ledverde
NueCla
movlw 00h
movwf EEADR
movfw digi1
movwf EEDATA
Call EscDato
movlw 01h
movwf EEADR
movfw digi2
movwf EEDATA
Call EscDato
movlw 02h
movwf EEADR
movfw digi3
movwf EEDATA
Call EscDato
movlw 03h
movwf EEADR
movfw digi4
movwf EEDATA
Call EscDato
goto ledverde
ledrojo bcf
ptoa,0
bsf
ptoa,2
movlw .250
movwf cta1
call retardo
movlw .250
movwf cta1
call retardo
bsf
bcf
ptoa,0
ptoa,2
Goto
ciclo
ledverde
bcf
bsf
ptoa,0
ptoa,1
movlw .250
movwf cta1
call retardo
movlw .250
movwf cta1
call retardo
bsf
bcf
ptoa,0
ptoa,1
Goto
ciclo
end