SlideShare una empresa de Scribd logo
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
Extra: Piano con teclado matricial 4x4 y LCD 2x16
Cruz Bazán Iván Rodrigo
Academia de Ingeniería Eléctrica y Electrónica,
Bioingeniería-UPIBI
México D. F.
E-mail: yban_sito@hotmail.com (Rodrigo)
Resumen
Se realiza un programa que detecte las pulsaciones en un teclado matricial 4x4 y cada tecla tendrá un sonido diferente,
esta se escuchara en un buzzer que por medio de variación de frecuencias que se implementara por medio de
interrupciones por desbordamiento de timer 0, tendrá diferentes sonidos, en el LCD se desplegara la nota
correspondiente a la tecla al mismo tiempo que reproduce el sonido.
Palabras clave: Teclado matricial, lcd 2x16, piano, buzzer, TMR0, interrupciones, rutina antirrebotes.
I. INTRODUCCIÓN
Las interrupciones en un programa ayudan a
atender un evento, que en el caso del
microcontrolador, son provocados por diversas
circunstancias internas o externas a este, en el caso de
externas son provocadas por un cambio de estado en
el pin RA4 o en los pines RB4:RB7, y en las
interrupciones internas son provocados por el
desbordamiento de timer.[1]
Los timer son contadores ascendentes de 8 o 16
bits que cuando ocurre un desbordamiento indican con
un bit que a ocurrido el desbordamiento, ese bit se
encuentra en el registro INTCON que es el registro
que se encarga de activar y señalizar con banderas las
interrupciones.
Nosotros usaremos las interrupción es globales y
las interruciones locales, una interrupción global es
cuando al momento de producir una interrupción
accesa al vector interrucion además de encender
cualquiera de las banderas del INTCON
correspondiente a la interrupción, y en la interrupción
local no se envia al vector inicio, pero si se activa la
bandera correspondiente a la interrupción en el
registro INTCON.
Los teclados matriciales utilizan una combinación
de cuatro filas y cuatro columnas para proporcionar
estados de botón para el host del dispositivo,
típicamente un microcontrolador. Debajo de cada tecla
es un botón pulsador, con un extremo conectado a una
fila, y el otro extremo conectado a una columna. Estas
conexiones se muestran en la Figura 1. [2]
Como el teclado es una parte física, tiende a
mantener ruido en sus terminales provocando que
afecte ejecución ideal del programa, debido a eso se
emplean rutina antirrebotes manipulando un contador.
Los buzzer son pequeñas bocinas o zumbadores
que su tarea principal es como indicador auditivo,
pero puede se manipulado para producir diferentes
sonidos.
Figura 1. Diagrama esquematico de un teclado.
En sistemas de control o sistemas que
implementan como indicadores, display de 7
segmentos ya es poco usual, debido al desarrollo
tecnológico, ahora se utilizan display LCD. Estos
permiten visualizar indicadores o mensajes de forma
más detallada.
La LCD de display más común es la que cuenta
con 2 lineas y 16 columnas. Llamada asi, LCD 2x16
que tiene incorporado un controlador Hitachi
HD44780. [3]
El principio de funcionamiento se da
principalmete en 3 pines del LCD que son Enable(E),
escritura de instrucción o dato (RS) y pin de lectura o
escritura(R/W) en este ultimo se deja como escritura,
también cuenta con los pines de datos que van desde
D0 hasta D7.
Para mandar un dato necesitamos tener RS como
estado bajo y habilitar Enable teniendo listo ya
nuestros datos en los pines de D0-D7[4]
Se muestra un diagrama de flujo (Figura 2) para
configurar la LCD a 4 bits.[5]
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
Fig. 2. Inicializacion de LCD, 4-bit
En el lenguaje de programación ensamblador, una
macro es un nombre que define un conjunto de
instrucciones que serán sustituidas por la macro
cuando el nombre de ésta aparezca en un programa
(proceso denominado expansión de macros) en el
momento de ensamblar el programa. Las instrucciones
de macros se pueden guardar en el programa mismo o
en un archivo separado que el programa pueda
identificar.[6]
II. DESARROLLO
Se realiza un programa que por medio de un
teclado matricial 4x4 detecte la tecla presionada y con
base a la asignación simbólica de la nota pueda
reproducir un sonido en el Buzzer, y la nota
correspondiente se despliegue en la pantalla LCD.
Se utilizó un display LCD 16x2, el programador
Master Prog resistencias, potenciometro, capacitores,
cristal 4MHz, PIC18F4550, Software MPLabX.
Proteus 8.1 para simular, Buzzer 5V, Teclado
matricial 4x4.
Se crea un diagrama de procesos para simplificar
el código con base en las rutinas que se encuentran en
el programa
Inicio
Inicializa LCD
Configura
Puertos
Configura
Interrupciones
Espera a que se
presione una tecla
Identificar la
tecla
Reproducir
sonido
correspondien
tea la tecla
Desplegar nota
reproducida
en LCD
No reproducir
sonido y
desplegar
blonco el LCD
Se solto la
tecla?
No
No
Diagrama de procesos
Se realiza el diagrama de flujo para el código
en la LCD
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
Diagrama de flujo para desplegar en LCD
Se muestra el diagrama de flujo para identificar la tecla
que se presionó.
Inicio
Configurar RB4:RB7
como entrada
Bajar la bandera
RBIF
Esperar a que se
active RBIF
Determinar la
columna que activo
la bandera
Configurar RB4:RB7
como salida
sacando unos y
RB0:RB3 como
entrada
Determinar que fila
fue
Determinar la tecla
correspondiente
Asignar valor a
TMR0
Ya se solto la
tecla
No
Diagrama de flujo teclado matricial
Código:
;***********************************
*********
;Unidad Interdiciplinaria de
Biotecnologia
;Laboratorio de sistemas digitales
;Practica 7
;25 de mayo del 2015
;Cruz Bazan Ivan Rodrigo
Inicio
TRISD=0
TRISA=0
INICIALIZA
(Power ON)
INICIA EN
LINEA 1
LETRA W
DATO
LETRA W
DATO
LETRA W
DATO
TERMINA DE
ENVIAR LETRAS
Fin
DATO
RS(RA0)=1
WNIBLE
E
SWAP=NIBLEW
WPORTB
ENABLE(RA1)=1
RETARDO
ENABLE(RA1)=0
NIBLEPORTD
WPORTD
ENABLE(RA1)=1
RETARDO
ENABLE(RA1)=0
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
;***********************************
*******
;Librerias
LIST P=18F4550
#INCLUDE <P18F4550.INC>
;Configuracion
CONFIG FOSC=HS
CONFIG PWRT=ON
CONFIG BOR=OFF
CONFIG WDT=OFF
CONFIG MCLRE=ON
CONFIG PBADEN=OFF
CONFIG LVP=OFF
CONFIG DEBUG=OFF
CONFIG XINST=OFF
CBLOCK 0X07
REG_1
REG_2
NIBBLE
;-------
TIEMPO
;-----
C_ANTI
T_ANTI
T_1
T_2
T_3
FRECUENCIA ;TIEMPO A PRESCALER
APOYO
;--------
ENDC
#DEFINE BUZ PORTA,0
#DEFINE EN PORTA,1
#DEFINE RS PORTA,2
#DEFINE PORTLCD PORTD
LCD_CLR EQU B'00000001' ;=
Borra pantalla, cursor a Inicio
LCD_HOME EQUB'00000010' ;= Cursor
a Inicio, DDRAM sin cambios
LCD_ON EQU B'00001100' ;=
Pantalla On
LCDBUS_4_2 EQUB'00101000' ;= Bus 4
bits, 2 líneas, 5x7
CARAC MACRO CARACTER
MOVLW CARACTER
BSF RS
;RS=1(MODO DATO)
CALL COMANDO;
ENDM
CARACT MACRO CARACTER
BSF RS
;RS=1(MODO DATO)
CALL COMANDO;
ENDM
ORG 0X00
GOTO MAIN
ORG 0X08
GOTO INTERRUPCION
MAIN
;----DEFINE SALIDAS DE PUERTOS-----
MOVLW 0XF0
MOVWF TRISD
MOVLW B'11111000'
MOVWF TRISA
CLRF PORTLCD
MOVLW 0X0F
MOVWF ADCON1
MOVLW .7
MOVWF CMCON
CALL LCD_INI
;INICIALIZA LCD
CALL LINEA_1
CALL TEXTO_1
;---------------
CLRF TMR0L
MOVLW B'11010010';PRESCALER 1:8
MOVWF T0CON
MOVLW B'10100000'
MOVWF INTCON
;-----------
;TECLADO------------------------
MOVLW .10
MOVWF T_ANTI ;TIEMPO CONTROL
ANTIRREBOTES
MOVFF T_ANTI,C_ANTI
CLRF FRECUENCIA
;T_X POSICIONES DE TECLAS
;PRESCALER 8
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
MOVLW ' '
MOVWF T_1
MOVLW ' '
MOVWF T_2
MOVLW ' '
MOVWF T_3
;-------------------------------
MOVLW 0xF0 ;CONFIGURACION
DEL PUERTO
MOVWF TRISB
MOVLW 0x0F
MOVWF PORTB ;SACANDO 1'S POR
RB3:RB0
MOVF PORTB,W
BCF INTCON,0 ;SE BAJA LA BANDERA
CALL LINEA_2
CALL TEXTO_2
;----------
;---PROGRAMA PRINCIPAL------
INICIO
CALL TECLADO
GOTO INICIO
;----------------------------
;@@@@@@@@@@@@@@@@@@@@@@@@@@
INTERRUPCION
BTG BUZ
BCF INTCON,2
MOVFF FRECUENCIA,TMR0L
MOVLW B'11010010';PRESCALER 1:8
MOVWF T0CON
RETFIE
PERIODO
MOVFF FRECUENCIA,TMR0L
MOVLW B'11010010';PRESCALER 1:8
MOVWF T0CON
CALL LINEA_2
CALL TEXTO_2
RETURN
;-----------
;%%%%%%%%%%%%%%%%%%%%%%
TECLADO
MOVLW 0xF0 ;CONFIGURACION DEL
PUERTO
MOVWF TRISB
MOVLW 0x0F
MOVWF PORTB ;SACANDO 1'S POR
RB3:RB0
SIN_SONIDO
MOVLW ' '
MOVWF T_1
MOVLW ' '
MOVWF T_2
MOVLW ' '
MOVWF T_3
CALL LINEA_2
CALL TEXTO_2
BSF TRISA,0
MOVF PORTB,W
BCF INTCON,RBIF ;SE BAJA LA
BANDERA
HASTA
BTFSS INTCON,RBIF ;SE OPRIMIO
TECLA?
GOTO HASTA ;ALGUNA
INTERRUPCION EN RB7:RB4
BTFSC PORTB, 4 ;DISCERNIMIENTO
DE COLUMNA
CALL COL1 ;Y ACCESO A LA
CORRESPONDIENTE
BTFSC PORTB, 5
CALL COL2
BTFSC PORTB, 6
CALL COL3
BTFSC PORTB, 7
CALL COL4
RETURN
;Código para discernir en que FILA
de la columna uno se oprimio la tecla:
COL1
;codigo antirrebote
BCF TRISA,0
SWAPF TRISB ;INTERCAMBIO DE
ENTRADAS POR SALIDAS -0xF0
MOVLW 0xF0
MOVWF PORTB ;SACANDO 1'S POR
RB7:RB4
BTFSC PORTB, 0 ;DISCERNIMIENTO
DE FILA
CALL T1 ;Y ACCESO A TECLA
CORRESPONDIENTE
BTFSC PORTB, 1
CALL T4
BTFSC PORTB, 2
CALL T7
BTFSC PORTB, 3
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
CALL TAST
RETURN
COL2
BCF TRISA,0
SWAPF TRISB ;INTERCAMBIO DE
ENTRADAS POR SALIDAS
MOVLW 0xF0
MOVWF PORTB ;SACANDO 1'S POR
RB7:RB4
BTFSC PORTB, 0 ;DISCERNIMIENTO
DE FILA
CALL T2 ;Y ACCESO A TECLA
CORRESPONDIENTE
BTFSC PORTB, 1
CALL T5
BTFSC PORTB, 2
CALL T8
BTFSC PORTB, 3
CALL T0
RETURN
COL3
BCF TRISA,0
SWAPF TRISB ;INTERCAMBIO DE
ENTRADAS POR SALIDAS
MOVLW 0xF0
MOVWF PORTB ;SACANDO 1'S POR
RB7:RB4
BTFSC PORTB, 0 ;DISCERNIMIENTO
DE FILA
CALL T3 ;Y ACCESO A TECLA
CORRESPONDIENTE
BTFSC PORTB, 1
CALL T6
BTFSC PORTB, 2
CALL T9
BTFSC PORTB, 3
CALL TGATO
RETURN
COL4
BCF TRISA,0
SWAPF TRISB ;INTERCAMBIO DE
ENTRADAS POR SALIDAS
MOVLW 0xF0
MOVWF PORTB ;SACANDO 1'S POR
RB7:RB4
BTFSC PORTB, 0 ;DISCERNIMIENTO
DE FILA
CALL TA ;Y ACCESO A TECLA
CORRESPONDIENTE
BTFSC PORTB, 1
CALL TB
BTFSC PORTB, 2
CALL TC
BTFSC PORTB, 3
CALL TD
RETURN
;Código correspondiente a la tecla
uno:
T1
MOVLW 'C'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .17
MOVWF FRECUENCIA
CALL PERIODO
T1_
BTFSC PORTB,0
GOTO T1_
RETURN
T2
MOVLW 'D'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .43
MOVWF FRECUENCIA
CALL PERIODO
T2_
BTFSC PORTB,0
GOTO T2_
RETURN
T3
MOVLW 'E'
MOVWF T_1
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .67
MOVWF FRECUENCIA
CALL PERIODO
T3_
BTFSC PORTB,0
GOTO T3_
RETURN
T4
MOVLW 'F'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .77
MOVWF FRECUENCIA
CALL PERIODO
T4_
BTFSC PORTB,1
GOTO T4_
RETURN
T5
MOVLW 'G'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .97
MOVWF FRECUENCIA
CALL PERIODO
T5_
BTFSC PORTB,1
GOTO T5_
RETURN
T6
MOVLW 'A'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .114
MOVWF FRECUENCIA
CALL PERIODO
T6_
BTFSC PORTB,1
GOTO T6_
RETURN
T7
MOVLW 'B'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .129
MOVWF FRECUENCIA
CALL PERIODO
T7_
BTFSC PORTB,2
GOTO T7_
RETURN
T8
MOVLW 'C'
MOVWF T_1
MOVLW '5'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .136
MOVWF FRECUENCIA
CALL PERIODO
T8_
BTFSC PORTB,2
GOTO T8_
RETURN
T9
MOVLW 'D'
MOVWF T_1
MOVLW '5'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .150
MOVWF FRECUENCIA
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
CALL PERIODO
T9_
BTFSC PORTB,2
GOTO T9_
RETURN
TAST
MOVLW 'E'
MOVWF T_1
MOVLW '5'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .161
MOVWF FRECUENCIA
CALL PERIODO
TAST_
BTFSC PORTB,3
GOTO TAST_
RETURN
T0
MOVLW 'F'
MOVWF T_1
MOVLW '5'
MOVWF T_2
MOVLW ' '
MOVWF T_3
MOVLW .166
MOVWF FRECUENCIA
CALL PERIODO
T0_
BTFSC PORTB,3
GOTO T0_
RETURN
TGATO
MOVLW 'A'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW '#'
MOVWF T_3
MOVLW .122
MOVWF FRECUENCIA
CALL PERIODO
TGATO_
BTFSC PORTB,3
GOTO TGATO_
RETURN
TA
MOVLW 'C'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW '#'
MOVWF T_3
MOVLW .30
MOVWF FRECUENCIA
CALL PERIODO
TA_
BTFSC PORTB,0
GOTO TA_
RETURN
TB
MOVLW 'D'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW '#'
MOVWF T_3
MOVLW .55
MOVWF FRECUENCIA
CALL PERIODO
TB_
BTFSC PORTB,1
GOTO TB_
RETURN
TC
MOVLW 'D'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW '#'
MOVWF T_3
MOVLW .87
MOVWF FRECUENCIA
CALL PERIODO
TC_
BTFSC PORTB,2
GOTO TC_
RETURN
TD
MOVLW 'G'
MOVWF T_1
MOVLW '4'
MOVWF T_2
MOVLW '#'
MOVWF T_3
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
MOVLW .105
MOVWF FRECUENCIA
CALL PERIODO
TD_
BTFSC PORTB,3
GOTO TD_
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%
;++++++++++++++++++++++++++++++
;LCD
;++++++++++++++++++++++++++++++
TEXTO_1 ;TEXTO DE LA PRIMERA LINEA
CARAC 'S'
CARAC 'U'
CARAC 'P'
CARAC 'E'
CARAC 'R'
CARAC ' '
CARAC 'T'
CARAC 'E'
CARAC 'C'
CARAC 'L'
CARAC 'A'
CARAC 'D'
CARAC 'O'
CARAC ' '
CARAC ':'
CARAC 'D'
RETURN
TEXTO_2 ;TEXTO DE LA SEGUNDA LINEA
CARAC 'T'
CARAC 'e'
CARAC 'c'
CARAC 'l'
CARAC 'a'
CARAC ':'
CARAC ' '
MOVF T_1,W
CARACT WREG
MOVF T_2,W
CARACT WREG
MOVF T_3,W
CARACT WREG
RETURN
LCD_INI
;SUBRUTINA DE IICIALIZACION
BCF RS
;RS=0 (MODO INSTRUCCION)
MOVLW B'00000011'
CALL COMANDO
MOVLW B'00000011'
CALL COMANDO
MOVLW B'00000011'
CALL COMANDO
MOVLW B'00000010'
CALL COMANDO
MOVLW LCDBUS_4_2 ;AJUSTES
DEL CURSOR
CALL COMANDO
MOVLW LCD_ON ;AJUSTES
DEL CURSOR
CALL COMANDO
MOVLW LCD_CLR ;AJUSTES
DEL CURSOR
CALL COMANDO
MOVLW LCD_HOME ;AJUSTES
DEL CURSOR
CALL COMANDO
BSF RS
;RS=1(MODO DATO)
RETURN
COMANDO ;HABILITA
Y MANDA DATOS
MOVWF NIBBLE
SWAPF NIBBLE,0
ANDLW 0X0F
MOVWF PORTLCD
BSF EN ;EN=1
(HABILITA ENABLE)
CALL RET_1
BCF EN
;EN=0(DESHABILITA ENABLE)
MOVFF NIBBLE,WREG
ANDLW 0X0F
MOVWF PORTLCD
BSF EN ;EN=1
(HABILITA ENABLE)
CALL RET_1
BCF EN
;EN=0(DESHABILITA ENABLE)
CALL RET_1
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
RETURN
LINEA_1
;PONE CURSOR A LINEA 1
BCF RS
;RS=0(MODO INSTRUCCION)
MOVLW B'10000000'
;SELECCIONA PRIMERA LINEA
CALL COMANDO
BSF RS
;RS=1(MODO DATO)
RETURN
LINEA_2
;PONE CURSOR A LINEA 2
BCF RS
;RS=0(MODO INSTRUCCION)
MOVLW B'11000000'
;SELECCIONA SEGUNDA LINEA
CALL COMANDO
BSF RS
;RS=1(MODO DATO)
RETURN
;---RETARDO-----
RET_1
MOVLW .17;48
MOVWF REG_1
LOOP_1
MOVLW .50;255
MOVWF REG_2
LOOP_2
DECFSZ REG_2,1
GOTO LOOP_2
DECFSZ REG_1,1
GOTO LOOP_1
RETURN
;--------------------------------
-----
mS MOVLW .10
MOVWF REG_1
TWO DECFSZ REG_1,F
GOTO TWO
RETURN
;--------------------
END
Diagrama de conexión electrica
III. CONCLUSION
Cruz Bazán
Existen diferentes formas para programar un Teclado
matricial, pero haciéndolo de esa forma permiten ejecutar
otras actividades, El uso del Timer0 como temporizador
permite una repetición exacta y es útil cuando se requiere
pulsos de frecuencias exactas. El uso del LCD permite una
mejor indicación para el operador, y para este caso saber
que nota musical se está tocando. El buzzer puede inducir
mayor cantidad de sonidos si se opera de forma adecuada.
IV. REFERENCIAS
[1] hoja de datos del microcontrolador PIC18F4550,
Interrupciones.
http://ww1.microchip.com/downloads/en/devicedoc/39632
c.pdf
[2] hoja de datos de teclado matricial 4x4, Parallax
<http://www.electronicoscaldas.com/datasheet/27899_Para
llax.pdf>
[3] Jose Salas, TodoElectrodo, blogspot. Lcd 16x2.
http://todoelectrodo.blogspot.mx/2013/02/lcd-16x2.html
Consultado 2 de junio de 2015.
[4] Quito Ecuador, TecMikro, programación de
microcontroladores PIC en mikroC PRO. Display LCD
16x2 (2x16) con el HD44780 en mikroC PRO.
http://programarpicenc.com/articulos/display-lcd-16x2-
Laboratorio de Sistemas Digitales II 4MM1
Tec. en Sistemas Digitales: Cruz Bazán Iván
Rodrigo
2x16-con-el-hd44780-en-mikroc-pro/ . Consultado 2 de
junio de 2015.
[5] VISHAY Datasheet, 16x2 LCD-016M002B
http://www.engineersgarage.com/sites/default/files/LCD%
2016x2.pdf
[6] Galeon, Hipavista, Macros
http://ciceron.galeon.com/macros.html

