Beruflich Dokumente
Kultur Dokumente
Objetivos
Hacer un sistema con base en el MSP430 que cuente los objetos que pasan con
base en un detector infrarrojo, cada que pasen 10 objetos encienda un led.
Material
Sensor QRD1114
Metro
Superficie reflectora
Resistencias de 1k y 180
MSP430 Launchpad
Planteamiento
(a) (b)
Procedimiento.
1. Realzar el programa para el microcontrolador MSP430 que lea una entrada por
el pin P1.1 y encienda uno de los 2 leds, con que se cuenta el lauchpad. Cada
que se presiona el interruptor se debe incrementa la cuenta en un registro y
cambiar el estado del el led, cuando la cuenta es un mltiplo de 10 se debe
cambiar el estado del otro led. La entrada que va a leer se muestra en la figura
3.
2
F. Hugo Ramrez Leyva Microcontroladores Semforo
3
F. Hugo Ramrez Leyva Microcontroladores Semforo
Reporte
Referencias.
4
F. Hugo Ramrez Leyva Microcontroladores Semforo
//***************************************************************************
************
// MSP430 Blink the LED Demo - Software Toggle P1.0
//
// Description; Toggle P1.0 by xor'ing P1.0 inside of a software loop.
// ACLK = n/a, MCLK = SMCLK = default DCO
//
// MSP430x5xx
// -----------------
// /|\| XIN|-
// | | |
// --|RST XOUT|-
// | |
// | P1.0|-->LED
//
// J. Stevenson
// Texas Instruments, Inc
// July 2011
// Built with Code Composer Studio v5
//***************************************************************************
************
#include <msp430g2452.h>
int main(void)
{
// unsigned int i=0;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x7F; // Set P1.0 to output direction
P2DIR |= 0x00; // Set P1.0 to output direction
//i=100;
//b=i;
//b=200;
while(1)
{
volatile unsigned int b, c; // volatile to prevent
optimization
case 0: c=0x007E;
break;
case 1: c=0x0030;
5
F. Hugo Ramrez Leyva Microcontroladores Semforo
break;
case 2: c=0x006D;
break;
case 3: c=0x0079;
break;
case 4: c=0x0033;
break;
case 5: c=0x005B;
break;
case 6: c=0x001F;
break;
case 7: c=0x0070;
break;
case 8: c=0x007F;
break;
case 9: c=0x0073;
break;
case 10: c=0x000D;
break;
case 11: c=0x0019;
break;
case 12: c=0x0023;
break;
case 13: c=0x004B;
break;
case 14: c=0x000F;
break;
case 15: c=0x0000;
break;
default : break;
}
P1OUT=c;
RutRet1(1);
}
//b=10;
//RutRet1(1);
}
}
/*
void RutRet1(unsigned int a)
{
volatile unsigned int c;
c=0;
while (c <a)
{
c++;
}
}
*/
6
F. Hugo Ramrez Leyva Microcontroladores Semforo