Vous êtes sur la page 1sur 10

1.

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

4. Marco terico del algoritmo reconocimiento de la tecla

1.- Declaramos al PUERTO B como entrada y como salida (4 bits menos significativos salida), (4
bits ms significativos entrada).

2.- Cuando tenemos en los bits de la salida del PUERTOB lo siguiente:


b3 b2 b1 b0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
3.- Cuando tenemos lo siguiente en los bits de entrada del PUERTOB
b7
0
1
1
1

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:

Vamos a ver claramente que nos va imprimir el numero 5

Y as sucesivamente para todas las teclas


Bit de control:

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

BIT7 PORTB ==1

SALTO A
NUEVO

SI

PASO1

NO
BIT6 PORTB==0

PORTD BIT4=0

SI

PORTD = .20

BIT6 PORTB ==1


SI

NO
SALTO A
PASO1

PASO2
PORTD BIT4=0

NO
BIT5 PORTB==0

SI

PORTD = .24

BIT5 PORTB ==1


SI

PASO3

NO
SALTO A
PASO2

PORTD BIT4=0

NO
BIT4 PORTB==0

SI

PORTD = .28

SI

PASO4
PORTD BIT4=0
SALIDA
PORTB= .11

BIT4 PORTB ==1

NO
SALTO A
PASO3

NO

BIT7
PORTB==0

SI

NO

PORTD =
.17

BIT7 PORTB ==1


SI

PASO 5

NO

BIT6
PORTB==0

SALTO A
PASO4

PORTD BIT4=0

SI

PORTD =
.21

BIT6 PORTB ==1


SI

NO
SALTO A
PASO5

PASO 6
PORTD BIT4=0

NO

BIT5
PORTB==0

SI

NO

PORTD =
.25

BIT5 PORTB ==1


SI

PASO 7

SALTO A
PASO6

PORTD BIT4=0

NO
BIT4
PORTB==0

SI

PORTD =
.29

BIT4 PORTB ==1

NO
SALTO A
PASO7

SI

PASO 8
PORTD BIT4=0
SALIDA
PORTB= .13

NO

BIT7
PORTB==0

SI

NO

PORTD =
.18

BIT7 PORTB ==1


SI

PASO 9

SALTO A
PASO8

PORTD BIT4=0

NO
BIT6
PORTB==0

SI

PORTD =
.22
SI

PASO 10
PORTD BIT4=0

BIT6 PORTB ==1 NO


SALTO A
PASO9

3
NO

NO

PORTD = .26

BIT5 PORTB==0

SALTO A
PASO10

SI

PASO 11

PORTD BIT4=0

SI
NO

BIT5 PORTB ==1

SI

NO

PORTD = .30

BIT4 PORTB ==1

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

BIT7 PORTB ==1

SI

NO

PORTD = .23

BIT6 PORTB ==1

BIT6 PORTB==0

SALTO A
PASO13

SI

PASO 14

PORTD BIT4=0
NO

NO

BIT5 PORTB ==1

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 ;SI ES 1 SALTA A PASO1


.16 ;SI ES CERO SACA COMO NUMERO EL 0
PORTD ;Y COMO PRESIONADO = 1
PORTB,7 ;COMPARA SI EL BIT 7 AUN ES CERO Y SEQUEDA EN EL CICLO
NUEVO ;CASO CONTRARIO PASA A BUSCAR EL NUMERO PRESIONADO
PORTD,4

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

Vous aimerez peut-être aussi