Más contenido relacionado

La actualidad más candente

Practica del amplificador inversor y no inversor
Practica del amplificador inversor y no inversorPractica del amplificador inversor y no inversor
Practica del amplificador inversor y no inversor
cire04
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
Percy Julio Chambi Pacco
 
Modulación delta
Modulación deltaModulación delta
Modulación delta
Avallo-Avalon Pichardo Rizo
 
Modulacion y frecuenca comunicacion analogicas 2
Modulacion y frecuenca  comunicacion analogicas 2Modulacion y frecuenca  comunicacion analogicas 2
Modulacion y frecuenca comunicacion analogicas 2
Velmuz Buzz
 
TTL-CMOS
TTL-CMOSTTL-CMOS
Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler
Anllel Cardenas Yllanes
 
Probabilidad de error en modulación digital
Probabilidad de error en modulación digitalProbabilidad de error en modulación digital
Probabilidad de error en modulación digital
Francisco Apablaza
 
Practica de guias de onda (autoguardado)
Practica de guias de onda (autoguardado)Practica de guias de onda (autoguardado)
Practica de guias de onda (autoguardado)
David Gonzalez
 
Informe transistores bjt
Informe transistores   bjtInforme transistores   bjt
Informe transistores bjt
YudiiCiitha Cogaria
 
