Decodificador Teclado Asembler Pic16f877a
Decodificador Teclado Asembler Pic16f877a
Decodificador Teclado Asembler Pic16f877a
Ttulo
Diseo de un decodificador de teclado con el PIC 16F877A
2. Objetivos
2.1. General
Disear un decodificador de teclado, que nos permita interactuar un microcontrolador con un
teclado matricial.
2.2 Especfico
Implementar el decodificador de teclado diseado para observar su funcionamiento.
3. Diagrama de Bloques
OSCILADOR 4 MHz
1.- Declaramos al PUERTO B como entrada y como salida (4 bits menos significativos salida), (4
bits ms significativos entrada).
b6
1
0
1
1
b5
1
1
0
1
b4
1
1
1
0
4.-Para la deteccin de cada tecla vemos que bit se pone en cero tanto en filas como en columnas
y procedemos a ver la decodificacin del nmero indicado.
Si obtenemos en columnas:
1
Y en filas:
Este bit nos sirve para saber cundo estemos presionando una tecla en este caso hemos tomado
el bit4 de la salida del PUERTOD.
5. Valor de los registros de configuracin
TRISD=0X00H (PUERTO D COMO SALIDA)
TRISB=b00001111 (PUERTO B COMO SALIDA 4 BITS MENOS SIGNIFICATIVOS Y 4 BITS
MAS SIGNIFICATIVOS ENTRADA)
6. Diagrama de flujo
INICIO
CONFIGURO:
PUERTODOUT
PUERTOB
BITS MENOS SIGNIFICATIVOSOUT
BITS MS SIGNIFICATIVOSIN
RESISTENCIA PULL-UP
1
1
LECTURA
PORTD BIT4 =0
SALIDA
PORTB = .7
NUEVO
NO
NO
SI
BIT7 PORTB==0
PORTD = .16
SALTO A
NUEVO
SI
PASO1
NO
BIT6 PORTB==0
PORTD BIT4=0
SI
PORTD = .20
NO
SALTO A
PASO1
PASO2
PORTD BIT4=0
NO
BIT5 PORTB==0
SI
PORTD = .24
PASO3
NO
SALTO A
PASO2
PORTD BIT4=0
NO
BIT4 PORTB==0
SI
PORTD = .28
SI
PASO4
PORTD BIT4=0
SALIDA
PORTB= .11
NO
SALTO A
PASO3
NO
BIT7
PORTB==0
SI
NO
PORTD =
.17
PASO 5
NO
BIT6
PORTB==0
SALTO A
PASO4
PORTD BIT4=0
SI
PORTD =
.21
NO
SALTO A
PASO5
PASO 6
PORTD BIT4=0
NO
BIT5
PORTB==0
SI
NO
PORTD =
.25
PASO 7
SALTO A
PASO6
PORTD BIT4=0
NO
BIT4
PORTB==0
SI
PORTD =
.29
NO
SALTO A
PASO7
SI
PASO 8
PORTD BIT4=0
SALIDA
PORTB= .13
NO
BIT7
PORTB==0
SI
NO
PORTD =
.18
PASO 9
SALTO A
PASO8
PORTD BIT4=0
NO
BIT6
PORTB==0
SI
PORTD =
.22
SI
PASO 10
PORTD BIT4=0
3
NO
NO
PORTD = .26
BIT5 PORTB==0
SALTO A
PASO10
SI
PASO 11
PORTD BIT4=0
SI
NO
SI
NO
PORTD = .30
BIT4 PORTB==0
SALTO A
PASO11
SI
PASO 12
PORTD BIT4=0
SALIDA
PORTB= .14
NO
NO
PORTD = .19
BIT7 PORTB==0
SALTO A
PASO12
SI
PASO 13
PORTD BIT4=0
SI
NO
SI
NO
PORTD = .23
BIT6 PORTB==0
SALTO A
PASO13
SI
PASO 14
PORTD BIT4=0
NO
NO
SI
PORTD = .27
BIT5 PORTB==0
SI
PASO 15
PORTD BIT4=0
SI
PORTD = .31
NO
BIT4 PORTB ==1
BIT4 PORTB==0
SI
NO
SALTO A
LECTURA
SALTO A
PASO14
SALTO A
LECTURA
SALTO A
PASO15
7. Conclusiones y Recomendaciones
Se logr implementar el circuito requerido con el microcontrolador PIC16F877A, el cual
muestra el correcto funcionamiento del programa especfico de la presente prctica.
Se logr entender el correcto funcionamiento de la prctica, adems de cmo configurar
y habilitar sus puerto en este caso el mismo puerto para entrada y salida.
Tomar en cuenta la sintaxis de las distintas instrucciones y si las mismas estn
orientadas a registros, bits o constantes.
8. Anexos
a. Programa
;TITULO
LABORATORIO 2.1
;DESCRIPCION
DECODIFICADOR TECLADO MATRICIAL
;AUTORES
STALIN CAZA - EDUARDO BERRONES
;FECHA
17/12/2014
;CONSIDERACIONES ESPECIALES
SALIDA PUERTO D 5BITS
;4 MUESTRAN NUMERO Y 1 MUESTRA SI ESTA PULSADO
;PUERTO B COMO ENTRADA Y SALIDA PARA
;EL TECLADO MATRICIAL
;========== ENCABEZADO =======
list p=16F877A
;Procesador
INCLUDE "P16F877A.Inc"
;Importa las librerias del pic
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;Palabra de configuracion del pic
;========== DECLARACION DE VARIABLES =========
;======== DESARROLLO DEL PROGRAMA ===================
ORG
00
GOTO
INICIO
;Salto a inicio del programa
ORG
05
INICIO
;======= CONFIGURACION DE PUERTOS =================
bsf
STATUS,RP0 ;Voy al Banco1
movlw
b'11110000' ;W = 11110000,bits menos signif como salida
movwf
TRISB
;Trisc=W, bits mas signif como entrada
movlw
b'00000000'
movwf
TRISD
;Puerto D como salida
bcf
OPTION_REG,NOT_RBPU; Habilito resistencias pull up
bcf
STATUS,RP0 ;Regreso al Banco0
clrf
PORTD
LECTURA
bcf
PORTD,4
movlw
.7
movwf
PORTB
NUEVO
btfsc
PORTB,7 ;COMPARA SI ES CERO EL BIT7 DEL PUERTOB
goto
movlw
movwf
btfss
goto
bcf
PASO1
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO2
PORTB,6
PASO2
.20
PORTD
PORTB,6
PASO1
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO6
PORTB,6
PASO6
.21
PORTD
PORTB,6
PASO5
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO3
PORTB,5
PASO3
.24
PORTD
PORTB,5
PASO2
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO7
PORTB,5
PASO7
.25
PORTD
PORTB,5
PASO6
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PORTB,4
PASO4
.28
PORTD
PORTB,4
PASO3
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO8
PORTB,4
PASO8
.29
PORTD
PORTB,4
PASO7
PORTD,4
movlw
movwf
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO9
btfsc
goto
.13
PORTB
PORTB,7
PASO9
.18
PORTD
PORTB,7
PASO8
PORTD,4
PASO4
movlw
movwf
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO5
.11
PORTB
PORTB,7
PASO5
.17
PORTD
PORTB,7
PASO4
PORTD,4
PORTB,6
PASO10
movlw
.22
movwf
PORTD
btfss
PORTB,6
goto
PASO9
bcf
PORTD,4
PASO10
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO11
btfsc
goto
PORTB,5
PASO11
.26
PORTD
PORTB,5
PASO10
PORTD,4
PORTB,4
PASO12
PASO13
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO14
PORTB,6
PASO14
.23
PORTD
PORTB,6
PASO13
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
bcf
PASO15
PORTB,5
PASO15
.27
PORTD
PORTB,5
PASO14
PORTD,4
btfsc
goto
movlw
movwf
btfss
goto
goto
PORTB,4
LECTURA
.31
PORTD
PORTB,4
PASO15
LECTURA
end
movlw
.30
movwf
PORTD
btfss
PORTB,4
goto
PASO11
bcf
PORTD,4
PASO12
movlw
movwf
btfsc
goto
movlw
movwf
btfss
goto
bcf
.14
PORTB
PORTB,7
PASO13
.19
PORTD
PORTB,7
PASO12
PORTD,4
ON
b. Diagrama electrnico
C1
D
22pF
CRYSTAL
13
14
C2
2
3
4
5
6
7
22pF
R6
10k
8
9
10
1
U1
OSC1/CLKIN
OSC2/CLKOUT
C
1
X1
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
33
34
35
36
37
38
39
40
R1
330
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
PIC16F877A
R2
330
R3
330
R4
330
U5
7
1
2
6
4
5
3
A
B
C
D
BI/RBO
RBI
LT
7448
D1
LED-GREEN
CONTROL
R5
330
QA
QB
QC
QD
QE
QF
QG
13
12
11
10
9
15
14