Sunteți pe pagina 1din 6

Instituto Tecnolgico de Morelia

10120193 Jos Andrs Palma Hernndez


Prof. Eduardo lvarez Lpez;
Practica1 : CONTADOR DE BITS
Introduccin
MSP430. Es un producto de Texas Instruments, con una memoria de 64 KB es
uno de los MSP430s ms pequeos, con slo 14 pines, pero sin embargo
contiene una amplia gama de funciones, la cual nos ayudara en nuestro curso
de Lenguajes de Interfaz;
En esta primera prctica veremos principalmente los puertos de entrada y
salida.
Muchos fabricantes etiquetan los puertos con las letras pero la utilizada en TI
son con nmeros y los puertos se denominan P1, P2, y as sucesivamente (no
hay P0 en los dispositivos actuales).
El MSP430, en comn con la mayora de los procesadores, utiliza la memoria
asignada de entrada y salida. Esto significa que los puertos simplemente
aparecen a la CPU como de memoria en particular los registros llamados
registros perifricos. Cada puerto est asociado con un byte y cada bit
corresponde a un pin en el micro. Estos registros se pueden leer, escribir y ser
modificados de casi la misma manera como simples registros en la memoria
RAM.
Nosotros trabajaremos principalmente con:
P1IN: Lectura devuelve los valores lgicos de las entradas si son configurado
para entrada y salida digital. Este registro es de slo lectura. Tambin es
voltil, lo que significa que puede cambiar en un momento en que un programa
no puede predecir.
P1OUT:Valor de escritura y lectura, enva el valor para ser configurado el pin si
es como una salida digital. Si el pin no est en una salida, el valor se almacena
en un buffer y aparece en la pin si ms tarde se cambi a ser una salida.
P1DIR: Un bit en 0 configura el pin como entrada, que es el predeterminado.
Escribir un 1 cambia el pin en una salida.
P1REN: el establecimiento de un bit a 1 activa un pull-up o pull-down
resistencia en un pin. Pull-ups se utilizan a menudo para conectar un
interruptor a una entrada como en una la seccin "Leer entrada " .

Las resistencias estn inactivas por defecto es (0). Cuando el resistencia est
activada (1), si la resistencia esta en pull la entrada esta VCC (1) o hacia down
para VSS (0).

Reporte
El objetivo de la
practica
conocer el MSP430
y sus
de entrada y salida
as como
programas el micro,
el
programa es un contador de 3 bit para ello se armo un
el cual tendr 3 botones y 2 leds y resistencias el diagrama del circuito
que se encuentra en la parte de abajo .

VC
C

P1.
El

Tierr
a

circuito
es el

P1.

P1.
P1.

Tierra

led 0

MSP4

es
puertos

P1.

Tierra
P1.2 y P1.5 se
activaran en

led 1
VC
C

pull up y el p1.6 en down


P1.2 servira para reiniciar el contador

P1.5 sera para incrementar el contador


P1.6 disminuir el contador
El P1DIR se pondr en uno los pines 1 y 4 , estos son los leds,,al ponerle un
uno quiere decir que son pones de salida , esto har que el led que esta en el
P1.4 prenda ya que esta conectado inversamente.
Despus P1DIR&=~(PIN2|PIN5|PIN6); //Poner los Pines 2, 5 y 6 como entrada
asignadoles un cero estos sern los botones

VCC

P1REN|=(PIN6);

//Se configura las resistencias en el pin 6

P1OUT&=~(PIN6); //Asignamos pull-down el pin 6


P1OUT|=(PIN2|PIN5);//Asignamos pull-up el pin 2 y 5

#define P1DIR *((unsigned char*)0x22)// Inicializacin del puerto de


direcciones
#define P1OUT *((unsigned char*)0x21)//Inicializacin de puerto de salida
#define P1IN *((unsigned char*)0x20)//Inicializacin de puerto de entrada
#define P1REN *((unsigned char*)0x27)//Inicializacin de resistencias internas
#define P1SEL *((unsigned char*)0x26)//Inicializacin de puerto de seleccin
#define P1SEL2 *((unsigned char*)0x41)//Inicializacin de puerto de seleccin
2
#define WDTCTL *((unsigned int*)0x120)//Inicializacin del tiempo viga
//////////////////////////////
// //Inicializacin de Mascaras///
//////////////////////////////
#define PIN0 0X01//Inicializacin de mascara 0 con 0001 en la parte baja
#define PIN1 0X02//Inicializacin de mascara 1 con 0010 en la parte baja

