Sei sulla pagina 1di 19

CONSIDERACIONES TEORICAS

Los principiantes en electrnica creen que un microcontrolador es igual a un


microprocesador. Esto no es cierto. Difieren uno del otro en muchos sentidos. La
primera y la ms importante diferencia es su funcionalidad. Para utilizar al
microprocesador en una aplicacin real, se debe de conectar con componentes
tales como memoria o componentes buses de transmisin de datos. Aunque el
microprocesador se considera una mquina de computacin poderosa, no est
preparado para la comunicacin con los dispositivos perifricos que se le
conectan. Para que el microprocesador se comunique con algn perifrico, se
deben utilizar los circuitos especiales. As era en el principio y esta prctica sigue
vigente en la actualidad.

Por otro lado, al microcontrolador se le disea de tal manera que tenga todas las
componentes integradas en el mismo chip. No necesita de otros componentes
especializados para su aplicacin, porque todos los circuitos necesarios, que de
otra manera correspondan a los perifricos, ya se encuentran incorporados. As se
ahorra tiempo y espacio necesario para construir un dispositivo.
QUE PUEDEN HACER LOS MICROCONTROLADORES?

Para entender con ms facilidad las razones del xito tan grande de los
microcontroladores, vamos a prestar atencin al siguiente ejemplo. Hace unos 10
aos, disear un dispositivo electrnico de control de un ascensor de un edificio de
varios pisos era muy difcil, incluso para un equipo de expertos. Ha pensado
alguna vez en qu requisitos debe cumplir un simple ascensor? Cmo lidiar con
la situacin cuando dos o ms personas llaman al ascensor al mismo tiempo?
Cul llamada tiene la prioridad? Cmo solucionar las cuestiones de seguridad,
de prdida de electricidad, de fallos, de uso indebido? Lo que sucede despus de
resolver estos problemas bsicos es un proceso meticuloso de disear los
dispositivos adecuados utilizando un gran nmero de los chips especializados.
Este proceso puede tardar semanas o meses, dependiendo de la complejidad del
dispositivo. Cuando haya terminado el proceso, llega la hora de disear una placa
de circuito impreso y de montar el dispositivo.Un dispositivo enorme! Es otro
trabajo difcil y tardado. Por ltimo, cuando todo est terminado y probado
adecuadamente, pasamos al momento crucial y es cuando uno se concentra,
respira profundamente y enciende la fuente de alimentacin.
Esto suele ser el punto en el que la fiesta se convierte en un verdadero trabajo
puesto que los dispositivos electrnicos casi nunca funcionan apropiadamente
desde el inicio. Preprese para muchas noches sin dormir, correcciones,
mejoras... y no se olvide de que todava estamos hablando de cmo poner en
marcha un simple ascensor.
Cuando el dispositivo finalmente empiece a funcionar perfectamente y todo el
mundo est satisfecho, y le paguen por el trabajo que ha hecho, muchas
compaas de desarrollo estarn interesadas en su trabajo. Por supuesto, si tiene
suerte, cada da le traer una oferta de trabajo de un nuevo inversionista. Sin
embargo, si lo requieren para trabajar en el control de los elevadores de un nuevo
edificio que tiene cuatro pisos ms de los que ya maneja su sistema de control.
Sabe cmo proceder? Cree acaso que se pueden controlar las demandas de
sus clientes? Pensamos que usted va a construir un dispositivo universal que se
puede utilizar en los edificios de 4 a 40 pisos, una obra maestra de electrnica.
Bueno, incluso si usted consigue construir una joya electrnica, su inversionista le
esperarar delante de la puerta pidiendo una cmara en el ascensor o una msica
relajante en caso de fallo de ascensor. O un ascensor con dos puertas.

SISTEMA DE NUMERACIN BINARIO


