first commit
This commit is contained in:
80
content/dxp_Lab5_a1.asm
Normal file
80
content/dxp_Lab5_a1.asm
Normal file
@@ -0,0 +1,80 @@
|
||||
;*******************************************************************************
|
||||
; MSP430 Assembler Code Template for use with TI Code Composer Studio
|
||||
; dxp_Lab5_a1.asm
|
||||
; Displays a clockwise circle
|
||||
; dbp 0301_365_20053
|
||||
; Built with CCE for MSP430 Version: 1.00
|
||||
; Updated for version 4.x.x by Dorin Patru April 2011
|
||||
; Re-coded completely for CCS v5.4, Launch Pad and Capacitive Booster Pack
|
||||
; by Dorin Patru October 2013
|
||||
;*******************************************************************************
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
.cdecls C,LIST,"msp430g2553.h" ; Include device header file
|
||||
;-------------------------------------------------------------------------------
|
||||
|
||||
; .data ; presume .data begins at 0x0200
|
||||
SPEED: .word 0x7fff ; display half speed
|
||||
;-------------------------------------------------------------------------------
|
||||
.text ; Assemble into program memory
|
||||
.retain ; Override ELF conditional linking
|
||||
; and retain current section
|
||||
.retainrefs ; Additionally retain any sections
|
||||
; that have references to current
|
||||
; section
|
||||
;-------------------------------------------------------------------------------
|
||||
RESET mov.w #__STACK_END,SP ; Initialize stackpointer
|
||||
StopWDT mov.w #WDTPW|WDTHOLD,&WDTCTL ; Stop watchdog timer
|
||||
;-------------------------------------------------------------------------------
|
||||
; Main loop here
|
||||
;-------------------------------------------------------------------------------
|
||||
clr r10 ; delay counter
|
||||
clr r11 ; LED select
|
||||
bic.b #0xff,&P1DIR ; set up P1 as input
|
||||
bis.b #0xf8,&P1DIR ; set up P1[7:3] as outputs
|
||||
;-------------------------------------------------------------------------------
|
||||
; LEDs 4-1 not elegant display
|
||||
;-------------------------------------------------------------------------------
|
||||
CIRCLE: bic.b #0xf8,&P1OUT ; prepare to display LEDs 1-4
|
||||
bis.b #0x80, &P1OUT ; turn on LED4
|
||||
call #DELAY ; wait around
|
||||
bic.b #0x80, &P1OUT ; turn off LED4
|
||||
bis.b #0x40, &P1OUT ; turn on LED3
|
||||
call #DELAY ; wait around
|
||||
bic.b #0x40, &P1OUT ; turn off LED3
|
||||
bis.b #0x20, &P1OUT ; turn on LED2
|
||||
call #DELAY ; wait around
|
||||
bic.b #0x20, &P1OUT ; turn off LED2
|
||||
bis.b #0x10, &P1OUT ; turn on LED1
|
||||
call #DELAY ; wait around
|
||||
bic.b #0x10, &P1OUT ; turn off LED1
|
||||
;-------------------------------------------------------------------------------
|
||||
; LEDs 5-8 display loop
|
||||
;-------------------------------------------------------------------------------
|
||||
bic.b #0xf8,&P1OUT ; turn out all LEDs
|
||||
bis.b #0xf8,&P1OUT ; prepare to display LEDs 5-8
|
||||
mov.b #0x08, r11 ; prepare r11 for the loop
|
||||
clrc ; clear carry
|
||||
DISP_LOOP rla.b r11 ;
|
||||
jc CIRCLE ; check if you need to display another LED
|
||||
bic.b r11, &P1OUT ; turn on LEDs 5-8
|
||||
call #DELAY ; wait around
|
||||
jmp DISP_LOOP ; jump to display the next LED
|
||||
jmp CIRCLE ; circle again
|
||||
;-------------------------------------------------------------------------------
|
||||
; Delay Subroutine
|
||||
;-------------------------------------------------------------------------------
|
||||
DELAY: mov.w &SPEED,R10
|
||||
MORE_DELAY: dec.w R10 ; Decrement R10
|
||||
jnz MORE_DELAY ; Delay over?
|
||||
ret ; return
|
||||
;-------------------------------------------------------------------------------
|
||||
; Stack Pointer definition
|
||||
;-------------------------------------------------------------------------------
|
||||
.global __STACK_END
|
||||
.sect .stack
|
||||
;-------------------------------------------------------------------------------
|
||||
; Interrupt Vectors
|
||||
;-------------------------------------------------------------------------------
|
||||
.sect ".reset" ; MSP430 RESET Vector
|
||||
.short RESET
|
||||
Reference in New Issue
Block a user