Friday, 1 November 2013

ARM (LPCXXXX) Assembly Program for LED control by taking input from sensor

@;======================================================================
@;      LED ON and OFF Program by taking input from sensor
@;           
@;      Modified by GAURAV VERMA
@;     
@;
@;======================================================================

        AREA PROGRAM, CODE, READONLY
                                ENTRY
PINSEL0 EQU 0xE002C000
PINSEL1 EQU 0xE002C004
IOPIN   EQU 0xE0028000
IODIR   EQU 0xE0028008
IOSET   EQU 0xE0028004
IOCLR   EQU 0xE002800C
                               
                                ldr     r1,=PINSEL0             ; PINSEL0 controls pin 0-15
                                ldr     r2,=0x00000000      ;default GPIO function 00
                                str     r2, [r1]
                                ldr     r1,=IODIR
                                 ldr     r2,=0xFFFFFFFE  ; 0-INPUT 1-OUTPUT 0:31
                                str     r2, [r1]

BACK                     ldr     r0,=IOSET
                                ldr     r1,=0x7BFFFFFF ; SET ALL
                                str     r1, [r0]

                                ldr     r0,=IOPIN
key                          ldr     r3, [r0]
                                CMPS    r3, #0x03FFFFFF ; checking whether switch is pressed or not
                                beq     key
                               
                                ldr     r0,=IOCLR
                                ldr     r2,=0x00000010 ; CLR p0.4
                                str     r2, [r0]
                                BL WAIT
                                BAL BACK

WAIT                     MOV r4, #0x00100000
BACK1                   nop
                                SUBS r4, r4, #1
                                bne     BACK1
                                bx R14
                                           END

Thursday, 31 October 2013

ARM PPT











ARM (LPCXXXX) Assembly Program for LED Blinking

@;===========================================================================
@;      LED Blinking program
@;     
@;      Modified by GAURAV VERMA
@;      
@;===========================================================================

AREA PROGRAM, CODE, READONLY
                        ENTRY
                                               
PINSEL0 EQU 0xE002C000
PINSEL1 EQU 0xE002C004

IOPIN   EQU 0xE0028000
IODIR   EQU 0xE0028008
IOSET   EQU 0xE0028004
IOCLR   EQU 0xE002800C
                               
                        ldr     r1,=PINSEL0             ; PINSEL0 controls pin 0-15,@; PINSEL1 controls pin 16-31
                        ldr     r2,=0x00000000    ;default GPIO function 00
                        str     r2, [r1]
                                                               
                        ldr     r1,=IODIR
                        ldr     r2,=0xFFFFFFFF  ; 0-INPUT 1-OUTPUT 0:31 (12 -LED)
                        str     r2, [r1]
                               
                         ; ON LED (GPIO) (GPIO LOW-ON)
BACK              ldr     r0,=IOCLR
                         ldr     r1,=0xFFFFFFFF ; CLR ALL
                         str     r1, [r0]
                         BL WAIT
                               
                       ; OFF LED (GPIO) (GPIO HIGH-OFF)
                          ldr     r0,=IOSET
                          ldr     r1,=0xFFFFFFFF ; SET ALL
                          str     r1, [r0]
                          BL WAIT
                          BAL BACK

WAIT                MOV r4, #0x00100000
BACK1              nop
                           SUBS r4, r4, #1
                            bne  BACK1
                            bx R14

                            END