Qu pasara si utilizramos slo dos nmeros 0 y 1? Si slo pudiramos afirmar
(1) o negar (0) que algo existe. La respuesta es nada especial, seguiramos
utilizando los mismos nmeros de la misma manera que utilizamos hoy en da, no
obstante ellos pareceran un poco diferentes. Por ejemplo: 11011010.Cuntas
son realmente 11011010 pginas de un libro? Para entenderlo, siga la misma
lgica como en el ejemplo anterior, pero en el orden invertido. Tenga en cuenta
que se trata de aritmtica con slo dos dgitos 0 y 1, es decir, del sistema de
numeracin en base 2 (sistema de numeracin binario).

Evidentemente, se trata del mismo nmero representado en dos sistemas de


numeracin diferentes. La nica diferencia entre estas dos representaciones yace
en el nmero de dgitos necesarios para escribir un nmero. Un dgito (2) se utiliza
para escribir el nmero 2 en el sistema decimal, mientras que dos dgitos (1 y 0)
se utilizan para escribir aquel nmero en el sistema binario. Ahora est de
acuerdo que hay 10 grupos de gente? Bienvenido al mundo de la aritmtica
binaria! Tiene alguna idea de dnde se utiliza?
Excepto en las condiciones de laboratorio estrictamente controladas, los circuitos
electrnicos ms complicados no pueden especificar con exactitud la diferencia
entre dos magnitudes (dos valores de voltaje, por ejemplo), si son demasiado
pequeos (ms pequeos que unos pocos voltios). La razn son los ruidos
elctricos y fenmenos que se presentan dentro de lo que llamamos entorno de
trabajo real (algunos ejemplos de estos fenmenos son los cambios imprevisibles
de la tensin de alimentacin, cambios de temperatura, tolerancia a los valores de

los componentes etc...). Imagnese una computadora que opera sobre nmeros
decimales al tratarlos de la siguiente manera: 0=0V, 1=5V, 2=10V, 3=15V, 4=20V...
9=45V!?
Alguien dijo bateras?
Una solucin mucho ms fcil es una lgica binaria donde 0 indica la ausencia de
voltaje, mientras que 1 indica la presencia de voltaje. Simplemente, es fcil de
escribir 0 o 1 en vez de no hay voltaje o hay voltaje. Mediante el cero lgico (0)
y uno lgico (1) la electrnica se enfrenta perfectamente y realiza con facilidad
todas las operaciones aritmticas. Evidentemente, se trata de electrnica que en
realidad aplica aritmtica en la que todos los nmeros son representados con slo
dos dgitos y donde slo es importante saber si hay voltaje o no. Por supuesto,
estamos hablando de electrnica digital.
SISTEMA DE NUMERACIN HEXADECIMAL
En el principio del desarrollo de las computadoras era evidente que a la gente le
costaba mucho trabajar con nmeros binarios. Por eso, se estableci un nuevo
sistema de numeracin, que utilizaba 16 smbolos diferentes. Es llamado el
sistema de numeracin hexadecimal. Este sistema est compuesto de 10 dgitos a
los que estamos acostumbrados (0, 1, 2, 3,... 9) y de seis letras del alfabeto A, B,
C, D, E y F. Cul es el propsito de esta combinacin aparentemente extraa?
Basta con mirar cmo todo en la historia de los nmeros binarios encaja
perfectamente para lograr una mejor comprensin del tema.

El mayor nmero que puede ser representado con 4 dgitos binarios es el nmero
1111. Corresponde al nmero 15 en el sistema decimal. En el sistema hexadecimal
ese nmero se representa con slo un dgito F. Es el mayor nmero de un dgito
en el sistema hexadecimal. Se da cuenta de la gran utilidad de estas
equivalencias? El mayor nmero escrito con ocho dgitos binarios es a la vez el
mayor nmero de dos dgitos en el sistema hexadecimal. Tenga en cuenta que

una computadora utiliza nmeros binarios de 8 dgitos. Acaso se trata de una


