Beruflich Dokumente
Kultur Dokumente
Antes de empezar a trabajar con tu LaunchPad, es necesario que identifiques que ti-
po de MSP430 est a conectado a tu LaunchPad. Localiza en tu LaunchPad la montura
etiquetada como IC1 y toma nota de la matrcula impresa en la parte superior del circui-
to integrado. El LaunchPad viene con dos microprocesadores, y es muy probable que el
que se encuentra montado es el modelo MSP430G2553. La version del CCS se obtiene del
menu Help About Code Composer Studio . Para el caso de las Figuras 1a y 1b podemos ver que
tenemos el modelo MSP430G2452 del MSP430 y la version 6.1.0 del CCS.
(a) Matrcula del MSP430 (b) Version del Code Composer Studio
Al seleccionar la opci
on CCS Project se abrira la ventana New CCS Project . Sigue los pasos
que a continuacion se listan:
5. En la secci
on Device, elige el modelo que se encuentra montado en tu LaunchPad.
6. En la secci
on Project templates and examples, selecciona la opcion Empty Assembly-only
Project.
7. Da click en Finish.
En esta parte aprenderas como correr paso a paso un programa en ensamblador. Primero
necesitamos anadir un programa fuente al proyecto actual. Da click derecho sobre el nombre
del proyecto y despues selecciona New Source File
lo cual abrir
a la ventana New Source File. En el campo Source file le asignaras un nom-
bre al archivo que contendr a el programa fuente, introduce el nombre demo_msp430.asm.
En el campo Template elige None para crear un archivo en blanco. Da click sobre Finish
para cerrar la ventana.
Esto abrira un editor con un archivo en blanco, en donde tendras que introducir el codigo
listado en C odigo 1. Dicho programa suma cuatro pares de n umeros, los cuales pueden
interpretarse como n umeros con o sin signo. Si se interpretan como n umeros sin signo,
la bandera C indica la condicion de sobreflujo. Cuando se interpretan como n umeros con
signo, es la bandera V la que indica dicha condicion. Despues de cada suma, la bandera C
se usa para modificar el estado del LED1 y la bandera V para modificar el estado del LED2.
Si copias y pegas el c odigo, aseg urate de que los espacios y las tabulaciones se
conserven tal cual aparecen, de otra forma obtendr as errores al compilar.
C
odigo 1 : demo msp430.asm
1 ;---------------------------------------------------------------------------------
2 ; EE3376 MSP430 Lab 1
3 ; The University of Texas at El Paso
4 ; Autores: Victor Barraza y Eric MacDonald
5 ;
6 ; Un programa sencillo en ensamblador que suma cuatro pares de numeros, desplega
7 ; ndo el estado de las banderas C y V en los LEDs 1 y 2 de la LaunchPad.
8 ;---------------------------------------------------------------------------------
9 ; Las siguientes lineas deben incluirse en todos los programas en ensamblador.
10 ;---------------------------------------------------------------------------------
11 .cdecls C,LIST, "msp430G2553.h" ;Esta biblioteca debe cambiarse para que coincida
12 ;con la matricula de tu MSP430
13 .text ;Marca el inico del programa
14 .global _main ;Punto de arranque para el vector de reset
15 ;-------------------------------------------------------------------------------
16 _main:
17 mov.w #WDTPW|WDTHOLD, &WDTCTL ;detiene el temporizador "watchdog"
18 clr.b &P1OUT ;inicia con los LEDs apagados
19 mov.b #0x41, &P1DIR ;almacena el numero #01000001b en el registro P1DIR,
20 ;lo cual configura P1.0 y P1.6 como salidas
21
22 mov.w #0xFFFF,r4
;carga r4 con 64532 (sin signo) o -1 (con signo)
23 mov.w #0xFFFF,r5
;carga r5 con 64532 (sin signo) o -1 (con signo)
24 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
25 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la badera C
26 mov.w sr, r6 ;carga el contenido de sr en r6
27 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
28 ;despues de la suma se encuentra en el bit 7 de r6
29 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
30 ;despues de la suma se encuentra en el bit 6 de r6
31 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
32 clr.b &P1OUT ;apaga ambos LEDs
33
34 mov.w #0x8000,r4
;carga r4 con 32252 (sin signo) o -32253 (con signo)
35 mov.w #0x8000,r5
;carga r4 con 32252 (sin signo) o -32253 (con signo)
36 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
37 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la bandera C
38 mov.w sr, r6 ;carga el contenido de sr en r6
39 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
40 ;despues de la suma se encuentra en el bit 7 de r6
41 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
42 ;despues de la suma se encuentra en el bit 6 de r6
43 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
44 clr.b &P1OUT ;apaga ambos LEDs
45
46 mov.w #0x0001,r4
;carga r4 con 1
47 mov.w #0x0001,r5
;carag r5 con 1
48 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
49 mov.b sr, &P1OUT
;prende LED1 con base en el estado de la bandera C
50 mov.w sr, r6 ;carga el contenido de sr en r6
51 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
52 ;despues de la suma se encuentra en el bit 7 de r6
53 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
54 ;despues de la suma se encuentra en el bit 6 de r6
55 mov.b r6, &P1OUT ;prende LED2 con base en el estado de la bandera V
56 clr.b &P1OUT ;apaga ambos LEDs
57
58 mov.w #0x4000,r4 ;carga r4 con 16182
59 mov.w #0x4000,r5 ;carga r5 con 16182
60 add.w r4,r5 ;suma r4 + r5 y almacena el resultado en r5
61 mov.b sr, &P1OUT ;prende LED1 con base en el estado de la bandera C
62 mov.w sr, r6 ;carga el contenido de sr en r6
63 rra.w r6 ;corre el contenido de r6 a la derecha, el estado de la bandera V
Ahora compilaremos nuestro proyecto. Existen dos formas de hacerlo: (1) Presionando las
teclas ctrl + B , o (2) mediante el men
u Project Build Project