#define PIN2 0X04//Inicializacin de mascara 2 con 0100 en la parte baja


#define PIN3 0X08////Inicializacin de mascara 3 con 1000 en la parte baja
#define PIN4 0X10//Inicializacin de mascara 4 con 0001 en la parte alta
#define PIN5 0X20//Inicializacin de mascara 5 con 0010 en la parte alta
#define PIN6 0X40//Inicializacin de mascara 6 con 0100 en la parte alta
#define PIN7 0X80//Inicializacin de mascara 7 con 1000 en la parte alta
//////////////////////////////
// //Inicializacin de Mtodos ///
//////////////////////////////
void Configurar_Puertos(void);//Inicializacin de mtodo de configuracin de
puertos

int main(void) {
Configurar_Puertos();//se llama al metodo configuracin de puertos
int contador=0;//inicializamos la variable contador que nos ayudara a ser
el indice
while(1){//entramos al while infinito
if(((P1IN&PIN2)>>2)==0){//Checa si el boton esta
presionado ya que en este momento tiene un uno en la salida y si se presiona
pone a cero

contador=0;//sele asigna un cero a la variable para reiniciarla


P1OUT&=~(PIN1|PIN4);//se cambia los valore de salida de los pines 1 y 4

P1OUT|=((contador&PIN0)<<1);//para despus poner un uno en el pin uno


P1OUT|=((contador&PIN1)<<3);//despus el PIN1 de la variable contador en el
pin 4
while(((P1IN&PIN2)>>2)==0){}//bucle si se deja precionado el boton
}else if(((P1IN&PIN5)>>5)==0){//Checa si el botn esta presionado ya que en
este momento tiene un uno en la salida y si se presiona pone a cero

contador++;//aumenta un uno siempre ,cuando se presiona el botn


P1OUT&=~(PIN1|PIN4);//se cambia los valore de salida de los pines 1 y 4
P1OUT|=((contador&PIN0)<<1);//para despus poner un uno en el pin uno
P1OUT|=((contador&PIN1)<<3);//despus el PIN1 de la variable contador en el
pin 4
while(((P1IN&PIN5)>>5)==0){}//bucle si se deja precionado el boton
}else if(((P1IN&PIN6)>>6)==1){{//Checa si el botn esta presionado ya que en
este momento tiene un cero en la salida y si se presiona pone a uno
contador;//el contador desincrementa un uno
P1OUT&=~(PIN1|PIN4);//se cambia los valore de salida de los pines 1 y 4
P1OUT|=((contador&PIN0)<<1);//para despus poner un uno en el pin uno
P1OUT|=((contador&PIN1)<<3);//despus el PIN1 de la variable contador en el
pin 4
while(((P1IN&PIN6)>>6)==1){}//bucle si se deja precionado el boton
}
}
return 0;
}

void Configurar_Puertos(void){
WDTCTL=0x5A80; //detenemos el watchdog
//0 ENTRADA 1 SALIDA
P1DIR|=(PIN1|PIN4);
//Poner el pin4 y pin1 como salida asignndole
un 1, estos son los leds, esto har que el led que esta en el P1.4 prenda ya que
esta conectado
P1DIR&=~(PIN2|PIN5|PIN6); //Poner los Pines 2, 5 y 6 como entrada
asignadoles un cero estos sern los botones

P1REN|=(PIN6);

//Se configura las resistencias en el pin 6

P1OUT&=~(PIN6); //Asignamos pull-down el pin 6


P1OUT|=(PIN2|PIN5);//Asignamos pull-up el pin 2 y 5
P1SEL=0; //Se asegura que las terminales estn asignadas al puerto
P1SEL2=0; // Y no a otros modulos

}
Conclusin
Con el resultado de la practica se concluye que se aprendi a como usar los
puertos de entrada y salida as mismo se aprendi a conectar un circuito y sus
elementos en pullup y pulldown.
por otro lado tambin se aprendi a manejar los operadores lgicos como el
and negada para poner en ceros los bit que deseamos o poner en uno con el
operador or.

S-ar putea să vă placă și