casualidad?
CDIGO BCD
El cdigo BCD (Binary-Coded Decimal - Cdigo binario decimal) es un cdigo
binario utilizado para representar a los nmeros decimales. Se utiliza para que los
circuitos electrnicos puedan comunicarse con los perifricos utilizando el sistema
de numeracin decimal o bien utilizando el sistema binario dentro de su propio
mundo. Consiste en nmeros binarios de 4 dgitos que representan los primeros
diez dgitos (0, 1, 2, 3...8, 9). Aunque cuatro dgitos pueden hacer 16
combinaciones posibles en total, el cdigo BCD normalmente utiliza a las primeras
diez.
CONVERSIN DE SISTEMAS DE NMERACIN
El sistema de numeracin binario es el que utilizan los microcontroladores, el
sistema decimal es el que nos resulta ms comprensible, mientras que el sistema
hexadecimal presenta un balance entre los dos. Por eso, es muy importante
aprender cmo convertir los nmeros de un sistema de numeracin a otro, por
ejemplo, cmo convertir una serie de ceros y unos a una forma de representacin
comprensible para nosotros.
CONVERSIN DE NMEROS BINARIOS A DECIMALES
Los dgitos en un nmero binario tienen ponderaciones diferentes lo que depende
de sus posiciones dentro del nmero que estn representando. Adems, cada
dgito puede ser 1 o 0, y su ponderacin se puede determinar con facilidad al
contar su posicin empezando por la derecha. Para hacer una conversin de un
nmero binario a decimal es necesario multiplicar las ponderaciones con los
dgitos correspondientes (0 o 1) y sumar todos los resultados.
MARCAR LOS NMEROS
El sistema de numeracin hexadecimal, junto con los sistemas binario y decimal,
se consideran los ms importantes para nosotros. Es fcil realizar una conversin
de cualquier nmero hexadecimal a binario, adems es fcil de recordarlo. Sin
obstante, estas conversiones pueden provocar una confusin. Por ejemplo, qu

significa en realidad la sentencia: Es necesario contar 110 productos en una


cadena de montaje? Dependiendo del sistema en cuestin (binario, decimal o
hexadecimal), el resultado podra ser 6, 110 o 272 productos, respectivamente.
Por consiguiente, para evitar equivocaciones, diferentes prefijos y sufijos se
aaden directamente a los nmeros. El prefijo $ o 0x as como el sufijo h marca
los nmeros en el sistema hexadecimal. Por ejemplo, el nmero hexadecimal
10AF se puede escribir as: $10AF, 0x10AF o 10AFh. De manera similar, los
nmeros binarios normalmente obtienen el sufijo % o 0B. Si un nmero no tiene ni
sufijo ni prefijo se considera decimal. Desafortunadamente, esta forma de marcar
los nmeros no es estandarizada, por consiguiente depende de la aplicacin
concreta.
La siguiente es tabla comparativa que contiene los valores de nmeros 0-255
representados en tres sistemas de numeracin diferentes. Esto es probablemente
la manera ms fcil de entender lgica comn aplicada a todos los sistemas de
numeracin.

BIT

La teora dice que un bit es la unidad bsica de informacin...Vamos a olvidarlo