Codigo Hamming
Codigo HammingCodigo Hamming
Puente h
Puente hPuente h
Tipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicacionesTipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicaciones
Saúl Vázquez
 
Emisor Receptor AM
Emisor Receptor AMEmisor Receptor AM
Emisor Receptor AM
menamigue
 
Acopladores direccionales
Acopladores direccionales Acopladores direccionales
Acopladores direccionales
Mao Herrera
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodos
vstiven18
 
filtros iir
filtros iir filtros iir
filtros iir
Angel Dominguez
 
Amplitud modulada am
Amplitud modulada amAmplitud modulada am
Amplitud modulada am
ralch1978
 
Capítulo VI - Microondas - Osciladores
Capítulo VI - Microondas - OsciladoresCapítulo VI - Microondas - Osciladores
Capítulo VI - Microondas - Osciladores
Andy Juan Sarango Veliz
 
Modulacion am
Modulacion amModulacion am
Modulacion am
Monica Patiño
 
Lugar geometrico de las raices
Lugar geometrico de las raicesLugar geometrico de las raices
Lugar geometrico de las raices
Ivan Salazar C
 

La actualidad más candente (20)

Practica del amplificador inversor y no inversor
Practica del amplificador inversor y no inversorPractica del amplificador inversor y no inversor
Practica del amplificador inversor y no inversor
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Modulación delta
Modulación deltaModulación delta
Modulación delta
 
