Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Revision 2:49e089d4d1ac, committed 2019-11-13
- Comitter:
- Antulius
- Date:
- Wed Nov 13 00:51:19 2019 +0000
- Parent:
- 1:dc2ae76df12d
- Commit message:
- barrido del teclado
Changed in this revision
| PinNames.h | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/PinNames.h Fri Jun 28 19:32:38 2019 +0000
+++ b/PinNames.h Wed Nov 13 00:51:19 2019 +0000
@@ -38,6 +38,51 @@
extern "C" {
#endif
+//UART to AMB8826
+#define TXD1 PA_9
+#define RXD1 PA_10
+#define CTS1 PA_11
+int baudRate = 115200;
+
+//UART to Silicon Labs CP210x
+#define TXD2 PA_2
+#define RXD2 PA_3
+
+//UART to FTDI
+#define TXD3 PB_10
+#define RXD3 PB_11
+
+//I2C
+#define I2C1_SCL PB_6
+#define I2C1_SDA PB_7
+
+#define I2C2_SCL PB_10
+#define I2C2_SDA PB_11
+
+//SPI
+#define SPI1_MOSI PA_7
+#define SPI1_MISO PA_6
+#define SPI1_SCLK PA_5
+#define SPI1_NSS1 PA_4
+#define SDsel PA_4
+
+#define SPI2_MOSI PB_15
+#define SPI2_MISO PB_14
+#define SPI2_SCLK PB_13
+#define SPI2_NSS2 PB_12
+
+//CAN
+#define CAN1_RX PA_11
+#define CAN1_TX PA_12
+
+//USB CDC
+#define USB_POS PA_12
+#define USB_NEG PA_11
+
+//ADC
+#define Uin PA_1
+#define Ubatt PA_0
+
typedef enum {
// Not connected
NC = (int)0xFFFFFFFF,
@@ -139,13 +184,14 @@
USBRX = PA_11,
CANRX = PB_8,
CANTX = PB_9,
- I2C_SCL = PB_8,
- I2C_SDA = PB_9,
+ I2C_SCL = PB_6,
+ I2C_SDA = PB_7,
SPI_MOSI = PA_7,
SPI_MISO = PA_6,
SPI_SCK = PA_5,
- SPI_CS = PB_6,
- PWM_OUT = PB_3
+ SPI_CS = PA_4,
+ TRACE_SWO = PB_3,
+ SWO = PB_3
} PinName;
#ifdef __cplusplus
--- a/main.cpp Fri Jun 28 19:32:38 2019 +0000
+++ b/main.cpp Wed Nov 13 00:51:19 2019 +0000
@@ -1,6 +1,6 @@
/* ###########################################################################
** Archivo : main.c
-** Proyecto : STM32-F103C8_Plantilla
+** Proyecto : STM32-F103C8_Barrido_Teclado
** Procesador : STM32F103C8
** Herramienta : Mbed
** Version : Driver 01.01
@@ -30,12 +30,8 @@
: Includes
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/
+#include "stm32f103c8t6.h"
#include "mbed.h"
-#include "stm32f103c8t6.h"
-//#include "stm32f10x.h"
-#include "PinNames.h"
-//#include "SysClockConf.h"
-//#include "AnalogIn.h"
//#include "Led_RGB.h"
//#include "Serial.h"
//#include "stdio.h"
@@ -101,24 +97,25 @@
| Configuración de Puertos
+-------------------------------------------------------------------------------
*/
-BusIn Renglones (PA_8, PA_9, PA_10, PA_11); // Definición para los Renglones
-
-BusOut Anodos (PB_6, PB_7, PB_8, PB_9); // Definición para los Ánodos
+BusIn Renglones (PA_8, PA_9, PA_10, PA_11); // Definición para los Renglones
+BusOut Anodos (PB_6, PB_7, PB_8, PB_9); // Definición para los Ánodos
BusOut Catodos (PA_0, PA_1,PA_2,PA_3,PA_4,PA_5,PA_6,PA_7); // Definición para los Cätodos
-DigitalOut Green_Led (PC_11); // Led de Actividad del Programa
-DigitalOut Red_Led (PB_11); // Led de Actividad del Programa
-PwmOut Buzzer (PB_13); // Salida del Buzzer
-Ticker Barrido;
-Serial Terminal(USBTX, USBRX); //activa la Terminal a traves del Puerto USB
+DigitalOut Led_Verde (PC_11); // Led de Actividad del Programa
+DigitalOut Led_Rojo (PB_11); // Led de Actividad del Programa
+PwmOut Buzzer (PB_13); // Salida del Buzzer
+Ticker Barrido; // Interrupción por el Temporizador
+// ***** Host PC Terminal Communication channels
+Serial Terminal (PA_2, PA_3); // Inicializa la comunicación serial a la PC (Tx,Rx)
+//Serial Terminal(USBTX, USBRX); // Activa la Terminal a traves del Puerto USB
/*
+-------------------------------------------------------------------------------
| Variables Globales de Usuario
+-------------------------------------------------------------------------------
*/
uint16_t Rate=1000;
-// Offset: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
-// 0 1 2 3 4 5 6 7 8 9 A b C d E f G h I j K L M n o P q r S t u V W X y Z null a e +o +/c c /c +u +n [ ] ° ^ ¬ + > ^ / v < v > /_ - _ = /= == ¬_ ii # /# J /J -J -/J -J -/J | || + /+ null ! " # $ % & ' ( ) * + - . / : ; < > ? @
-uint8_t Segmentos[]={0x81,0xE7,0x49,0x43,0x27,0x13,0x11,0xC7,0x01,0x03,0x05,0x31,0x99,0x61,0x19,0x1D,0x91,0x35,0xBD,0xB3,0x2D,0xB9,0x85,0x75,0x71,0x0D,0x07,0x3D,0x13,0x39,0xF1,0xE1,0xA1,0x25,0x37,0x49,0xFF,0xBE,0xF6,0x0F,0x8F,0x4F,0x2F,0x1F,0x0F,0x13,0x01,0x7F,0x7D,0x7B,0x79,0x75,0x73,0x71,0x70,0x99,0xC3,0x3F,0x9F,0xCF,0x6F,0x7D,0xF9,0xF3,0xD7,0xF7,0xDF,0x7F,0xFB,0x5F,0x7B,0x5B,0xBD,0xF5,0x6D,0x37,0xE3,0xB9,0x9D,0x7C,0xE7,0xBD,0xCa,0x00};
+// Offset: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
+//Caracter a Desplegar: 0 1 2 3 4 5 6 7 8 9 A b C d E f G h I j K L M n o P q r S t u V W X y Z space a e /e @ ñ [ ] U /U /_ - _ _/_ /= = == ° +/c +n +/c +u o c n /c u ^ ¬ + > ^ / v < v > i +i /i +/i ii +ii # /# J /J -J -/J | || | + /+ F +F /F +/F null ! " # $ % & ' ( ) * + - . / : ; < > ? @
+uint8_t Segmentos[]={0x81,0xE7,0x49,0x43,0x27,0x13,0x11,0xC7,0x01,0x03,0x05,0x31,0x99,0x61,0x19,0x1D,0x91,0x35,0xBD,0xE3,0x2D,0xB9,0x85,0x75,0x71,0x0D,0x07,0x7D,0x13,0x39,0xF1,0xB1,0xA1,0x25,0x23,0x49,0xFF,0x41,0x09,0x03,0x11,0x55,0x99,0xC3,0xA1,0x85,0xDF,0x7F,0xFB,0xDB,0x7B,0x5F,0x5B,0x0F,0x1F,0x8F,0x4F,0x2F,0x71,0x79,0x75,0x73,0xF1,0x3F,0x9F,0xCF,0x6F,0x7D,0xF9,0xF3,0x77,0xFD,0xBF,0xF7,0xEF,0xF5,0xAF,0x6D,0x37,0xE3,0xB9,0x9D,0xC7,0xBD,0xA5,0xE7,0x3D,0x67,0x1D,0x47,0x63,0x39,0x00};
uint8_t Digitos[]={0x08,0x04,0x02,0x01,0x00,0x0F}; // Millares, Centenas, Decenas, Unidades, Apagados, Encendidos
uint8_t Numeros[]={1,0,2,4};
uint8_t Cadena[]={33,0,21,10,36,14,28,18,22,36,35,10,12,10,29,14,23,12,24,36,36};
@@ -161,84 +158,130 @@
int main()
{
// Inicialización de variables, puertos e interrupciones
- Terminal.baud(115200); // Establece la velocidad de Transmisión de la Terminal
+ confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock)
Barrido.attach_us(&Barrido_OnInterrupt, Ticker_Period); // Periodo de Interrupción del Timer = 1ms (Ticker_Period=1000)
- Renglones.mode(PullUp); // Habilita los Pull-Up's de las entradas
- while (true)
- { //El Programa principal está aquí !!!
- nchar=0; // Inicializa el contador de caracteres a desplegar
- if (flag1==TRUE)
+ Renglones.mode(PullUp); // Habilita los Pull-Up's de las entradas de los renglones
+ Terminal.baud(115200); // Establece la velocidad de Transmisión de la Terminal
+ Terminal.printf("\e[2J"); // Clear Screen
+ Terminal.printf(" System is Wake Up!.\n\r"); // e inicia la comunicación serial
+ Terminal.printf ("\t\e[1;37;41mInstituto Politecnico Nacional\e[0m\n\r");
+ Terminal.printf ("\e[1;37;42mESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\e[0m\n\r\v");
+ Terminal.printf ("\t\e[1;34;40mBarrido \e[1;37;40mdel \e[1;31;40mDisplay \e[1;33;40mde \e[1;32;40m7 Segmentos\e[0m \e[1;35;40my \e[1;36;40mTeclado \n\r\v\v\e[0m");
+ while (TRUE)
+ { //El Programa principal está aquí !!!
+ nchar=0; // Inicializa el contador de caracteres a desplegar
+ if (flag1==TRUE)
+ {
+// Buzzer_SetPeriodMode(LA4,FALSE);// Apaga el Buzzer
+// Buzzer=off; // Apaga el Buzzer
+ //------------------ Barrido de los Digitos ------------------------
+ Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas)
+ Catodos=Segmentos[Numeros[i]]; // Escribe los segmentos del Dígito
+ if (i==4-punto_decimal) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal
+ Anodos=Digitos[i]; // Activa el Dígito/columna
+ //------------------ Barrido del Teclado ---------------------------
+ valor=Renglones; // Lee los renglones. Posibles valores: 0xFF,0xFE,0xFD,0xFB,0xF7
+ if (valor==0x0E)
+ {
+ if (i==0) printf ("Tecla=1\r");
+ if (i==1) printf ("Tecla=2\r");
+ if (i==2) printf ("Tecla=3\r");
+ if (i==3) printf ("Tecla=F1\r");
+ }
+ if (valor==0x0D)
+ {
+ if (i==0) printf ("Tecla=4\r");
+ if (i==1) printf ("Tecla=5\r");
+ if (i==2) printf ("Tecla=6\r");
+ if (i==3) printf ("Tecla=F2\r");
+ }
+ if (valor==0x0B)
+ {
+ if (i==0) printf ("Tecla=7\r");
+ if (i==1) printf ("Tecla=8\r");
+ if (i==2) printf ("Tecla=9\r");
+ if (i==3) printf ("Tecla=F3\r");
+ }
+ if (valor==0x07)
+ {
+ if (i==0) printf ("Tecla=*\r");
+ if (i==1) printf ("Tecla=0\r");
+ if (i==2) printf ("Tecla=#\r");
+ if (i==3) printf ("Tecla=F4\r");
+ }
+ if (valor==0x0F)
{
- Buzzer_SetPeriodMode(LA4,FALSE);// Apaga el Buzzer
- Buzzer=off; // Apaga el Buzzer
- Anodos=Digitos[4]; // Apaga todos los Digitos (Evita fantasmas)
- Catodos=Segmentos[Numeros[i]]; // Escribe los segmentos del Dígito
- if (i==4-punto_decimal) Catodos=(Segmentos[Numeros[i]]& 0xFE); // Enciende el punto decimal
- Anodos=Digitos[i]; // Activa el Dígito/columna
- valor=Renglones; // Lee los renglones
- Renglon[i]=(valor>>i)&1; // Obtiene el valor de cada bit del renglón
- Boton[i+j]=Renglon[i]; // Llena el renglon-columna correspondiente
- if (Boton[i+j]==1)
- {
- Buzzer_SetPeriodMode(DO5,TRUE); // Selecciona Tono y lo habilita
- Buzzer=on; // Enciende el Buzzer
- }
- if ( Boton[i+j] && Boton_Ant[i+j])
- {
- Edo_Boton[i+j]= off; // El Botón está Apagado
- }
- if (!Boton[i+j] && Boton_Ant[i+j])
- {
- Edo_Boton[i+j]= on; // El Botón está Encendido
- }
- if (!Boton[i+j] && !Boton_Ant[i+j])
- {
- Edo_Boton[i+j]= hold; // El Botón está Presionado
- }
- if ( Boton[i+j] && !Boton_Ant[i+j])
+ if (i==0) printf ("Tecla=H\r");
+ if (i==1) printf ("Tecla=O\r");
+ if (i==2) printf ("Tecla=L\r");
+ if (i==3) printf ("Tecla=A\r");
+ }
+
+// Renglon[i]=(valor>>i)&1; // Obtiene el valor de cada bit del renglón
+// Boton[i+j]=Renglon[i]; // Llena el renglon-columna correspondiente
+ Terminal.printf("Tecla Oprimida: %c\r",valor);
+/* if (Boton[i+j]==1)
+ {
+// Buzzer_SetPeriodMode(DO5,TRUE); // Selecciona Tono y lo habilita
+// Buzzer=on; // Enciende el Buzzer
+ }
+ if ( Boton[i+j] && Boton_Ant[i+j])
+ {
+ Edo_Boton[i+j]= off; // El Botón está Apagado
+ }
+ if (!Boton[i+j] && Boton_Ant[i+j])
+ {
+ Edo_Boton[i+j]= on; // El Botón está Encendido
+ }
+ if (!Boton[i+j] && !Boton_Ant[i+j])
+ {
+ Edo_Boton[i+j]= hold; // El Botón está Presionado
+ }
+ if ( Boton[i+j] && !Boton_Ant[i+j])
+ {
+ Edo_Boton[i+j]= release; // El Botón está Liberado
+ }
+ Boton_Ant[i+j]=Boton[i+j]; // Actualiza el valor del botón anterior
+ if (valor != 0xFF)
+ {
+ Numeros[0]= Digit_Null; // Millares
+ Numeros[1]= Digit_Null; // Centenas
+ Numeros[2]= Digit_Null; // Decenas
+ Numeros[3]= Tecla[i+j]; // Unidades
+ mode=2;
+ }
+*/
+ i++; // Incrementa la columna
+ if (i==4) // Se terminó de barrer las columnas?
+ {
+ i=0; // Reinicia las columnas
+ j=j+4; // Brinca al siguiente renglón
+ if (j==16) j=0; // Se terminó de barrer los renglones? Reinicia los renglones
+
+ if (mode==1) // Se va a desplegar un mensaje?
+ {
+ Numeros[i]=Cadena[i+nchar]; // Cargamos 4 caracteres en el buffer de despliege
+ if (nchar >= String_Size) nchar=0; // Restablece el contador de caractres
+ }
+ if (mode==2) // Se va a desplegar un el valor de la botonera
{
- Edo_Boton[i+j]= release; // El Botón está Liberado
- }
- Boton_Ant[i+j]=Boton[i+j]; // Actualiza el valor del botón anterior
- if (valor != 0xFF)
- {
- Numeros[0]= Digit_Null; // Millares
- Numeros[1]= Digit_Null; // Centenas
- Numeros[2]= Digit_Null; // Decenas
- Numeros[3]= Tecla[i+j]; // Unidades
- mode=2;
- }
- i++; // Incrementa la columna
- if (i==4) // Se terminó de barrer las columnas?
- {
- i=0; // Reinicia las columnas
- j=j+4; // Brinca al siguiente renglón
- if (j==16) j=0; // Se terminó de barrer los renglones? Reinicia los renglones
+ if ( Blinking==1) punto_decimal=3; // Activa los puntos del Reloj
+ if ( Blinking==0) punto_decimal=0; // Desactiva los puntos del Reloj
+ if (i==4-punto_decimal)
+ Catodos=Segmentos[Numeros[i]&0xFE]; // Enciende el punto decimal
+ Terminal.printf("Tecla Oprimida: %c\r",valor);
+ }
+ Led_Rojo=!Led_Rojo; // Parpadeo del Led Rojo
+ }
- if (mode==1) // Se va a desplegar un mensaje?
- {
- Numeros[i]=Cadena[i+nchar]; // Cargamos 4 caracteres en el buffer de despliege
- if (nchar >= String_Size) nchar=0; // Restablece el contador de caractres
- }
- if (mode==2) // Se va a desplegar un el valor de la botonera
- {
- if ( Blinking==1) punto_decimal=3; // Activa los puntos del Reloj
- if ( Blinking==0) punto_decimal=0; // Desactiva los puntos del Reloj
- if (i==4-punto_decimal)
- Catodos=Segmentos[Numeros[i]&0xFE]; // Enciende el punto decimal
- Terminal.printf("Tecla Oprimida: %c",valor);
- }
- Red_Led=!Red_Led; // Parpadeo del Led Rojo
- }
-
- flag1=FALSE; // Apaga la Bandera 1
- }
- if (flag2==TRUE) // Está puesta la Bandera 2?
- {
- Green_Led=!Green_Led; // Parpadeo del Led Verde
- flag2=FALSE; // Apaga la Bandera 2
- }
- }
+ flag1=FALSE; // Apaga la Bandera 1
+ }
+ if (flag2==TRUE) // Está puesta la Bandera 2?
+ {
+ Led_Verde=!Led_Verde; // Parpadeo del Led Verde
+ flag2=FALSE; // Apaga la Bandera 2
+ }
+ }
}
/* END main() */
/*
@@ -246,11 +289,11 @@
: Rutinas de los Vectores de Interrupción
................................................................................
*/
-void Barrido_OnInterrupt(void) // Rutina de Atención al Ticker
+void Barrido_OnInterrupt() // Rutina de Atención al Ticker
{
- cont_1ms++;
- scan_rate++;
- counter--;
+ cont_1ms++; // Incrmenta el contador de milisegundos
+ scan_rate--; // Decrementa el tiempo de despliege
+ counter--; // Decrementa el contador de eventos
if(!scan_rate) // Se terminó el tiempo de barrido
{
scan_rate=Rate_Period; // Restablece el tiempo de barrido?
@@ -308,9 +351,49 @@
/* END Routines */
/* END program */
-/*+------------------------------------------------------------------------------------
+/*+-----------------------------------------------------------------------------
+*+ CD4041 Quad Buffer/Inverter
+*+------------------------------------------------------------------------------
+*+
+*+ |\ 1
+*+ | \------- A1
+*+ 3 | \
+*+ PB_12 -----| >
+*+ | / 2
+*+ | /o------ COL1
+*+ |/
+*+
+*+
+*+ |\ 8
+*+ | \------- A2
+*+ 10 | \
+*+ PB_13 -----| >
+*+ | / 9
+*+ | /o------ COL2
+*+ |/
+*+
+*+
+*+ |\ 4
+*+ | \------- A3
+*+ 6 | \
+*+ PB_14 -----| >
+*+ | / 5
+*+ | /o------ COL3
+*+ |/
+*+
+*+
+*+
+*+ |\ 11
+*+ | \------- A4
+*+ 13 | \
+*+ PB_15 -----| >
+*+ | / 12
+*+ | /o------ COL4
+*+ |/
+*+
+*+------------------------------------------------------------------------------
*+ Descripción del Display de 7 Segmentos de Anodos Comunes en modo multiplexado
-*+-------------------------------------------------------------------------------------
+*+------------------------------------------------------------------------------
*+ 13 12 11 10 9 8
*+ | | | | | |
*+ | | | | | |
@@ -361,6 +444,33 @@
*+ Display: BQ-M544RE
*+
*+
+*+ 12 11 10 9 8 7
+*+ | | | | | |
+*+ | | | | | |
+*+ --------------------------------------------------
+*+ | A a f A A b |
+*+ | 4 3 2 |
+*+ | ______________________________________________ |
+*+ | | ____ ____ _____ . _____ | |
+*+ | | / / / / / / / / | |
+*+ | | /____ / /____ / . /____ / /____ / | |
+*+ | | / / / / . / / / / | |
+*+ | | /____ /. /_____/ . /____ /. /____ /. | |
+*+ | | | |
+*+ | |______________________________________________| |
+*+ | |
+*+ | A A |
+*+ | e d p c g 1 |
+*+ --------------------------------------------------
+*+ | | | | | |
+*+ | | | | | | p1 = g
+*+ 1 2 3 4 5 6 p2 = c
+*+ p3 = d
+*+ Display: HS-5463BS p4 = e
+*+ Cátodo Común pu = b
+*+ pd = f
+*+
+*+
*+ 16 15 14 13 11
*+ | | | | |
*+ | | | | |
@@ -377,7 +487,7 @@
*+ | |______________________________________________| |
*+ | |
*+ | A A A A A |
-*+ | 4 3 3 p e 2 p 1 |
+*+ | 4 3 d p e 2 p 1 |
*+ --------------------------------------------------
*+ | | | | | | | |
*+ | | | | | | | |
@@ -412,12 +522,14 @@
*+ Display: FYQ-2841BH
*+
*+
-*+ PTA17 PTA16 PTA15 PTA14
+*+ FRDM-KL46Z PTA17 PTA16 PTA15 PTA14
+*+ STM32-F103C8 PB_15 PB_14 PB_13 PB_12
*+ A4 A3 A2 A1
*+ Mill Cent Dec Uni
*+
-*+ FRDM_KL25Z PTE23 PTE22 PTE21 PTE20 PTE5 PTE4 PTE3 PTE2 # Hex
-*+ FRDM-KL46Z PTE23 PTE22 PTE21 PTE20 PTE19 PTE18 PTE17 PTE16 # Hex Offset
+*+ FRDM_KL25Z PTE23 PTE22 PTE21 PTE20 PTE5 PTE4 PTE3 PTE2 # Hex Offset
+*+ FRDM-KL46Z PTE23 PTE22 PTE21 PTE20 PTE19 PTE18 PTE17 PTE16 # Hex Offset
+*+ STM32-F103C8 PA_8 PA_9 PA_10 PA_11 PA_12 PA_15 PB_3 PB_4 # Hex Offset
*+ a
*+ ______ g f a b c d e p
*+ / / 1 0 0 0 1 0 0 0 0 0x81 0
@@ -439,7 +551,7 @@
*+ 1 0 0 0 1 0 0 1 G 0x91 16
*+ 1 1 0 0 0 0 1 1 h 0x35 17
*+ 1 1 0 1 1 1 1 1 i 0xBD 18
-*+ 1 0 0 0 1 1 1 0 J 0xB3 19
+*+ 1 0 0 0 1 1 1 0 J 0xE3 19
*+ 1 0 1 0 0 0 1 0 k 0x2D 20
*+ 1 0 1 0 1 0 1 1 L 0xB9 21
*+ 1 1 0 0 1 0 0 0 M 0x85 22
@@ -447,17 +559,33 @@
*+ 1 0 0 0 0 1 1 1 o 0x71 24
*+ 1 1 1 0 0 0 0 0 P 0x0D 25
*+ 1 1 0 1 0 0 0 0 q 0x07 26
-*+ 1 1 1 0 0 1 1 1 r 0x3D 27
+*+ 1 1 1 0 0 1 1 1 r 0x7D 27
*+ 1 0 0 1 0 0 0 1 s 0x13 28
*+ 1 0 1 0 0 0 1 1 t 0x39 29
*+ 1 0 0 0 1 1 1 1 u 0xF1 30
-*+ 1 0 0 0 1 0 1 1 V 0xE1 31
+*+ 1 0 0 0 1 0 1 1 V 0xB1 31
*+ 1 0 0 0 1 0 1 0 w 0xA1 32
*+ 1 1 0 0 1 0 1 0 X 0x25 33
-*+ 1 0 0 1 0 0 1 0 y 0x37 34
+*+ 1 0 0 1 0 0 1 0 y 0x23 34
*+ 1 0 1 0 1 1 0 0 Z 0x49 35
-*+ 1 0 0 0 0 1 0 0 a 0x84 36
-*+ 1 0 1 0 0 0 0 0 e 0xA0 37
+*+ 1 1 1 1 1 1 1 1 space 0xFF 36
+*+ 0 1 0 0 0 0 0 1 a 0x41 37
+*+ 0 0 0 0 1 0 0 1 e 0x09 38
+*+ 0 0 0 0 0 0 1 1 /e 0x03 39
+*+ 0 0 0 1 0 0 0 1 @ 0x11 40
+*+ 0 1 0 1 0 1 0 1 ñ 0x55 41
+*+ 1 0 0 1 1 0 0 1 [ 0x99 42
+*+ 0 0 0 0 1 0 0 1 ] 0xC3 43
+*+ 1 0 1 0 0 0 0 1 U 0xA1 44
+*+ 1 0 0 0 0 1 0 1 /U 0x85 45
+*+ 1 1 0 1 1 1 1 1 /_ 0xDF 46
+*+ 0 1 1 1 1 1 1 1 - 0x7F 47
+*+ 1 1 1 1 1 0 1 1 _ 0xFB 48
+*+ 1 1 0 1 1 0 1 1 _/_ 0xDB 49
+*+ 0 1 1 1 1 0 1 1 /= 0x7B 50
+*+ 0 1 0 1 1 1 1 1 = 0x5F 51
+*+ 0 1 0 1 1 0 1 1 == 0x5B 52
+*+ 0 0 0 0 1 1 1 1 ° 0x0F 53
*+ 1 1 1 1 0 0 0 1 + c 0xF1 38
*+ 1 1 1 1 0 1 0 0 +/c 0xF4 39
*+ 1 0 1 0 0 1 1 1 c 0xA7 40
@@ -499,10 +627,10 @@
*+ Nota: Cada dígito se activa al hacer la señal A correspondiente en "alto"
*+ y enviar las señales de los segmentos que se desean encender en "bajo"
*+
-*+---------------------------------------------------------------------------------------- */
-/*........................................................................................
+*+----------------------------------------------------------------------------*/
+/*..............................................................................
:
-: TECLADO MATRICIAL DE 4X4
+: TECLADO MATRICIAL DE 4X4 DE MEMBRANA
:
: C1 C2 C3 C4
: | | | |
@@ -522,8 +650,29 @@
:
: Función: REN1 REN2 REN3 REN4 COL1 COL2 COL3 COL4
: Pin: 1 2 3 4 5 6 7 8
-..........................................................................................
-*+----------------------------------------------------------------------------*
+................................................................................
+:
+: TECLADO MATRICIAL DE 4X4 DE PUSH BOTTONS
+:
+: C1 C2 C3 C4
+: | | | |
+: | | | |
+: | S1 | S2 | S3 | S4
+: R1 __/ ________/ ________/ ________/
+: | | | |
+: | S5 | S6 | S7 | S8
+: R2 __/ ________/ ________/ ________/
+: | | | |
+: | S9 | S10 | S11 | S12
+: R3 __/ ________/ ________/ ________/
+: | | | |
+: | S13 | S14 | S15 | S16
+: R4 __/ ________/ ________/ ________/
+:
+:
+: Función: COL1 COL2 COL3 REN4 REN1 REN2 REN3 REN4
+: Pin: 1 2 3 4 5 6 7 8
+**+----------------------------------------------------------------------------*
*+
*+ Powered by
*+
@@ -534,5 +683,5 @@
*+
*+ Welcome to The Beaners Proyect Community!
*+----------------------------------------------------------------------------*/
-/* END Mbed */
+/* END Documentation */
/* END Mbed */
\ No newline at end of file