por un momento y demostrar qu es eso en la prctica. La respuesta es - nada
especial- un bit es un slo dgito binario. Similar a un sistema de numeracin
decimal en el que los dgitos de un nmero no tienen la misma ponderacin (por
ejemplo, los dgitos en el nmero 444 son los mismos pero tienen los valores
diferentes), el significado de un bit depende de la posicin que tiene en nmero
binario. En este caso no tiene sentido hablar de unidades, centenas etc. en los
nmeros binarios, sus dgitos se denominan el bit cero (el primer bit a la derecha),
el primer bit (el segundo bit a la derecha) etc. Adems, ya que el sistema binario
utiliza solamente dos dgitos (0 y 1), el valor de un bit puede ser 0 o 1.
No se confunda si se encuentra con un bit que tiene el valor 4, 16 o 64. Son los
valores representados en el sistema decimal. Simplemente, nos hemos
acostumbrado tanto a utilizar los nmeros decimales que estas expresiones
llegaron a ser comunes. Sera correcto decir por ejemplo, el valor del sexto bit en
cualquier nmero binario equivale al nmero decimal 64. Pero todos somos
humanos y los viejos hbitos mueren difcilmente. Adems, cmo le suena
nmero uno-uno-cero-uno-cero...?
BYTE
Un byte consiste en 8 bits colocados uno junto al otro. Si un bit es un dgito, es
lgico que los bytes representen los nmeros. Todas las operaciones matemticas
se pueden realizar por medio de ellos, como por medio de los nmeros decimales
comunes. Similar a los dgitos de cualquier nmero, los dgitos de un byte no
tienen el mismo significado. El bit del extremo izquierdo tiene la mayor
ponderacin, por eso es denominado el bit ms significativo (MSB). El bit del
extremo derecho tiene la menor ponderacin, por eso es denominado el bit menos
significativo (LSB). Puesto que los 8 dgitos de un byte se pueden combinar de
256 maneras diferentes, el mayor nmero decimal que se puede representar con
un byte es 255 (una combinacin representa un cero).
Un nibble o un cuarteto representa una mitad de byte. Dependiendo de la mitad
del nmero en cuestin (izquierda o derecha), se les denomina nibbles altos o
bajos, respectivamente.

PUERTOS DE ENTRADA/SALIDA (E/S)


Para hacer til un microcontrolador, hay que conectarlo a un dispositivo externo, o
sea, a un perifrico. Cada microcontrolador tiene uno o ms registros
(denominados puertos) conectados a los pines en el microcontrolador. Por qu
se denominan como puertos de entrada/salida? Porque usted puede cambiar la
funcin de cada pin como quiera. Por ejemplo, usted desea que su dispositivo
encienda y apague los tres seales LEDs y que simultneamente monitoree el
estado lgico de 5 sensores o botones de presin. Uno de los puertos debe estar
configurado de tal manera que haya tres salidas (conectadas a los LEDs) y cinco
entradas (conectadas a los sensores). Eso se realiza simplemente por medio de
software, lo que significa que la funcin de algn pin puede ser cambiada durante
el funcionamiento.
Una de las caractersticas ms importantes de los pines de entrada/salida (E/S) es
la corriente mxima que pueden entregar/recibir. En la mayora de los
microcontroladores la corriente obtenida de un pin es suficiente para activar un
LED u otro dispositivo de baja corriente (10-20mA). Mientras ms pines de E/S
haya, ms baja es la corriente mxima de un pin. En otras palabras, todos los
puertos de E/S comparten la corriente mxima declarada en la hoja de
especificacin tcnica del microprocesador.
Otra caracterstica importante de los pines es que pueden disponer de los
resistores pull-up. Estos resistores conectan los pines al polo positivo del voltaje
de la fuente de alimentacin y su efecto se puede ver al configurar el pin como una
entrada conectada a un interruptor mecnico o a un botn de presin. Las ltimas

versiones de los microcontroladores tienen las resistencias pull-up configurables