Modulacion y frecuenca comunicacion analogicas 2
Modulacion y frecuenca  comunicacion analogicas 2Modulacion y frecuenca  comunicacion analogicas 2
Modulacion y frecuenca comunicacion analogicas 2
 
TTL-CMOS
TTL-CMOSTTL-CMOS
TTL-CMOS
 
Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler Set de 35 instrucciones para pic16f877A programación en assembler
Set de 35 instrucciones para pic16f877A programación en assembler
 
Probabilidad de error en modulación digital
Probabilidad de error en modulación digitalProbabilidad de error en modulación digital
Probabilidad de error en modulación digital
 
Practica de guias de onda (autoguardado)
Practica de guias de onda (autoguardado)Practica de guias de onda (autoguardado)
Practica de guias de onda (autoguardado)
 
Informe transistores bjt
Informe transistores   bjtInforme transistores   bjt
Informe transistores bjt
 
Codigo Hamming
Codigo HammingCodigo Hamming
Codigo Hamming
 
Puente h
Puente hPuente h
Puente h
 
Tipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicacionesTipos de Ruido en las telecomunicaciones
Tipos de Ruido en las telecomunicaciones
 
Emisor Receptor AM
Emisor Receptor AMEmisor Receptor AM
Emisor Receptor AM
 
