Professional Documents
Culture Documents
L Thanh
r9, SWITCHES
movia
r10, RED_LEDS
ldwio
r7, 0(r9)
andi
bne
stwio
r7, 0(r10)
r0, 0(r10)
br
main
.end
1|Page
L Thanh
====================================================================
r9, SWITCHES
movia
r10, RED_LEDS
ldwio
r7, 0(r9)
beq
stwio
r7, 0(r10)
r0, 0(r10)
br
main
.end
2|Page
L Thanh
====================================================================
r10, SWITCHES
movia
r12, RED_LEDS
movia
r4, M
ldw
r7, 0(r4)
ldwio
r9, 0(r10)
andi
bge
# Kiem tra N<M ko? Neu khong thi quay lai main
stwio
r9, 0(r12)
br
main
RESET:
stwio
r0, 0(r12)
br
main
.data
M:
.word 7
.end
3|Page
L Thanh
====================================================================
r10, SWITCHES
movia
r12, RED_LEDS
movia
r4, M
ldw
r7, 0(r4)
ldwio
r9, 0(r10)
andi
ble
# Kiem tra N>M ko? Neu khong thi quay lai main
stwio
r9, 0(r12)
br
main
RESET:
stwio
r0, 0(r12)
br
main
.data
M:
.word 7
.end
4|Page
L Thanh
====================================================================
r10, SWITCHES
movia
r12, RED_LEDS
movia
r4, M1
ldw
r7 = 7
r7, 0(r4)
ldw
r8, 4(r4)
r9, 0(r10)
andi
ble
COMPARE_M2
br
main
COMPARE_M2:
bge
r9, 0(r12)
ret
RESET:
stwio
r0, 0(r12)
br
main
.data
M1:
.word 7
M2:
.word 15
.end
5|Page
L Thanh
====================================================================
r10, SWITCHES
movia
r12, RED_LEDS
movia
r4, M1
ldw
r7, 0(r4)
r8, 4(r4)
r9, 0(r10)
andi
bgt
r9, 0(r12)
br
main
COMPARE_M2:
blt
r9, 0(r12)
br
main
RESET:
stwio
r0, 0(r12)
br
main
.data
M1:
.word 7
M2:
.word 15
.end
6|Page
L Thanh
7|Page
L Thanh
====================================================================
r10, SWITCHES
movia
r12, RED_LEDS
movia
r4, Divisor
ldw
r7, 0(r4)
ldwio
r9, 0(r10)
andi
div
r8, r9, r7
mul
r8, r8, r7
bne
stwio
r9, 0(r12)
br
main
RESET:
stwio
r0, 0(r12)
br
main
.data
Divisor:
.word 3
# De N chia het cho 4, 6, 8 thi cho gia tri nay bang 4, 6, 8
.end
8|Page
L Thanh
====================================================================
r10, SW
movia
r12, RED_LEDS
movi
r7, 0x2
movi
r5, 0x1
ldwio
r9, 0(r10)
andi
beq
beq
div
r8, r9, r7
mul
r8, r8, r7
bne
bne
stwio
r9, 0(r12)
br
main
addi
r7, r7, 1
br
LOOP
LOOP:
TEMP:
RESET:
stwio
r0, 0(r12)
br
main
.end
9|Page
L Thanh
====================================================================
r10, SW
movia
r12, RED_LEDS
movi
r7, 0x2
movi
r5, 0x1
ldwio
r9, 0(r10)
andi
div
r8, r9, r7
mul
r8, r8, r8
bne
stwio
r9, 0(r12)
br
main
LOOP:
CONTINUE:
add
r7, r7, 1
bgt
br
LOOP
RESET:
stwio
r0, 0(r12)
br
main
.end
10 | P a g e
L Thanh
====================================================================
r10, SW
movia
r15, RED_LEDs
ldwio
r9, 0(r10)
andi
movi
r5, 0x1
movi
r11, 0x1
addi
bgt
mul
r11, r11, r5
br
LOOP
LOOP:
EXP:
# Hien thi gia tri ra LEDR15:0
andi
stwio
r11, 0(r15)
br
main
.end
11 | P a g e
L Thanh
====================================================================
r10, SW
movia
r12, RED_LEDs
ldwio
r11, 0(r10)
andi
r9, 0x1
movi
r15, 0x1
addi
mul
bgt
br
LOOP
andi
stwio
r15, 0(r12)
br
main
LOOP:
EXP:
.end
12 | P a g e
L Thanh
====================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movi
r15, 0
movi
r16, 0x1
movi
r6, 0x1
add
subi
add
add
mov
r15, r16
mov
r16, r17
bne
andi
stwio
r18, 0(r12)
br
main
LOOP:
.end
13 | P a g e
L Thanh
===================================================================
r10, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r10)
andi
mov
r15, r0
mov
r16, r0
subi
addi
add
bne
andi
stwio
r16, 0(r12)
br
main
LOOP:
.end
14 | P a g e
L Thanh
====================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movi
r15, 0x1
movi
r16, 0x1
subi
addi
add
bne
andi
stwio
r16, 0(r12)
br
main
LOOP:
.end
15 | P a g e
L Thanh
===================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movi
r15, 0
movi
r16, 0
subi
addi
add
bne
andi
stwio
r16, 0(r12)
br
main
LOOP:
.end
16 | P a g e
L Thanh
====================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movi
r15, 0
movi
r16, 0
subi
addi
mul
add
bne
andi
stwio
r16, 0(r12)
br
main
LOOP:
.end
17 | P a g e
L Thanh
====================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movi
r15, 0x1
movi
r16, 0x1
subi
addi
mul
add
bne
andi
stwio
r16, 0(r12)
br
main
LOOP:
.end
18 | P a g e
L Thanh
===================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r14, 0(r9)
andi
movia
r11, M
ldw
r20, 0(r11)
mov
r15, r0
mov
r16, r0
subi
addi
add
r17, r15, r0
LOOP:
POWER_M:
subi
beq
mul
br
POWER_M
ADD_N_ELEMENT:
add
bne
andi
stwio
r16, 0(r12)
br
main
.data
M:
.word 5
.end
19 | P a g e
L Thanh
====================================================================
r4, RED_LEDS
movi
r5, 0x1
movi
r6, 0x13
subi
beq
stwio
r5, 0(r4)
movi
r19, 0xBB8
mul
slli
LOOP:
DELAY:
subi
beq
br
DELAY
.end
20 | P a g e
L Thanh
====================================================================
r4, GREEN_LEDS
movi
r5, 0x80
movi
r6, 0x9
subi
beq
stwio
r5, 0(r4)
srli
movi
r19, 0xBB8
mul
LOOP:
DELAY:
subi
beq
br
DELAY
.end
21 | P a g e
L Thanh
====================================================================
Bi 4.b: Chng trnh dch RED_LEDS t phi sang tri khi SWX = 0, t tri sang phi khi
SWX = 1(X cho trc).
====================================================================
.text
.equ SW, 0x00103060
.equ RED_LEDS, 0x00103020
.global main
main:
movia
r10, SW
movia
r15, RED_LEDS
ldwio
r9, 0(r10)
movia
r11, X
ldw
r12, 0(r11)
srl
andi
movi
r7, 0x13
movi
r8, 0x20000
movi
r6, 0x1
movi
r19, 0xBB8
mul
beq
LOOP:
SHIFT_RIGHT:
subi
beq
stwio
r8, 0(r15)
srli
br
DELAY
SHIFT_LEFT:
subi
beq
stwio
r6, 0(r15)
slli
22 | P a g e
L Thanh
DELAY:
subi
beq
br
DELAY
.data
X:
.word 15
.end
====================================================================
Bi 4.c: Chng trnh dch LEDS t phi sang tri bt u t LEDG0 LEDG7 LEDR0
LEDR17 LEDG0.
====================================================================
.text
.equ GREEN_LEDS, 0x00103030
.equ RED_LEDS, 0x00103020
.global main
main:
movia
r4, GREEN_LEDS
movia
r5, RED_LEDS
movi
r6, 0x13
movi
r8, 0x9
movi
r9, 0x1
movi
r10, 0x1
subi
ble
stwio
r10, 0(r4)
stwio
r0, 0(r5)
slli
movi
r19, 0xBB8
mul
br
DELAY
LOOP:
CHANGE_LED:
subi
r6, r6, 1
beq
stwio
r9, 0(r5)
23 | P a g e
L Thanh
stwio
r0, 0(r4)
slli
movi
r19, 0xBB8
mul
DELAY:
subi
beq
br
DELAY
.end
====================================================================
r9, SW
movia
r12, RED_LEDS
ldwio
r7, 0(r9)
andi
movi
r15, 0x3
movi
r16, 0x2
movi
r17, 0x1
mov
r18, r0
sub
stwio
r18, 0(r12)
beq
beq
beq
beq
br
main
LOOP:
24 | P a g e
L Thanh
SET_DELAY0:
movi
r19, 0x7D0
mul
br
DELAY
# DELAY
# DELAY
# DELAY
# DELAY
SET_DELAY1:
movi
r19, 0xBB8
mul
br
DELAY
SET_DELAY2:
movi
r19, 0xFA0
mul
br
DELAY
SET_DELAY3:
movi
mul
r19, 0x1388
r20, r19, r19
DELAY:
subi
beq
br
DELAY
.end
====================================================================
Bi 4.e: Chng trnh RED_LEDS v tr l chp tt khi SWX = 1, v tr chn chp tt khi
SWX = 0.
====================================================================
.text
.equ SW, 0x00103060
.equ RED_LEDS, 0x00103020
.global main
main:
movia
r9, SW
movia
r12, RED_LEDS
ldwio
r10, 0(r9)
movia
r8, X
ldw
r11, 0(r8)
srl
L Thanh
andi
movhi
r15, 0x2
ori
movhi
r16, 0x1
ori
mov
r18, r0
beq
LOOP:
ODD_LIGHT:
sub
stwio
r18, 0(r12)
movi
r19, 0xbb8
mul
DELAY:
subi
beq
br
DELAY
EVEN_LIGHT:
sub
stwio
r18, 0(r12)
movi
r19, 0xbb8
mul
br
DELAY
CHECK_SW:
stwio
r0, 0(r12)
ldwio
r10, 0(r9)
movia
r8, X
ldw
r11, 0(r8)
srl
r10, r10, r9
andi
br
LOOP
.data
X:
.word 7
.end
26 | P a g e
L Thanh
====================================================================
Bi 5.a: Chng trnh hin th ngy thng nm sinh theo kiu DD/MM/YYYY ra LEDS 7
on.
====================================================================
.text
.equ
HEX3_HEX0, 0x00103040
.equ
HEX7_HEX4, 0x00103050
.global main
main:
movia
r17, HEX3_HEX0
movia
r19, HEX7_HEX4
movia
r20, 7_SEG_TABLE
movia
r18, HEX_SEGMENT_1
movia
r21, HEX_SEGMENT_2
movia
r4, N
ldw
r5, 0(r4)
addi
ldb
r7, 0(r6)
movi
r8, 0x4
subi
add
r22, r20, r7
ldb
r10, 0(r22)
bge
LOOP:
DAY_MONTH:
stb
r10, 0(r21)
addi
subi
ldb
r7, 0(r6)
bne
movia
r18, HEX_SEGMENT_2
ldw
r12, 0(r21)
stwio
r12, 0(r19)
br
STOP
27 | P a g e
L Thanh
YEAR:
stb
r10, 0(r18)
beq
addi
subi
ldb
r7, 0(r6)
br
LOOP
EXP_YEAR:
movia
r18, HEX_SEGMENT_1
ldw
r11, 0(r18)
stwio
r11, 0(r17)
br
LOOP
br
STOP
STOP:
.data
N:
.word 8
IMP_DAY_MONTH_YEAR:
.byte 0, 9, 1, 1, 1, 9, 9, 1
7_SEG_TABLE:
.byte 0b00111111, 0b00000110, 0b01011011, 0b01001111
.byte 0b01100110, 0b01101101, 0b01111101, 0b00000111
.byte 0b01111111, 0b01100111, 0b00000000, 0b00000000
.byte 0b00000000, 0b00000000, 0b00000000, 0b00000000
HEX_SEGMENT_1:
.fill 1, 4, 0
HEX_SEGMENT_2:
.fill 1, 4, 0
.end
28 | P a g e
L Thanh
====================================================================
r9, HEX3_HEX0
movia
r12, HEX7_HEX4
movhi
r15, 0xf2e
ori
movi
r16, 0x76
movi
r4, 0x4
movi
r5, 0
movi
r19, 0xbb8
mul
stwio
r15, 0(r9)
stwio
r16, 0(r12)
call
DELAY
mov
r14, r15
srli
andi
slli
or
slli
addi
bge
movi
r19, 0xbb8
mul
br
LOOP
LOOP:
DELAY:
subi
bne
ret
29 | P a g e
L Thanh
====================================================================
L Thanh
====================================================================
.text
.equ HEX3_0, 0x00103040
.equ HEX7_4, 0x00103050
.global main
main:
movia
r9, HEX3_0
movia
r10, HEX7_4
movia
r4, N
ldw
r5, 0(r4)
movi
r6, 0x3
movi
r7, 0x7
mov
r8, r0
bgt
addi
stwio
r5, 0(r9)
stwio
r0, 0(r10)
slli
r5, r5, 8
movi
r19, 0xbb8
mul
call
DELAY
br
LOOP
LOOP:
RESET:
movia
r4, N
ldw
r5, 0(r4)
CHANGE:
stwio
r0, 0(r9)
stwio
r5, 0(r10)
bgt
addi
slli
r5, r5, 8
31 | P a g e
L Thanh
movi
r19, 0xbb8
mul
call
DELAY
br
CHANGE
.data
N:
.byte
0b01110111
====================================================================
r9, HEX3_0
movia
r10, SW
ldw
r19, 0(r10)
mul
movia
r4, N
ldw
r5, 0(r4)
stwio
r5, 0(r9)
call
DELAY
stwio
r0, 0(r9)
call
DELAY
br
main
LOOP:
DELAY:
subi
bne
ret
.data
N:
.byte
0b01110111
.end
32 | P a g e
L Thanh
====================================================================
r9, HEX3_0
movia
r10, PUSH
movia
r8, SEVEN_SEG_DECODE_TABLE
movi
r4, 0x9
mov
r5, r0
mov
r6, r0
add
r7, r8, r5
ldb
r12, 0(r7)
andi
mov
r15, r12
slli
add
r7, r8, r6
ldb
r12, 0(r7)
andi
or
stwio
r15, 0(r9)
movi
r19, 0xbb8
mul
call
DELAY
LOOP:
CHECK_KEY_1:
ldw
r11, 0(r10)
srli
andi
beq
L Thanh
DON_VI:
addi
bgt
br
LOOP
mov
r6, r0
addi
bgt
br
LOOP
CHUC:
RESET:
mov
r5, r0
br
LOOP
DELAY:
subi
bne
ret
.data
SEVEN_SEG_DECODE_TABLE:
.byte 0b00111111, 0b00000110, 0b01011011, 0b01001111
.byte 0b01100110, 0b01101101, 0b01111101, 0b00000111
.byte 0b01111111, 0b01100111, 0b00000000, 0b00000000
.byte 0b00000000, 0b00000000, 0b00000000, 0b00000000
.end
34 | P a g e
L Thanh
====================================================================
r9, HEX3_0
movia
r10, PUSH
movia
r8, SEVEN_SEG_DECODE_TABLE
movi
r5, 0x9
movi
r6, 0x9
add
r7, r8, r5
ldb
r12, 0(r7)
andi
mov
r15, r12
slli
add
r7, r8, r6
ldb
r12, 0(r7)
andi
or
stwio
r15, 0(r9)
movi
r19, 0xbb8
mul
call
DELAY
LOOP:
CHECK_KEY_2:
ldw
r11, 0(r10)
srli
andi
beq
35 | P a g e
L Thanh
DON_VI:
subi
bge
movi
r6, 0x9
subi
bge
CHUC:
RESET:
movi
r5, 0x9
br
LOOP
DELAY:
subi
bne
ret
.data
SEVEN_SEG_DECODE_TABLE:
.byte 0b00111111, 0b00000110, 0b01011011, 0b01001111
.byte 0b01100110, 0b01101101, 0b01111101, 0b00000111
.byte 0b01111111, 0b01100111, 0b00000000, 0b00000000
.byte 0b00000000, 0b00000000, 0b00000000, 0b00000000
.end
36 | P a g e
L Thanh
====================================================================
r9, HEX3_0
movia
r10, SW
movia
r11, PUSH
movia
r15, HEX_SEGMENT
movia
r16, SEVEN_SEG_DECODE_TABLE
CHECK_KEY3:
ldw
r4, 0(r11)
srli
andi
bne
stwio
r0, 0(r9)
br
CHECK_KEY3
L0AD_SW_VALUE:
ldw
r12, 0(r10)
andi
movi
r6, 0x4
DECODER:
mov
r14, r12
andi
add
ldb
r18, 0(r17)
stb
r18, 0(r15)
addi
r15, r15, 1
37 | P a g e
L Thanh
srli
r12, r12, 4
subi
bgt
STORE_SW_VALUE:
movia
r15, HEX_SEGMENT
ldw
r20, 0(r15)
stwio
r20, 0(r9)
movi
r19, 0xbb8
mul
call
DELAY
br
CHECK_KEY3
DELAY:
subi
bne
ret
.data
SEVEN_SEG_DECODE_TABLE:
.byte 0b00111111, 0b00000110, 0b01011011, 0b01001111
.byte 0b01100110, 0b01101101, 0b01111101, 0b00000111
.byte 0b01111111, 0b01100111, 0b00000000, 0b00000000
.byte 0b00000000, 0b00000000, 0b00000000, 0b00000000
HEX_SEGMENT:
.fill 1, 4, 0
.end
38 | P a g e
L Thanh
b. S l.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int main(void)
{
volatile int * slider_switches_ptr = (int *) Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
if (((*(slider_switches_ptr) >> 0) & 0x1) == 1)
{
*(leds_ptr) = *(slider_switches_ptr);
}
else
if (((*(slider_switches_ptr) >> 0) & 0x1) == 0)
{
*(leds_ptr) = 0;
39 | P a g e
L Thanh
}
}
return 0;
}
40 | P a g e
L Thanh
if ( n<m)
{
*(leds_ptr) = n;
}
else if (n>=m)
{
*(leds_ptr) = 0;
}
}
}
L Thanh
g. S chia ht cho 3.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int chiahetba( int n)
{
int k= n/3;
k=k*3;
if ( k==n )
{
return 1;
}
else return 0;
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
if ( chiahetba(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
else
{
*(leds_ptr) = 0;
}
}
}
42 | P a g e
L Thanh
h. S chia ht cho 4.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int chiahetbon( int n)
{
int k= n/4;
k=k*4;
if ( k==n )
{
return 1;
}
else return 0;
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
if ( chiahetbon(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
else
{
*(leds_ptr) = 0;
}
}
}
i. S chia ht cho 6.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int chiahetsau( int n)
{
int k= n/6;
k=k*6;
if ( k==n )
{
return 1;
}
43 | P a g e
L Thanh
else return 0;
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
if ( chiahetsau(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
else
{
*(leds_ptr) = 0;
}
}
}
j. S chia ht cho 8.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int chiahettam( int n)
{
int k= n/8;
k=k*8;
if ( k==n )
{
return 1;
}
else return 0;
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
if ( chiahettam(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
44 | P a g e
L Thanh
else
{
*(leds_ptr) = 0;
}
}
}
k. S nguyn t.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int checknt( int n)
{
if (n<=0)
{
return 0;
}
else if ( n==1)
{
return 1;
}
else if (n==2)
{
return 1;
}
else
{
int i;
for ( i=2; i<=n/2; i++)
{
if ( n%i==0)
{
return 0;
break;
}
}
return 1;
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
45 | P a g e
L Thanh
if ( checknt(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
else
{
*(leds_ptr) = 0;
}
}
}
l. S chnh phng.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int chinhphuong(int n)
{
int i;
if (n==0)
{
return 1;
}
else
{
for (i=1; i<=n/2; i++)
{
if ( i*i==n)
{
return 1;
break;
}
}
return 0;
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n= * (slider_switches_ptr);
if ( chinhphuong(n)==1 )
{
*(leds_ptr) = *(slider_switches_ptr);
}
46 | P a g e
L Thanh
else
{
*(leds_ptr) = 0;
}
}
}
L Thanh
return 1;
}
else
{
int i,s;
s=1;
for (i=1; i<=k; i++)
{
s=s*n;
}
return s;
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n;
n= ((*(slider_switches_ptr)) & 0x7);
* (leds_ptr) = power(n,n);
}
}
L Thanh
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n,i;
n= ((*(slider_switches_ptr)) & 0xFF);
int s=0;
for (i=0; i<=n; i++)
{
s=s+fibo(i);
}
* (leds_ptr) = s;
}
}
b. F(N) = 1 + 2 + 3 + + N.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int tong( int n)
{
if (n==0)
{
return 0;
}
else if (n==1)
{
return 1;
}
else
{
return n + tong(n-1);
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
49 | P a g e
L Thanh
{
int n;
n= ((*(slider_switches_ptr)) & 0xFF);
* (leds_ptr) = tong(n);
}
}
c. F(N) = 1 + 3 + 5 + + (2N+1).
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int tongle( int n)
{
if (n==0)
{
return 1;
}
else
{
return 2*n+1 + tongle(n-1);
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n;
n= ((*(slider_switches_ptr)) & 0xFF);
* (leds_ptr) = tongle(n);
}
}
d. F(N) = 2 + 4 + 6 + + 2N.
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int tongchan( int n)
{
if (n==0)
{
return 0;
}
50 | P a g e
L Thanh
else
{
return 2*n + tongchan(n-1);
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n;
n= ((*(slider_switches_ptr)) & 0xFF);
* (leds_ptr) = tongchan(n);
}
}
e. F(N) = 22 + 42 + 62 + + (2N)2
#define Slider_switches_0 0x00103060
#define Red_LEDs_0
0x00103020
int power(int n, int i)
{
int j,s;
s=1;
if (i==0)
{
return 1;
}
else
{
for ( j=1; j<=i; j++)
{
s=s*n;
}
return s;
}
}
int tongchan( int n)
{
if (n==0)
{
return 0;
}
51 | P a g e
L Thanh
else
{
return power(2*n,2) + tongchan(n-1);
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n;
n= ((*(slider_switches_ptr)) & 0xFF);
* (leds_ptr) = tongchan(n);
}
}
L Thanh
else
{
return power(2*n+1,2) + tongle(n-1);
}
}
void main()
{
volatile int * slider_switches_ptr = (int *)
Slider_switches_0;
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int n;
n= ((*(slider_switches_ptr)) & 0xFF);
* (leds_ptr) = tongle(n);
}
}
0x00103020
L Thanh
}
return s;
}
}
int main(void)
{
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int i;
for (i=0; i<18; i++)
{
*(leds_ptr) = power(2,i);
delay(2000);
*(leds_ptr) =0;
delay(2000);
}
}
return 0;
}
0x00103020
L Thanh
{
s=s*n;
}
return s;
}
}
int main(void)
{
volatile int * leds_ptr = (int *) Red_LEDs_0;
while (1)
{
int i;
for (i=17; i>=0; i--)
{
*(leds_ptr) = power(2,i);
delay(2000);
*(leds_ptr) =0;
delay(2000);
}
}
return 0;
}
0x00103030
55 | P a g e
L Thanh
else
{
for ( j=1; j<=i; j++)
{
s=s*n;
}
return s;
}
}
int main(void)
{
volatile int * leds_ptr = (int *) Green_LEDs_0;
while (1)
{
int i;
for (i=0; i<8; i++)
{
*(leds_ptr) = power(2,i);
delay(2000);
*(leds_ptr) =0;
delay(2000);
}
}
return 0;
}
0x00103030
56 | P a g e
L Thanh
if (i==0)
{
return 1;
}
else
{
for ( j=1; j<=i; j++)
{
s=s*n;
}
return s;
}
}
int main(void)
{
volatile int * leds_ptr = (int *) Green_LEDs_0;
while (1)
{
int i;
for (i=7; i>=0; i--)
{
*(leds_ptr) = power(2,i);
delay(2000);
*(leds_ptr) =0;
delay(2000);
}
}
return 0;
}
e. Dch leds t phi sang tri khi SWx = 0, t tri sang phi khi SWx
= 1 (x cho trc).
#define Red_LEDs_0
0x00103020
#define Slider_switches_0 0x00103060
void delay( int n)
{
int i,j;
for ( i=0; i<n; i++)
{
for ( j=0; j<n; j++)
{
}
}
}
57 | P a g e
L Thanh
L Thanh
0x00103020
0x00103030
L Thanh
delay(2000);
}
*(gleds_ptr) =0;
for (i=0; i<18; i++)
{
*(rleds_ptr) = power(2,i);
delay(2000);
*(rleds_ptr) =0;
delay(2000);
}
*(rleds_ptr) =0;
}
return 0;
}
L Thanh
int main(void)
{
volatile int * leds_ptr = (int *) Red_LEDs_0;
volatile int * slider_switches_ptr = (int *) Slider_switches_0;
while (1)
{
int n;
n=((*(slider_switches_ptr)) & 0x3);
*(leds_ptr)=0x1;
delay(1000*n);
*(leds_ptr)=0;
delay(1000*n);
}
return 0;
}
L Thanh
return s;
}
}
int main(void)
{
volatile int * leds_ptr = (int *) Red_LEDs_0;
volatile int * slider_switches_ptr = (int *) Slider_switches_0;
while (1)
{
if (((*(slider_switches_ptr) >> 0) & 0x1) == 0)
{
*(leds_ptr)=0x15555;
delay(2000);
*(leds_ptr)=0;
delay(2000);
}
else
{
*(leds_ptr)=0x2AAAA;
delay(2000);
*(leds_ptr)=0;
delay(2000);
}
}
return 0;
}
0x00103040
0x00103050
L Thanh
b. Chui [HELLO]
#define HEX3_HEX0_BASE
#define HEX7_HEX4_BASE
0x00103040
0x00103050
#define HEX3_HEX0_BASE
0x00103040
char hex3_segments[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
char seven_seg_decode_table[] = {
0x3F, 0x06, 0x5B, 0x4F,
0x66, 0x6D, 0x7D, 0x07,
0x7F, 0x67, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00 };
void delay(int n)
{
int i,j;
for ( i=0; i<=n; i++)
{
for ( j=0; j<=n; j++)
{
}
}
}
63 | P a g e
L Thanh
void main(void)
{
volatile int * HEX3_HEX0_ptr = (int *) HEX3_HEX0_BASE;
while(1)
{
int i;
for ( i=0; i<10; i++)
{
hex3_segments[0]= seven_seg_decode_table[i];
*(HEX3_HEX0_ptr) = *(int *) hex3_segments;
delay(1000);
}
}
}
0x00103040
0x00103050
char hex_segments[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
void delay(int n)
{
int i,j;
for ( i=0; i<=n; i++)
{
for ( j=0; j<=n; j++)
{
}
}
}
void main(void)
{
volatile int * HEX3_HEX0_ptr = (int *) HEX3_HEX0_BASE;
volatile int * HEX7_HEX4_ptr = (int *) HEX7_HEX4_BASE;
while(1)
{
int i;
for ( i=0; i<=3; i++)
{
hex_segments[i] = 0x38;
* HEX3_HEX0_ptr = * (int *) hex_segments;
delay(1500);
hex_segments[i] = 0;
64 | P a g e
L Thanh
* HEX3_HEX0_ptr =
}
for ( i=0; i<=3; i++)
{
hex_segments[i] =
* HEX7_HEX4_ptr =
delay(1500);
hex_segments[i] =
* HEX7_HEX4_ptr =
}
* (int *) hex_segments;
0x38;
* (int *) hex_segments;
0;
* (int *) hex_segments;
}
}
0x00103040
0x00103060
char hex_segments[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
void delay(int n)
{
int i,j;
for ( i=0; i<=n; i++)
{
for ( j=0; j<=n; j++)
{
}
}
}
void main(void)
{
volatile int * HEX3_HEX0_ptr = (int *) HEX3_HEX0_BASE;
volatile int * slider_switches_ptr = (int *)Slider_switches_0;
while(1)
{
int n = * (slider_switches_ptr);
hex_segments[0]= 0x38;
*(HEX3_HEX0_ptr) = *(int *) hex_segments;
delay(1000*n);
hex_segments[0]= 0;
*(HEX3_HEX0_ptr) = *(int *) hex_segments;
delay(1000*n);
}
}
65 | P a g e