por software.
Cada puerto de E/S normalmente est bajo el control de un registro SFR
especializado, lo que significa que cada bit de ese registro determina el estado del
pin correspondiente en el el microcontrolador. Por ejemplo, al escribir un uno
lgico (1) a un bit del registro de control (SFR), el pin apropiado del puerto se
configura automticamente como salida. Eso significa que el voltaje llevado a ese
pin se puede leer como 0 o 1 lgico. En caso contrario, al escribir 0 al registro
SFR, el pin apropiado del puerto se configura como salida. Su voltaje (0V o 5V)
corresponde al estado del bit apropiado del registro del puerto.
UNIDAD DE MEMORIA
La unidad de memoria es una parte del microcontrolador utilizada para almacenar
los datos. La manera ms fcil de explicarlo es compararlo con un armario grande
con muchos cajones. Si marcamos los cajones claramente, ser fcil acceder a
cualquiera de sus contenidos al leer la etiqueta en la parte delantera del cajn.
OSCILADOR
Los pulsos uniformes generados por el oscilador permiten el funcionamiento
armnico y sncrono de todos los circuitos del microcontrolador. El oscilador se
configura normalmente de tal manera que utilice un cristal de cuarzo o resonador
cermico para estabilizacin de frecuencia. Adems, puede funcionar como un
circuito autnomo (como oscilador RC). Es importante decir que las instrucciones
del programa no se ejecutan a la velocidad impuesta por el mismo oscilador sino
varias veces ms despacio. Eso ocurre porque cada instruccin se ejecuta en
varios ciclos del oscilador. En algunos microcontroladores se necesita el mismo
nmero de ciclos para ejecutar todas las instrucciones, mientras que en otros el
tiempo de ejecucin no es el mismo para todas las instrucciones. Por
consiguiente, si el sistema utiliza el cristal de cuarzo con una frecuencia de 20
MHZ, el tiempo de ejecucin de una instruccin de programa no es 50 nS, sino
200, 400 o 800 nS dependiendo del tipo del microcontrolador.

MICROCONTROLADORES PIC
Los microcontroladores PIC desarrollados por Microchip Technology son
probablemente la mejor opcin si es principiante. Hay varias razones por lo que
esto es verdadero...
El nombre verdadero de este microcontrolador es PICmicro (Peripheral Interface
Controller), conocido bajo el nombre PIC. Su primer antecesor fue creado en 1975
por la compaa General Instruments. Este chip denominado PIC1650 fue
diseado para propsitos completamente diferentes. Diez aos ms tarde, al
aadir una memoria EEPROM, este circuito se convirti en un verdadero
microcontrolador PIC. Hace unos pocos aos la compaa Microchip
Technology fabric la 5 billonsima muestra. Si est interesado en aprender ms
sobre eso, siga leyendo.
If you are interested in learning more about it, just keep on reading.
La idea principal de este libro es proporcionar la informacin necesaria al usuario
para que sea capaz de utilizar los microcontroladores en la prctica despus de
leerlo. Para evitar explicaciones pesadas y las historias infinitas sobre las
caractersticas tiles de los microcontroladores diferentes, este libro describe el
funcionamiento de un modelo particular que pertenece a la clase media alta. Es
PIC16F887 - bastante poderoso para ser digno de atencin y bastante simple para
poder ser utilizado por cualquiera. As, los siguientes captulos describen este
microcontrolador en detalle y tambin se refieren a la familia PIC entera.

JUEGO DE INSTRUCCIONES
El juego de instrucciones para los microcontroladores 16F8XX incluye 35
instrucciones en total. La razn para un nmero tan reducido de instrucciones
yace en la arquietectura RISC. Esto quiere decir que las instrucciones son bien
optimizadas desde el aspecto de la velocidad operativa, la sencillez de la
arquitectura y la compacidad del cdigo. Lo malo de la arquitectura RISC es que
se espera del programador que haga frente a estas instrucciones. Por supuesto,
esto es relevante slo si se utiliza el lenguaje ensamblador para la programacin.
Este libro se refiere a la programacin en el lenguaje de alto nivel C, lo que
significa que la mayor parte del trabajo ya fue hecho por alguien ms. As, slo se
tienen que utilizar instrucciones relativamente simples.
TIEMPO DE EJECUCIN DE INSTRUCCIONES
Todas las instrucciones se ejecutan en un ciclo. La nicas excepciones pueden ser
las instrucciones de ramificacin condicional o las instrucciones que cambian el
contenido del contador de programa. En ambos casos, dos ciclos de reloj son
necesarios para la ejecucin de la instruccin, mientras que el segundo ciclo se

ejecuta como un NOP (No operation). Las instrucciones de un ciclo consisten en


