Multiplicación mediante el algoritmo de Booth
February 2, 2008 at 11:27 am | In Rutinas | 19 CommentsEl algoritmo de booth es un algoritmo que sirve para multiplicar (y dividir) números binarios con signo de manera rápida y sencilla en complemento a dos. Aqui explico de manera detallada el funcionamiento de ese algoritmo y muestro una implementacion del mismo para microcontroladores PIC.
Continue reading Multiplicación mediante el algoritmo de Booth…
Cómo multiplexar una matriz de leds
January 5, 2008 at 12:48 pm | In Multiplexación, Rutinas, Tutorial | 27 CommentsYa empezó un nuevo año así que vamos a empezar con un nuevo tutorial, esta vez con un cómo sobre multiplexación, cómo multiplexar una matriz de leds.
Teclado Matricial 4×3
September 11, 2007 at 7:26 pm | In Rutinas | 7 CommentsDespués de un tiempo desaparecido regreso con una rutina para controlar un teclado matricial 4×3 con un pic 16F628A. Esta rutina es una adaptación de la rutina original del Teclado Matricial 4×4 hecha por petición popular (ok, un solo comentario, pero alguien lo pidió). La lógica del manejo del teclado matricial 4×3 es la misma que para el teclado 4×4, el nibble bajo del puerto B se configura como salida y el nibble alto como entrada. Se recorre un cero por el nibble bajo y se va incrementando un puntero que es el que nos ayuda a saber exactamente que tecla se presionó.
Binario a BCD – Recorre y Suma+3
June 21, 2007 at 4:25 pm | In Ensamblador, Rutinas, Tutorial | 36 CommentsNumero Binario de 8 bits a BCD mediante el algoritmo Recorre y Suma+3
En la entrada anterior se encuentra una rutina para convertir un numero Binario de 8 bits a BCD empleando un metodo de division po restas sucesivas. En esta ocasion presento una rutina para lograr la misma conversion de Binario a BCD empleando el algoritmo Recorre y Suma+3.
Conversion Binario a BCD – Convertir un numero de 8 bits
June 21, 2007 at 9:41 am | In Ensamblador, Rutinas, Tutorial | 13 CommentsConvertir un numero Binario de 8 bits a BCD
El Codigo binario decimal (BCD) es un codigo para numeros decimales en el que cada digito es representado por su propia secuencia binaria. Su principal ventaja es que permite una conversion facil a digitos decimales para su despliegue y permite tambien realizar calculos decimales mas rapidos.
Aqui se presenta una rutina para convertir un numero binario a BCD, precisamente un numero de 8 bits (1 byte) a su equivalente BCD. El valor maximo de un byte es 0xFF = 255, asi que al convertir un numero binario de 8 bits se obtienen 3 digitos BCD.
Continue reading Conversion Binario a BCD – Convertir un numero de 8 bits…
Teclado Matricial 4×4
June 13, 2007 at 7:02 pm | In Ensamblador, HowTo, Rutinas | 30 CommentsUn teclado matricial es un simple arreglo de botones conectados en filas y colúmnas, de modo que se pueden leer varios botones con el mínimo número de pines requeridos. Un teclado matricial 4×4 solamente ocupa 4 lineas de un puerto para las filas y otras 4 lineas para las colúmnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un microcontrolador. Si asumimos que todas las columnas y filas inicialmente están en alto (1 lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y checar cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de las filas se recorre hacia la siguiente y así secuencialmente.
Manejo de Interrupciones
June 8, 2007 at 4:47 pm | In Rutinas, Tutorial | 15 CommentsUna interrupción es un evento que hace que el microcontrolador deje de ejecutar la tarea que está realizando para atender dicho acontecimiento y luego regrese y continue la tarea que estaba realizando antes de que se presentara la interrupción. El pic 16F628 (y el 16F628A) tiene 10 fuentes de interrupción, si las interrupciones están habilitadas cada vez que una de estos acontecimientos se presente el pic dejará de ejecutar el programa para ir a atender la interrupción y al termino de la misma continuará ejecutando el programa donde lo había dejado. Las fuentes de interrupción son:
- Interrupción externa RB0/INT
- Interrupción por cambio lógico en el puerto B (pines RB7 a RB4)
- Interrupción por desborde del timer 0 (TMR0)
- Interrupción por desborde del timer 1 (TMR1)
- Interrupción por comparación exitosa exitosa en TMR2
- Interrupción del comparador
- Interrupción del transmisor del USART
- Interrupción del receptor del USART
- Interrupción del módulo CCP
- Interrupción del EEPROM
Leer botones e interruptores
April 13, 2007 at 10:25 pm | In HowTo, Rutinas, Tutorial | 13 CommentsYa hace casi un mes y medio desde la última entrada, había estado ocupado con la escuela y por esa razón dejé un poco de lado este proyecto, pero ahora para continuar un poco por donde íbamos vengo con una nueva entrada, ahora sobre leer botones e interruptores.
Los botones e interruptores son dispositivos que nos sirven para introducir datos a algun sistema eléctrico o electrónico. Leer botones (e interruptores) es una tarea muy sencilla, solamente hay que tener en cuenta que estos, al ser dispositivos mecanicos, no cierran (ni abren) instantaneamente sino que presentan un fenomeno conocido como rebote, que no es otra cosa mas que un ruido electrico que genera errores en al detectar que se presionó un botón y que hace que parezca que el botón se presiono muchas veces.
Displays de 7 segmentos
February 26, 2007 at 8:40 pm | In MPASM, Rutinas, Tutorial | 22 CommentsUn display de 7 segmentos no es otra cosa que 7 leds conectados entre si con su ánodo o su cátodo en común. Dependiendo del tipo de display será la manera en que se enciendan sus segmentos, un display de cátodo común requiere un 1 logico para encender mientras que uno de cátodo común un 0 así que dependiendo del display que se utilice cambiará la rutina encargada de controlarlo, pero en cualquier caso al momento de cambiar el tipo de display solo debemos cambiar los ceros por unos y viceversa.
Aqui supondremos que se usa un display de cátodo común así que los segmentos encenderán con un 1. El display estará conectado al puerto B, el segmento A estará conectado al bit RB0, el B al RB1, el C al RB2, el D al RB3 y así sucesivamente hasta llegar al G que estará conectado al bit RB6.
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.