Acopladores direccionales
Acopladores direccionales Acopladores direccionales
Acopladores direccionales
 
Ejercicios resueltos con diodos
Ejercicios resueltos con diodosEjercicios resueltos con diodos
Ejercicios resueltos con diodos
 
filtros iir
filtros iir filtros iir
filtros iir
 
Amplitud modulada am
Amplitud modulada amAmplitud modulada am
Amplitud modulada am
 
Capítulo VI - Microondas - Osciladores
Capítulo VI - Microondas - OsciladoresCapítulo VI - Microondas - Osciladores
Capítulo VI - Microondas - Osciladores
 
Modulacion am
Modulacion amModulacion am
Modulacion am
 
Lugar geometrico de las raices
Lugar geometrico de las raicesLugar geometrico de las raices
Lugar geometrico de las raices
 

Similar a Teclado matricial

Tarea final
Tarea finalTarea final
Tarea final
tomas francisco
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
Anibal Ulibarri
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
RoxanneLamas2
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
Jaime E. Velarde
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
marco calderon layme
 
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptxCURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
IngJorgeReyna
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
Luis Zurita
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadores
David Narváez
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
Gabriel Bravo Rojas
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
freddymadriz
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Jose Manuel Mansilla Carrasco
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
David Narváez
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
Victor Asanza
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
Derlis Hernandez Lara
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
oskarjgf
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
MarcoAntonioGonzales31
 
Manual tp12
Manual tp12Manual tp12
Manual tp12
Oscar Montaño
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
SANTIAGO PABLO ALBERTO
 
Curso basico de pic 16 f877
Curso basico de pic 16 f877Curso basico de pic 16 f877
Curso basico de pic 16 f877
Jose Manuel Mansilla Carrasco
 

Similar a Teclado matricial (20)

Tarea final
Tarea finalTarea final
Tarea final
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
 
Ejercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de InterrupcionesEjercicio 07 adicionales de Interrupciones
Ejercicio 07 adicionales de Interrupciones
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptxCURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
CURSO DEL CONTROLADOR LÓGICO PROGRAMABLE (PLC) SEMANA 4.pptx
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
4. interrupciones y temporizadores
4. interrupciones y temporizadores4. interrupciones y temporizadores
4. interrupciones y temporizadores
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Interrupciones y Temporizadores pucesi
Interrupciones y Temporizadores   pucesiInterrupciones y Temporizadores   pucesi
Interrupciones y Temporizadores pucesi
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
 
Manual tp12
Manual tp12Manual tp12
Manual tp12
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 
Curso basico de pic 16 f877
Curso basico de pic 16 f877Curso basico de pic 16 f877
Curso basico de pic 16 f877
 

Último

Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
AlvaroEduardoConsola1
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdftintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
MishelBautista4
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ArnulfoPerezPerez2
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
DanielaLoaeza5
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
micoltadaniel2024
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
KruggerCossio1
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 
Periodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdfPeriodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdf
PAULINACASTRUITAGARC
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdfSemana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
SandyCuenca
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
aplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdfaplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdf
MiguelZapata93
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
fabian28735081
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
OMORDO
 

Último (20)

Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdftintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
tintura-de-fibras-celulc3b3sicas-con-colorantes-reactivos-ii (1).pdf
 
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdfECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
ECUACIONES DIFERENCIALES DE PRIMER ORDEN.pdf
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
 
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOSSISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
SISTEMA AUTOMATIZADO DE LIMPIEZA PARA ACUARIOS
 
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDACURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
CURSO FINAL CONMINUCION-CHANCADO Y MOLIENDA
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 
Periodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdfPeriodo de secado para velocidad decreciente.pdf
Periodo de secado para velocidad decreciente.pdf
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdfSemana 12 - Ley 29973 de las personas con discapacidad.pdf
Semana 12 - Ley 29973 de las personas con discapacidad.pdf
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
aplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdfaplicacion de la termodinamica en la reacciones quimicas.pdf
aplicacion de la termodinamica en la reacciones quimicas.pdf
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
Kit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdfKit del Analisis y Visualizacion de Datos.pdf
Kit del Analisis y Visualizacion de Datos.pdf
 