cuatro ciclos de reloj. Si se utiliza un oscilador de 4 MHz, el tiempo nominal para la
ejecucin de la instruccin es 1S. En cuanto a las instrucciones de ramificacin,
el tiempo de ejecucin de la instruccin es 2S.
Juego de instrucciones de los microcontroladores PIC de 14 bits:

DESARROLLO DE LA PRCTICA
Ejercicio 1
Escribe el cdigo fuente de un programa escrito en lenguaje C, el cual
gobierne un micro controlador (PIC16F84), este programa debe
configurar las lneas de la PUERTAA como entradas y las lneas de la
PUERTAB como salidas, dicho programa debe enviar el siguiente tren de
informacin hacia la PUERTAB del PIC: 1, 2, 4 ,8, 16,32,64 y 128, cada
dato debe enviarse a dicho puerto por un periodo de tiempo igual a 3
milisegundos , es decir se enva un 1 por tres milisegundos y enseguida
se enva un 2 por el mismo lapso de tiempo, del mismo modo con los 8
valores solicitados. Una vez que hayas escrito tu programa complalo y
prubalo con ayuda del isis.

#include <16F84.H>
UTILIZAR*/
#fuses XT
#use
delay( clock = 4000000 )
#include <math.h>
void main(void)
{
int32 x = 0;
int32 ciclos = 255, i =0;

/*LIBRERIA DEL PIC A


/*TIPO DE OSCILADOR*/
/* Especifica reloj de 4 MHz */

/*DECLARACION DE VARIABLE*/
/* Declaracion de Valriables */

int *p_puertaa= 0x05;


int *p_puertab= 0x06;
int b = 2;
SET_TRIS_A (0xff);
PUERTAS A SON ENTRADAS*/
SET_TRIS_B (0x00);
PUERTAS B SON SALIDAS */
/*inicio */
x =1;
para simular 2^0
*p_puertab = x ;
delay_MS(500);
x =2;
*p_puertab = x ;
decimal para simular 2^1
delay_MS(500);
for (i =2; i <= ciclos; i++)
la que sigue
{
x = x*b;
= 2 se multiplique

/* Puntero a PuertaA */
/* Puntero a PuertaB */

/* 0xff --> TRISATODAS LAS


/* 0x00 --> TRISB TODAS LAS

*// Se le da el valor 1 a x en decimal


*// Sale x=1 en binario

*// Se le da el valor 2 a x en
*// Sale x = 2 en binario
*// i = 2 ya que la potencia 2 es

*//Dentro del for se hace que x


*//por una constante dos para

que siga las potencias


*p_puertab = x;
delay_MS(500);
}
x = 0;
*p_puertab = x;
delay_MS(2000);
puerta:
x = *p_puertaa;
*p_puertab = x;
goto puerta;
}
Ejercicio 2

*// de 2.
/*INICIA CUENTA*/

Edita el cdigo fuente del programa llamado DOS.c escrito en lenguaje


C, el cual gobierne un micro controlador (PIC16F84), este programa
configurara las lneas de la PUERTAA como entradas y las lneas de la
PUERTAB como salidas, dicho programa debe enviar activar un display
de 7 segmentos de ctodo comn, es decir la terminal comn para los

diodos que forman el display debe conectarse a tierra. Debe visualizarse


un conteo ascendente en el display de 0 a 9, cada nmero se visualizara
por dos segundos, una vez concluido el conteo debe detenerse y
apagarse el display. Una vez que hayas escrito tu programa complalo y
prubalo con ayuda del isis.

#include <16F84.H>
UTILIZAR*/
#fuses XT
OSCILADOR*/
#use
delay( clock = 4000000 )
MHz */

/*LIBRERIA DEL PIC A


/*TIPO DE
/* Especifica reloj de 4

void main(void)
{
int32 x = 0;
VARIABLE*/
//int32 ciclos = 15, i =0;
int *p_puertaa= 0x05;
int *p_puertab= 0x06;
SET_TRIS_A (0xff);
PUERTAS A SON ENTRADAS*/

