■두더지 게임


#LED가 켜진 위치의 키보드 버튼을 누르면 LED가 꺼지고 랜덤으로 다른 LED가 켜진다.

  UTRSTAT1과URXH1을 이용하여 LOOP도는 중에 키보드 입력을 받아 값을 처리한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
P1:
mov r4,r0
ldr     r0,=GPGCON
    ldr     r1,=0x5500
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xf0
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xe0
    str    r1,[r0]
b    My_Delay
   
P2:
    mov r4,r0
ldr     r0,=GPGCON
    ldr     r1,=0x5500
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xf0
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xd0
    str    r1,[r0]
b    My_Delay
P3:
    mov r4,r0
ldr     r0,=GPGCON
    ldr     r1,=0x5500
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xf0
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xb0
    str    r1,[r0]
b    My_Delay
P4:
    mov r4,r0
ldr     r0,=GPGCON
    ldr     r1,=0x5500
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0xf0
    str    r1,[r0]
 
    ldr    r0,=GPGDAT
    ldr    r1,=0x70
    str    r1,[r0]
b    My_Delay
 
 
 
My_Delay:
    ldr r2,=0
    ldr r3,=2000000
My_Delay2:    
    add r2,r2,#1
    cmp r2,r3
    moveq r0,#0
    moveq pc,lr
    
    ldr r0,=0x50004010        //UTRSTAT1
    ldr r1,[r0]
    and r1,r1,#0x1
    cmp r1,#0x1
    ldreq    r1,=0x50004024    //URXH1
    ldr r0,[r1]
    cmp r0,r4
bne    My_Delay2
    mov pc,lr
cs


+ Recent posts