Teclado matricial

  • 1. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo Extra: Piano con teclado matricial 4x4 y LCD 2x16 Cruz Bazán Iván Rodrigo Academia de Ingeniería Eléctrica y Electrónica, Bioingeniería-UPIBI México D. F. E-mail: yban_sito@hotmail.com (Rodrigo) Resumen Se realiza un programa que detecte las pulsaciones en un teclado matricial 4x4 y cada tecla tendrá un sonido diferente, esta se escuchara en un buzzer que por medio de variación de frecuencias que se implementara por medio de interrupciones por desbordamiento de timer 0, tendrá diferentes sonidos, en el LCD se desplegara la nota correspondiente a la tecla al mismo tiempo que reproduce el sonido. Palabras clave: Teclado matricial, lcd 2x16, piano, buzzer, TMR0, interrupciones, rutina antirrebotes. I. INTRODUCCIÓN Las interrupciones en un programa ayudan a atender un evento, que en el caso del microcontrolador, son provocados por diversas circunstancias internas o externas a este, en el caso de externas son provocadas por un cambio de estado en el pin RA4 o en los pines RB4:RB7, y en las interrupciones internas son provocados por el desbordamiento de timer.[1] Los timer son contadores ascendentes de 8 o 16 bits que cuando ocurre un desbordamiento indican con un bit que a ocurrido el desbordamiento, ese bit se encuentra en el registro INTCON que es el registro que se encarga de activar y señalizar con banderas las interrupciones. Nosotros usaremos las interrupción es globales y las interruciones locales, una interrupción global es cuando al momento de producir una interrupción accesa al vector interrucion además de encender cualquiera de las banderas del INTCON correspondiente a la interrupción, y en la interrupción local no se envia al vector inicio, pero si se activa la bandera correspondiente a la interrupción en el registro INTCON. Los teclados matriciales utilizan una combinación de cuatro filas y cuatro columnas para proporcionar estados de botón para el host del dispositivo, típicamente un microcontrolador. Debajo de cada tecla es un botón pulsador, con un extremo conectado a una fila, y el otro extremo conectado a una columna. Estas conexiones se muestran en la Figura 1. [2] Como el teclado es una parte física, tiende a mantener ruido en sus terminales provocando que afecte ejecución ideal del programa, debido a eso se emplean rutina antirrebotes manipulando un contador. Los buzzer son pequeñas bocinas o zumbadores que su tarea principal es como indicador auditivo, pero puede se manipulado para producir diferentes sonidos. Figura 1. Diagrama esquematico de un teclado. En sistemas de control o sistemas que implementan como indicadores, display de 7 segmentos ya es poco usual, debido al desarrollo tecnológico, ahora se utilizan display LCD. Estos permiten visualizar indicadores o mensajes de forma más detallada. La LCD de display más común es la que cuenta con 2 lineas y 16 columnas. Llamada asi, LCD 2x16 que tiene incorporado un controlador Hitachi HD44780. [3] El principio de funcionamiento se da principalmete en 3 pines del LCD que son Enable(E), escritura de instrucción o dato (RS) y pin de lectura o escritura(R/W) en este ultimo se deja como escritura, también cuenta con los pines de datos que van desde D0 hasta D7. Para mandar un dato necesitamos tener RS como estado bajo y habilitar Enable teniendo listo ya nuestros datos en los pines de D0-D7[4] Se muestra un diagrama de flujo (Figura 2) para configurar la LCD a 4 bits.[5]
  • 2. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo Fig. 2. Inicializacion de LCD, 4-bit En el lenguaje de programación ensamblador, una macro es un nombre que define un conjunto de instrucciones que serán sustituidas por la macro cuando el nombre de ésta aparezca en un programa (proceso denominado expansión de macros) en el momento de ensamblar el programa. Las instrucciones de macros se pueden guardar en el programa mismo o en un archivo separado que el programa pueda identificar.[6] II. DESARROLLO Se realiza un programa que por medio de un teclado matricial 4x4 detecte la tecla presionada y con base a la asignación simbólica de la nota pueda reproducir un sonido en el Buzzer, y la nota correspondiente se despliegue en la pantalla LCD. Se utilizó un display LCD 16x2, el programador Master Prog resistencias, potenciometro, capacitores, cristal 4MHz, PIC18F4550, Software MPLabX. Proteus 8.1 para simular, Buzzer 5V, Teclado matricial 4x4. Se crea un diagrama de procesos para simplificar el código con base en las rutinas que se encuentran en el programa Inicio Inicializa LCD Configura Puertos Configura Interrupciones Espera a que se presione una tecla Identificar la tecla Reproducir sonido correspondien tea la tecla Desplegar nota reproducida en LCD No reproducir sonido y desplegar blonco el LCD Se solto la tecla? No No Diagrama de procesos Se realiza el diagrama de flujo para el código en la LCD
  • 3. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo Diagrama de flujo para desplegar en LCD Se muestra el diagrama de flujo para identificar la tecla que se presionó. Inicio Configurar RB4:RB7 como entrada Bajar la bandera RBIF Esperar a que se active RBIF Determinar la columna que activo la bandera Configurar RB4:RB7 como salida sacando unos y RB0:RB3 como entrada Determinar que fila fue Determinar la tecla correspondiente Asignar valor a TMR0 Ya se solto la tecla No Diagrama de flujo teclado matricial Código: ;*********************************** ********* ;Unidad Interdiciplinaria de Biotecnologia ;Laboratorio de sistemas digitales ;Practica 7 ;25 de mayo del 2015 ;Cruz Bazan Ivan Rodrigo Inicio TRISD=0 TRISA=0 INICIALIZA (Power ON) INICIA EN LINEA 1 LETRA W DATO LETRA W DATO LETRA W DATO TERMINA DE ENVIAR LETRAS Fin DATO RS(RA0)=1 WNIBLE E SWAP=NIBLEW WPORTB ENABLE(RA1)=1 RETARDO ENABLE(RA1)=0 NIBLEPORTD WPORTD ENABLE(RA1)=1 RETARDO ENABLE(RA1)=0
  • 4. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo ;*********************************** ******* ;Librerias LIST P=18F4550 #INCLUDE <P18F4550.INC> ;Configuracion CONFIG FOSC=HS CONFIG PWRT=ON CONFIG BOR=OFF CONFIG WDT=OFF CONFIG MCLRE=ON CONFIG PBADEN=OFF CONFIG LVP=OFF CONFIG DEBUG=OFF CONFIG XINST=OFF CBLOCK 0X07 REG_1 REG_2 NIBBLE ;------- TIEMPO ;----- C_ANTI T_ANTI T_1 T_2 T_3 FRECUENCIA ;TIEMPO A PRESCALER APOYO ;-------- ENDC #DEFINE BUZ PORTA,0 #DEFINE EN PORTA,1 #DEFINE RS PORTA,2 #DEFINE PORTLCD PORTD LCD_CLR EQU B'00000001' ;= Borra pantalla, cursor a Inicio LCD_HOME EQUB'00000010' ;= Cursor a Inicio, DDRAM sin cambios LCD_ON EQU B'00001100' ;= Pantalla On LCDBUS_4_2 EQUB'00101000' ;= Bus 4 bits, 2 líneas, 5x7 CARAC MACRO CARACTER MOVLW CARACTER BSF RS ;RS=1(MODO DATO) CALL COMANDO; ENDM CARACT MACRO CARACTER BSF RS ;RS=1(MODO DATO) CALL COMANDO; ENDM ORG 0X00 GOTO MAIN ORG 0X08 GOTO INTERRUPCION MAIN ;----DEFINE SALIDAS DE PUERTOS----- MOVLW 0XF0 MOVWF TRISD MOVLW B'11111000' MOVWF TRISA CLRF PORTLCD MOVLW 0X0F MOVWF ADCON1 MOVLW .7 MOVWF CMCON CALL LCD_INI ;INICIALIZA LCD CALL LINEA_1 CALL TEXTO_1 ;--------------- CLRF TMR0L MOVLW B'11010010';PRESCALER 1:8 MOVWF T0CON MOVLW B'10100000' MOVWF INTCON ;----------- ;TECLADO------------------------ MOVLW .10 MOVWF T_ANTI ;TIEMPO CONTROL ANTIRREBOTES MOVFF T_ANTI,C_ANTI CLRF FRECUENCIA ;T_X POSICIONES DE TECLAS ;PRESCALER 8
  • 5. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo MOVLW ' ' MOVWF T_1 MOVLW ' ' MOVWF T_2 MOVLW ' ' MOVWF T_3 ;------------------------------- MOVLW 0xF0 ;CONFIGURACION DEL PUERTO MOVWF TRISB MOVLW 0x0F MOVWF PORTB ;SACANDO 1'S POR RB3:RB0 MOVF PORTB,W BCF INTCON,0 ;SE BAJA LA BANDERA CALL LINEA_2 CALL TEXTO_2 ;---------- ;---PROGRAMA PRINCIPAL------ INICIO CALL TECLADO GOTO INICIO ;---------------------------- ;@@@@@@@@@@@@@@@@@@@@@@@@@@ INTERRUPCION BTG BUZ BCF INTCON,2 MOVFF FRECUENCIA,TMR0L MOVLW B'11010010';PRESCALER 1:8 MOVWF T0CON RETFIE PERIODO MOVFF FRECUENCIA,TMR0L MOVLW B'11010010';PRESCALER 1:8 MOVWF T0CON CALL LINEA_2 CALL TEXTO_2 RETURN ;----------- ;%%%%%%%%%%%%%%%%%%%%%% TECLADO MOVLW 0xF0 ;CONFIGURACION DEL PUERTO MOVWF TRISB MOVLW 0x0F MOVWF PORTB ;SACANDO 1'S POR RB3:RB0 SIN_SONIDO MOVLW ' ' MOVWF T_1 MOVLW ' ' MOVWF T_2 MOVLW ' ' MOVWF T_3 CALL LINEA_2 CALL TEXTO_2 BSF TRISA,0 MOVF PORTB,W BCF INTCON,RBIF ;SE BAJA LA BANDERA HASTA BTFSS INTCON,RBIF ;SE OPRIMIO TECLA? GOTO HASTA ;ALGUNA INTERRUPCION EN RB7:RB4 BTFSC PORTB, 4 ;DISCERNIMIENTO DE COLUMNA CALL COL1 ;Y ACCESO A LA CORRESPONDIENTE BTFSC PORTB, 5 CALL COL2 BTFSC PORTB, 6 CALL COL3 BTFSC PORTB, 7 CALL COL4 RETURN ;Código para discernir en que FILA de la columna uno se oprimio la tecla: COL1 ;codigo antirrebote BCF TRISA,0 SWAPF TRISB ;INTERCAMBIO DE ENTRADAS POR SALIDAS -0xF0 MOVLW 0xF0 MOVWF PORTB ;SACANDO 1'S POR RB7:RB4 BTFSC PORTB, 0 ;DISCERNIMIENTO DE FILA CALL T1 ;Y ACCESO A TECLA CORRESPONDIENTE BTFSC PORTB, 1 CALL T4 BTFSC PORTB, 2 CALL T7 BTFSC PORTB, 3
  • 6. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo CALL TAST RETURN COL2 BCF TRISA,0 SWAPF TRISB ;INTERCAMBIO DE ENTRADAS POR SALIDAS MOVLW 0xF0 MOVWF PORTB ;SACANDO 1'S POR RB7:RB4 BTFSC PORTB, 0 ;DISCERNIMIENTO DE FILA CALL T2 ;Y ACCESO A TECLA CORRESPONDIENTE BTFSC PORTB, 1 CALL T5 BTFSC PORTB, 2 CALL T8 BTFSC PORTB, 3 CALL T0 RETURN COL3 BCF TRISA,0 SWAPF TRISB ;INTERCAMBIO DE ENTRADAS POR SALIDAS MOVLW 0xF0 MOVWF PORTB ;SACANDO 1'S POR RB7:RB4 BTFSC PORTB, 0 ;DISCERNIMIENTO DE FILA CALL T3 ;Y ACCESO A TECLA CORRESPONDIENTE BTFSC PORTB, 1 CALL T6 BTFSC PORTB, 2 CALL T9 BTFSC PORTB, 3 CALL TGATO RETURN COL4 BCF TRISA,0 SWAPF TRISB ;INTERCAMBIO DE ENTRADAS POR SALIDAS MOVLW 0xF0 MOVWF PORTB ;SACANDO 1'S POR RB7:RB4 BTFSC PORTB, 0 ;DISCERNIMIENTO DE FILA CALL TA ;Y ACCESO A TECLA CORRESPONDIENTE BTFSC PORTB, 1 CALL TB BTFSC PORTB, 2 CALL TC BTFSC PORTB, 3 CALL TD RETURN ;Código correspondiente a la tecla uno: T1 MOVLW 'C' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .17 MOVWF FRECUENCIA CALL PERIODO T1_ BTFSC PORTB,0 GOTO T1_ RETURN T2 MOVLW 'D' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .43 MOVWF FRECUENCIA CALL PERIODO T2_ BTFSC PORTB,0 GOTO T2_ RETURN T3 MOVLW 'E' MOVWF T_1
  • 7. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .67 MOVWF FRECUENCIA CALL PERIODO T3_ BTFSC PORTB,0 GOTO T3_ RETURN T4 MOVLW 'F' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .77 MOVWF FRECUENCIA CALL PERIODO T4_ BTFSC PORTB,1 GOTO T4_ RETURN T5 MOVLW 'G' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .97 MOVWF FRECUENCIA CALL PERIODO T5_ BTFSC PORTB,1 GOTO T5_ RETURN T6 MOVLW 'A' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .114 MOVWF FRECUENCIA CALL PERIODO T6_ BTFSC PORTB,1 GOTO T6_ RETURN T7 MOVLW 'B' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .129 MOVWF FRECUENCIA CALL PERIODO T7_ BTFSC PORTB,2 GOTO T7_ RETURN T8 MOVLW 'C' MOVWF T_1 MOVLW '5' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .136 MOVWF FRECUENCIA CALL PERIODO T8_ BTFSC PORTB,2 GOTO T8_ RETURN T9 MOVLW 'D' MOVWF T_1 MOVLW '5' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .150 MOVWF FRECUENCIA
  • 8. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo CALL PERIODO T9_ BTFSC PORTB,2 GOTO T9_ RETURN TAST MOVLW 'E' MOVWF T_1 MOVLW '5' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .161 MOVWF FRECUENCIA CALL PERIODO TAST_ BTFSC PORTB,3 GOTO TAST_ RETURN T0 MOVLW 'F' MOVWF T_1 MOVLW '5' MOVWF T_2 MOVLW ' ' MOVWF T_3 MOVLW .166 MOVWF FRECUENCIA CALL PERIODO T0_ BTFSC PORTB,3 GOTO T0_ RETURN TGATO MOVLW 'A' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW '#' MOVWF T_3 MOVLW .122 MOVWF FRECUENCIA CALL PERIODO TGATO_ BTFSC PORTB,3 GOTO TGATO_ RETURN TA MOVLW 'C' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW '#' MOVWF T_3 MOVLW .30 MOVWF FRECUENCIA CALL PERIODO TA_ BTFSC PORTB,0 GOTO TA_ RETURN TB MOVLW 'D' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW '#' MOVWF T_3 MOVLW .55 MOVWF FRECUENCIA CALL PERIODO TB_ BTFSC PORTB,1 GOTO TB_ RETURN TC MOVLW 'D' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW '#' MOVWF T_3 MOVLW .87 MOVWF FRECUENCIA CALL PERIODO TC_ BTFSC PORTB,2 GOTO TC_ RETURN TD MOVLW 'G' MOVWF T_1 MOVLW '4' MOVWF T_2 MOVLW '#' MOVWF T_3
  • 9. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo MOVLW .105 MOVWF FRECUENCIA CALL PERIODO TD_ BTFSC PORTB,3 GOTO TD_ RETURN ;%%%%%%%%%%%%%%%%%%%%%%% ;++++++++++++++++++++++++++++++ ;LCD ;++++++++++++++++++++++++++++++ TEXTO_1 ;TEXTO DE LA PRIMERA LINEA CARAC 'S' CARAC 'U' CARAC 'P' CARAC 'E' CARAC 'R' CARAC ' ' CARAC 'T' CARAC 'E' CARAC 'C' CARAC 'L' CARAC 'A' CARAC 'D' CARAC 'O' CARAC ' ' CARAC ':' CARAC 'D' RETURN TEXTO_2 ;TEXTO DE LA SEGUNDA LINEA CARAC 'T' CARAC 'e' CARAC 'c' CARAC 'l' CARAC 'a' CARAC ':' CARAC ' ' MOVF T_1,W CARACT WREG MOVF T_2,W CARACT WREG MOVF T_3,W CARACT WREG RETURN LCD_INI ;SUBRUTINA DE IICIALIZACION BCF RS ;RS=0 (MODO INSTRUCCION) MOVLW B'00000011' CALL COMANDO MOVLW B'00000011' CALL COMANDO MOVLW B'00000011' CALL COMANDO MOVLW B'00000010' CALL COMANDO MOVLW LCDBUS_4_2 ;AJUSTES DEL CURSOR CALL COMANDO MOVLW LCD_ON ;AJUSTES DEL CURSOR CALL COMANDO MOVLW LCD_CLR ;AJUSTES DEL CURSOR CALL COMANDO MOVLW LCD_HOME ;AJUSTES DEL CURSOR CALL COMANDO BSF RS ;RS=1(MODO DATO) RETURN COMANDO ;HABILITA Y MANDA DATOS MOVWF NIBBLE SWAPF NIBBLE,0 ANDLW 0X0F MOVWF PORTLCD BSF EN ;EN=1 (HABILITA ENABLE) CALL RET_1 BCF EN ;EN=0(DESHABILITA ENABLE) MOVFF NIBBLE,WREG ANDLW 0X0F MOVWF PORTLCD BSF EN ;EN=1 (HABILITA ENABLE) CALL RET_1 BCF EN ;EN=0(DESHABILITA ENABLE) CALL RET_1
  • 10. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo RETURN LINEA_1 ;PONE CURSOR A LINEA 1 BCF RS ;RS=0(MODO INSTRUCCION) MOVLW B'10000000' ;SELECCIONA PRIMERA LINEA CALL COMANDO BSF RS ;RS=1(MODO DATO) RETURN LINEA_2 ;PONE CURSOR A LINEA 2 BCF RS ;RS=0(MODO INSTRUCCION) MOVLW B'11000000' ;SELECCIONA SEGUNDA LINEA CALL COMANDO BSF RS ;RS=1(MODO DATO) RETURN ;---RETARDO----- RET_1 MOVLW .17;48 MOVWF REG_1 LOOP_1 MOVLW .50;255 MOVWF REG_2 LOOP_2 DECFSZ REG_2,1 GOTO LOOP_2 DECFSZ REG_1,1 GOTO LOOP_1 RETURN ;-------------------------------- ----- mS MOVLW .10 MOVWF REG_1 TWO DECFSZ REG_1,F GOTO TWO RETURN ;-------------------- END Diagrama de conexión electrica III. CONCLUSION Cruz Bazán Existen diferentes formas para programar un Teclado matricial, pero haciéndolo de esa forma permiten ejecutar otras actividades, El uso del Timer0 como temporizador permite una repetición exacta y es útil cuando se requiere pulsos de frecuencias exactas. El uso del LCD permite una mejor indicación para el operador, y para este caso saber que nota musical se está tocando. El buzzer puede inducir mayor cantidad de sonidos si se opera de forma adecuada. IV. REFERENCIAS [1] hoja de datos del microcontrolador PIC18F4550, Interrupciones. http://ww1.microchip.com/downloads/en/devicedoc/39632 c.pdf [2] hoja de datos de teclado matricial 4x4, Parallax <http://www.electronicoscaldas.com/datasheet/27899_Para llax.pdf> [3] Jose Salas, TodoElectrodo, blogspot. Lcd 16x2. http://todoelectrodo.blogspot.mx/2013/02/lcd-16x2.html Consultado 2 de junio de 2015. [4] Quito Ecuador, TecMikro, programación de microcontroladores PIC en mikroC PRO. Display LCD 16x2 (2x16) con el HD44780 en mikroC PRO. http://programarpicenc.com/articulos/display-lcd-16x2-
  • 11. Laboratorio de Sistemas Digitales II 4MM1 Tec. en Sistemas Digitales: Cruz Bazán Iván Rodrigo 2x16-con-el-hd44780-en-mikroc-pro/ . Consultado 2 de junio de 2015. [5] VISHAY Datasheet, 16x2 LCD-016M002B http://www.engineersgarage.com/sites/default/files/LCD% 2016x2.pdf [6] Galeon, Hipavista, Macros http://ciceron.galeon.com/macros.html