/*DECLARACION DE
/* Declaracion de Valriables */
/* Puntero a PuertaA */
/* Puntero a PuertaB */
/* 0xff --> TRISATODAS LAS

SET_TRIS_B (0x00);
LAS PUERTAS B SON SALIDAS */
/*inicio */

/* 0x00 --> TRISB TODAS

*// A partir de aqu se imprimen


los valores del 1 al 9

*p_puertab = 0xFC;
delay_MS(500);
*p_puertab =0x60;
delay_MS(500);
*p_puertab =0xDA;
delay_MS(500);
*p_puertab =0xF2;
delay_MS(500);
*p_puertab =0x66;
delay_MS(500);
*p_puertab =0xB6;
delay_MS(500);
*p_puertab =0xBE;
delay_MS(500);
*p_puertab =0xE0;
delay_MS(500);
*p_puertab =0xFE;
delay_MS(500);
*p_puertab =0xE6;
delay_MS(500);
otro:

// A partir de aqu se le asigna el


valor de 0 a la puertab, e imprime
solo ceros en binario

*p_puertab =0;
delay_MS(500);
goto otro;

Ejercicio 3
Una vez que hallas concluido el ejercicio nmero 2, realiza lo siguiente:
Edita el cdigo fuente que realizaste en el ejercicio anterior, el programa
debe permitir que el usuario accione los cinco interruptores conectados
a la PUERTAA del micro controlador (el usuario puede accionar uno o
varios interruptores a la vez), dependiendo del estado de los
interruptores accionados (abierto o cerrado), en el display de debe
visualizarse el nmero correspondiente. Recuerda que con 5 bits puedes
tener hasta 31 valores diferentes. Pero con un dysplay de 7 segmentos
nicamente puedes visualizar del nmero 0 al nmero 9.

#include <16F84.H>
UTILIZAR*/
#fuses XT
#use
delay( clock = 4000000 )
MHz */

/*LIBRERIA DEL PIC A


/*TIPO DE OSCILADOR*/
/* Especifica reloj de 4

void main(void)
{
int32 lee = 0;
VARIABLE*/
//int32 ciclos = 15, i =0;
int *p_puertaa= 0x05;
int *p_puertab= 0x06;

/*DECLARACION DE
/* Declaracion de Valriables */
/* Puntero a PuertaA */
/* Puntero a PuertaB */

SET_TRIS_A (0xff);
PUERTAS A SON ENTRADAS*/
SET_TRIS_B (0x00);
LAS PUERTAS B SON SALIDAS */

/* 0xff --> TRISATODAS LAS


/* 0x00 --> TRISB TODAS

/*inicio */
otro:
lee= *p_puertaa;
switch(lee){
case 0:
lee=0b00000;
*p_puertab =0xFC;
goto otro;
break;
case 1:
lee=0b00001;
*p_puertab =0x60;
goto otro;
break;
case 2:
lee=0b00010;
*p_puertab =0xDA;
goto otro;
break;
case 3:
lee=0b00011;
*p_puertab =0xF2;
goto otro;
break;
case 4:
lee=0b00100;
*p_puertab =0x66;
goto otro;
break;
case 5:
lee=0b00101;

// Se declara un switch que da valores a


cada botn de 0 o 1 y permite dar un valor
de salida en binario sobre el display de 7
LEDs , en el caso de que la combinacin
en binario no se pueda mostrar sobre el
display solo se muestra una lnea de
nulidad.

*p_puertab =0xB6;
goto otro;
break;
case 6:
lee=0b00110;
*p_puertab =0xBE;
goto otro;
break;
case 7:
lee=0b00111;
*p_puertab =0xE0;
goto otro;
break;
case 8:
lee=0b01000;
*p_puertab =0xFE;
goto otro;
break;
case 9:
lee=0b01001;
*p_puertab =0xE6;
goto otro;
break;
default:
*p_puertab =0x02;
goto otro;
break;
}

Potrebbero piacerti anche