From 853a9e8c2de55d66edeb30e06b626497de61f72b Mon Sep 17 00:00:00 2001 From: iridiumR Date: Sat, 7 May 2022 19:39:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A8=E9=87=8F=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E8=83=BD=E4=B8=8D=E8=83=BD=E7=94=A8=E7=9C=8B=E8=BF=90=E6=B0=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/Final_Design/Listings/MCU_1.m51 | 867 ++++++++++++++++++++-------- MCU/Final_Design/MCU_1.uvopt | 30 +- MCU/Final_Design/MCU_1.uvproj | 10 + MCU/Final_Design/display.c | 42 +- MCU/Final_Design/display.h | 13 +- MCU/Final_Design/food.c | 72 +++ MCU/Final_Design/food.h | 18 + MCU/Final_Design/main.c | 7 +- MCU/Final_Design/snake.c | 29 +- MCU/Final_Design/snake.h | 12 +- 10 files changed, 821 insertions(+), 279 deletions(-) create mode 100644 MCU/Final_Design/food.c create mode 100644 MCU/Final_Design/food.h diff --git a/MCU/Final_Design/Listings/MCU_1.m51 b/MCU/Final_Design/Listings/MCU_1.m51 index 201ce5e..5b40452 100644 --- a/MCU/Final_Design/Listings/MCU_1.m51 +++ b/MCU/Final_Design/Listings/MCU_1.m51 @@ -1,9 +1,9 @@ -BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 1 +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: -C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\delay.obj, .\Objects\display.obj TO .\Objects\MCU_1 PRINT (.\L ->> istings\MCU_1.m51) +C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\delay.obj, .\Objects\display.obj, .\Objects\snake.obj, .\Objec +>> ts\food.obj TO .\Objects\MCU_1 PRINT (.\Listings\MCU_1.m51) MEMORY MODEL: LARGE @@ -13,8 +13,18 @@ INPUT MODULES INCLUDED: .\Objects\main.obj (MAIN) .\Objects\delay.obj (DELAY) .\Objects\display.obj (DISPLAY) + .\Objects\snake.obj (SNAKE) + .\Objects\food.obj (FOOD) C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?COPY) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?IMUL) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?SIDIV) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?OFFXADD) + C:\KEIL_V5\C51\LIB\C51L.LIB (RAND) C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?UIDIV) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?LLDXDATA) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?LSTXDATA) LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) @@ -28,28 +38,56 @@ LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) IDATA 0008H 0001H UNIT ?STACK * * * * * * * X D A T A M E M O R Y * * * * * * * - XDATA 0000H 0080H UNIT ?XD?DISPLAY - XDATA 0080H 0004H UNIT ?XD?MAIN - XDATA 0084H 0004H UNIT ?XD?TEST?DISPLAY - XDATA 0088H 0004H UNIT _XDATA_GROUP_ + XDATA 0000H 0601H UNIT ?XD?DISPLAY + XDATA 0601H 007BH UNIT ?XD?FOOD + XDATA 067CH 0079H UNIT ?XD?SNAKE + XDATA 06F5H 0004H UNIT ?XD?TEST?DISPLAY + XDATA 06F9H 0004H UNIT ?XD?LOGICJUDGE?FOOD + XDATA 06FDH 0004H UNIT ?XD?RAND?RAND + XDATA 0701H 0004H UNIT _XDATA_GROUP_ + XDATA 0705H 0003H UNIT ?XD?BODY_MOVE?SNAKE + XDATA 0708H 0002H UNIT ?XD?SNAKE_MOVE?SNAKE + XDATA 070AH 0002H UNIT ?XD?SNAKE_DRAW?SNAKE + XDATA 070CH 0002H UNIT ?XD?FOOD_ADD?FOOD + XDATA 070EH 0002H UNIT ?XD?FOOD_DRAW?FOOD + XDATA 0710H 0001H UNIT ?XD?_ADDDOT?DISPLAY * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 0003H ABSOLUTE - CODE 0003H 00EDH UNIT ?PR?DRAW?DISPLAY - CODE 00F0H 00C5H UNIT ?PR?CLEAR?DISPLAY - CODE 01B5H 00C5H UNIT ?PR?TEST?DISPLAY - CODE 027AH 008CH UNIT ?C_C51STARTUP - CODE 0306H 0085H UNIT ?C_INITSEG - CODE 038BH 0020H UNIT ?PR?_DELAY?DELAY - CODE 03ABH 001CH UNIT ?PR?INIT?DISPLAY - CODE 03C7H 0019H UNIT ?PR?WRITE?DISPLAY - CODE 03E0H 000BH UNIT ?PR?MAIN?MAIN - CODE 03EBH 000BH UNIT ?PR?DELAY100US?DELAY - CODE 03F6H 0007H UNIT ?PR?_WRITEDATA?DISPLAY - CODE 03FDH 0007H UNIT ?PR?_SETCOMMAND?DISPLAY - CODE 0404H 0007H UNIT ?PR?_SETPAGE?DISPLAY - CODE 040BH 0007H UNIT ?PR?_SETLINE?DISPLAY - CODE 0412H 0007H UNIT ?PR?_SETY?DISPLAY + CODE 0003H 0715H UNIT ?C_INITSEG + CODE 0718H 01B7H UNIT ?C?LIB_CODE + CODE 08CFH 01A6H UNIT ?PR?LOGICJUDGE?FOOD + CODE 0A75H 011DH UNIT ?PR?DRAW?DISPLAY + CODE 0B92H 00DFH UNIT ?PR?FOOD_ADD?FOOD + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 2 + + + CODE 0C71H 00D8H UNIT ?PR?BODY_ADD?SNAKE + CODE 0D49H 00C5H UNIT ?PR?CLEAR?DISPLAY + CODE 0E0EH 00C5H UNIT ?PR?TEST?DISPLAY + CODE 0ED3H 00ABH UNIT ?PR?SNAKE_MOVE?SNAKE + CODE 0F7EH 0099H UNIT ?PR?SNAKE_DRAW?SNAKE + CODE 1017H 008CH UNIT ?C_C51STARTUP + CODE 10A3H 007CH UNIT ?PR?FOOD_DRAW?FOOD + CODE 111FH 0061H UNIT ?PR?_ADDDOT?DISPLAY + CODE 1180H 0053H UNIT ?PR?_SADDDOT?DISPLAY + CODE 11D3H 004DH UNIT ?PR?RAND?RAND + CODE 1220H 0037H UNIT ?PR?SNAKE_INIT?SNAKE + CODE 1257H 0029H UNIT ?PR?BODY_MOVE?SNAKE + CODE 1280H 0020H UNIT ?PR?_DELAY?DELAY + CODE 12A0H 001CH UNIT ?PR?INIT?DISPLAY + CODE 12BCH 0019H UNIT ?PR?WRITE?DISPLAY + CODE 12D5H 0012H UNIT ?PR?SNAKE_TEST?SNAKE + CODE 12E7H 000BH UNIT ?PR?MAIN?MAIN + CODE 12F2H 000BH UNIT ?PR?DELAY100US?DELAY + CODE 12FDH 0007H UNIT ?PR?CACHELOCK?DISPLAY + CODE 1304H 0007H UNIT ?PR?_WRITEDATA?DISPLAY + CODE 130BH 0007H UNIT ?PR?_SETCOMMAND?DISPLAY + CODE 1312H 0007H UNIT ?PR?_SETPAGE?DISPLAY + CODE 1319H 0007H UNIT ?PR?_SETLINE?DISPLAY + CODE 1320H 0007H UNIT ?PR?_SETY?DISPLAY + CODE 1327H 0006H UNIT ?PR?CACHEUNLOCK?DISPLAY + CODE 132DH 0006H UNIT ?PR?CHECKLOCK?DISPLAY @@ -59,9 +97,6 @@ OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN) SEGMENT XDATA_GROUP +--> CALLED SEGMENT START LENGTH ----------------------------------------------- - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 2 - - ?C_C51STARTUP ----- ----- +--> ?PR?MAIN?MAIN +--> ?C_INITSEG @@ -77,13 +112,16 @@ SEGMENT XDATA_GROUP ?PR?WRITE?DISPLAY ----- ----- +--> ?PR?_DELAY?DELAY -?PR?CLEAR?DISPLAY 0088H 0004H +?PR?CLEAR?DISPLAY 0701H 0004H +--> ?PR?WRITE?DISPLAY -?PR?DRAW?DISPLAY 0088H 0002H +?PR?DRAW?DISPLAY 0701H 0004H +--> ?PR?WRITE?DISPLAY + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 3 + + SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) @@ -96,47 +134,43 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) D:00B0H PUBLIC P3 D:00A8H PUBLIC IE D:00B8H PUBLIC IP - C:03E0H PUBLIC main + C:12E7H PUBLIC main D:0098H PUBLIC SCON D:0088H PUBLIC TCON D:00C8H PUBLIC T2CON - X:0080H PUBLIC i - X:0082H PUBLIC j D:00D0H PUBLIC PSW ------- PROC MAIN - C:03E0H LINE# 14 - C:03E0H LINE# 15 - C:03E0H LINE# 16 - C:03E3H LINE# 17 - C:03E6H LINE# 19 - C:03E6H LINE# 20 - C:03E6H LINE# 21 - C:03E9H LINE# 23 + C:12E7H LINE# 9 + C:12E7H LINE# 10 + C:12E7H LINE# 11 + C:12EAH LINE# 12 + C:12EDH LINE# 14 + C:12EDH LINE# 15 + C:12EDH LINE# 16 + C:12EDH LINE# 17 + C:12F0H LINE# 19 ------- ENDPROC MAIN ------- ENDMOD MAIN ------- MODULE DELAY C:0000H SYMBOL _ICE_DUMMY_ - C:03EBH PUBLIC delay100us - C:038BH PUBLIC _delay - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 3 - - + C:12F2H PUBLIC delay100us + C:1280H PUBLIC _delay ------- PROC DELAY100US ------- DO D:0007H SYMBOL i D:0006H SYMBOL j ------- ENDDO - C:03EBH LINE# 3 - C:03EBH LINE# 4 - C:03EBH LINE# 7 - C:03ECH LINE# 8 - C:03EDH LINE# 9 - C:03EFH LINE# 10 - C:03F1H LINE# 12 - C:03F1H LINE# 13 - C:03F3H LINE# 14 - C:03F5H LINE# 15 + C:12F2H LINE# 3 + C:12F2H LINE# 4 + C:12F2H LINE# 7 + C:12F3H LINE# 8 + C:12F4H LINE# 9 + C:12F6H LINE# 10 + C:12F8H LINE# 12 + C:12F8H LINE# 13 + C:12FAH LINE# 14 + C:12FCH LINE# 15 ------- ENDPROC DELAY100US ------- PROC _DELAY D:0006H SYMBOL n @@ -144,253 +178,573 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) D:0006H SYMBOL i D:0004H SYMBOL j ------- ENDDO - C:038BH LINE# 24 - C:038BH LINE# 26 - C:038BH LINE# 27 - C:0396H LINE# 28 - C:03AAH LINE# 29 + C:1280H LINE# 24 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 4 + + + C:1280H LINE# 26 + C:1280H LINE# 27 + C:128BH LINE# 28 + C:129FH LINE# 29 ------- ENDPROC _DELAY ------- ENDMOD DELAY ------- MODULE DISPLAY C:0000H SYMBOL _ICE_DUMMY_ D:0090H PUBLIC P1 + C:12FDH PUBLIC cacheLock D:00B0H PUBLIC P3 - C:00F0H PUBLIC clear + C:0D49H PUBLIC clear + C:132DH PUBLIC checkLock D:00A8H PUBLIC IE - C:03FDH PUBLIC _setCommand + C:130BH PUBLIC _setCommand D:00B8H PUBLIC IP B:00B0H.0 PUBLIC RS - C:0412H PUBLIC _setY + X:0000H SYMBOL sDisplayCache + C:1320H PUBLIC _setY + C:1180H PUBLIC _sAddDot B:00B0H.1 PUBLIC RW - C:03F6H PUBLIC _writeData - C:03D0H PUBLIC write - C:0003H PUBLIC draw - X:0000H PUBLIC sine + C:1304H PUBLIC _writeData + X:0200H SYMBOL lock + C:12C5H PUBLIC write + C:0A75H PUBLIC draw D:0098H PUBLIC SCON D:0088H PUBLIC TCON - C:03ABH PUBLIC init - C:01B5H PUBLIC test + C:12A0H PUBLIC init + C:0E0EH PUBLIC test B:00B0H.2 PUBLIC E - C:0404H PUBLIC _setPage + C:1312H PUBLIC _setPage + X:0201H SYMBOL displayCache + C:1125H PUBLIC _addDot B:00B0H.4 PUBLIC CSA + C:1319H PUBLIC _setLine B:00B0H.5 PUBLIC CSB - C:040BH PUBLIC _setLine + C:1327H PUBLIC cacheUnlock D:00C8H PUBLIC T2CON D:00D0H PUBLIC PSW - C:03C7H SYMBOL L?0056 - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 4 + ------- PROC L?0078 + ------- ENDPROC L?0078 + ------- PROC _ADDDOT + X:0710H SYMBOL x + D:0005H SYMBOL y + C:1125H LINE# 20 + C:112AH LINE# 21 + C:112AH LINE# 22 + C:1130H LINE# 24 + C:117FH LINE# 25 + ------- ENDPROC _ADDDOT + ------- PROC _SADDDOT + D:0002H SYMBOL x + D:0003H SYMBOL y + C:1180H LINE# 27 + C:1184H LINE# 28 + C:1184H LINE# 29 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 5 - C:03CCH SYMBOL L?0057 - ------- PROC L?0055 - ------- ENDPROC L?0055 - C:03C7H SYMBOL L?0056 - C:03CCH SYMBOL L?0057 + C:11AEH LINE# 31 + C:11B9H LINE# 32 + C:11BFH LINE# 33 + C:11CBH LINE# 34 + C:11D2H LINE# 35 + ------- ENDPROC _SADDDOT + ------- PROC CACHELOCK + C:12FDH LINE# 36 + C:12FDH LINE# 37 + C:12FDH LINE# 38 + C:1303H LINE# 39 + ------- ENDPROC CACHELOCK + ------- PROC CACHEUNLOCK + C:1327H LINE# 41 + C:1327H LINE# 42 + C:1327H LINE# 43 + C:132CH LINE# 44 + ------- ENDPROC CACHEUNLOCK + ------- PROC CHECKLOCK + C:132DH LINE# 46 + C:132DH LINE# 47 + C:132DH LINE# 48 + C:1332H LINE# 49 + ------- ENDPROC CHECKLOCK + C:12BCH SYMBOL L?0077 + ------- PROC L?0076 + ------- ENDPROC L?0076 + C:12BCH SYMBOL L?0077 ------- PROC WRITE - C:03D0H LINE# 18 - C:03D0H LINE# 19 - C:03D0H LINE# 20 - C:03D2H LINE# 21 - C:03D4H LINE# 22 - C:03D6H LINE# 23 - C:03DDH LINE# 24 - C:03DFH LINE# 25 + C:12C5H LINE# 51 + C:12C5H LINE# 52 + C:12C5H LINE# 53 + C:12C7H LINE# 54 + C:12C9H LINE# 55 + C:12CBH LINE# 56 + C:12D2H LINE# 57 + C:12D4H LINE# 58 ------- ENDPROC WRITE ------- PROC DRAW ------- DO - X:0088H SYMBOL j + X:0701H SYMBOL i + X:0703H SYMBOL j ------- ENDDO - C:0003H LINE# 27 - C:0003H LINE# 28 - C:0003H LINE# 30 - C:0005H LINE# 31 - C:0007H LINE# 33 - C:001EH LINE# 34 - C:001EH LINE# 36 - C:0020H LINE# 37 - C:0022H LINE# 38 - C:0033H LINE# 39 - C:0036H LINE# 40 - C:003FH LINE# 41 - C:0042H LINE# 42 - C:0044H LINE# 43 - C:0046H LINE# 44 - C:0066H LINE# 45 - C:0069H LINE# 46 - C:0079H LINE# 48 - C:007BH LINE# 49 - C:007DH LINE# 50 - C:0094H LINE# 51 - C:0094H LINE# 53 - C:0096H LINE# 54 - C:0098H LINE# 55 - C:00A9H LINE# 56 - C:00ACH LINE# 57 - C:00B5H LINE# 58 - C:00B8H LINE# 61 - C:00BAH LINE# 62 - C:00BCH LINE# 63 - C:00DCH LINE# 64 - C:00DFH LINE# 65 - C:00EFH LINE# 66 + C:0A75H LINE# 60 + C:0A75H LINE# 61 + C:0A75H LINE# 64 + C:0A7EH LINE# 67 + C:0A80H LINE# 69 + C:0A82H LINE# 70 + C:0A84H LINE# 71 + C:0A9AH LINE# 72 + C:0A9AH LINE# 73 + C:0A9AH LINE# 74 + C:0A9AH LINE# 75 + C:0A9AH LINE# 76 + C:0A9DH LINE# 77 + C:0AA0H LINE# 78 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 6 + + + C:0AA3H LINE# 80 + C:0ABAH LINE# 81 + C:0ABAH LINE# 82 + C:0ABCH LINE# 83 + C:0ABEH LINE# 84 + C:0AE4H LINE# 85 + C:0AE7H LINE# 86 + C:0AF7H LINE# 87 + C:0B08H LINE# 88 + C:0B0AH LINE# 89 + C:0B0CH LINE# 90 + C:0B23H LINE# 91 + C:0B23H LINE# 92 + C:0B23H LINE# 93 + C:0B23H LINE# 94 + C:0B23H LINE# 95 + C:0B26H LINE# 96 + C:0B29H LINE# 97 + C:0B2CH LINE# 99 + C:0B43H LINE# 100 + C:0B43H LINE# 101 + C:0B45H LINE# 102 + C:0B47H LINE# 103 + C:0B6DH LINE# 104 + C:0B70H LINE# 105 + C:0B80H LINE# 106 + C:0B91H LINE# 107 ------- ENDPROC DRAW ------- PROC CLEAR ------- DO - X:0088H SYMBOL i - X:008AH SYMBOL j - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 5 - - + X:0701H SYMBOL i + X:0703H SYMBOL j ------- ENDDO - C:00F0H LINE# 69 - C:00F0H LINE# 70 - C:00F0H LINE# 72 - C:00F2H LINE# 73 - C:00F4H LINE# 74 - C:010BH LINE# 75 - C:010BH LINE# 76 - C:010BH LINE# 77 - C:010BH LINE# 78 - C:010BH LINE# 79 - C:010EH LINE# 80 - C:0111H LINE# 81 - C:0114H LINE# 83 - C:011BH LINE# 84 - C:011BH LINE# 85 - C:011DH LINE# 86 - C:011FH LINE# 87 - C:0122H LINE# 88 - C:0125H LINE# 89 - C:0142H LINE# 90 - C:0152H LINE# 91 - C:0154H LINE# 92 - C:0156H LINE# 93 - C:016DH LINE# 94 - C:016DH LINE# 95 - C:016DH LINE# 96 - C:016DH LINE# 97 - C:016DH LINE# 98 - C:0170H LINE# 99 - C:0173H LINE# 100 - C:0176H LINE# 102 - C:017DH LINE# 103 - C:017DH LINE# 104 - C:017FH LINE# 105 - C:0181H LINE# 106 - C:0184H LINE# 107 - C:0187H LINE# 108 - C:01A4H LINE# 109 - C:01B4H LINE# 110 + C:0D49H LINE# 111 + C:0D49H LINE# 112 + C:0D49H LINE# 114 + C:0D4BH LINE# 115 + C:0D4DH LINE# 116 + C:0D64H LINE# 117 + C:0D64H LINE# 118 + C:0D64H LINE# 119 + C:0D64H LINE# 120 + C:0D64H LINE# 121 + C:0D67H LINE# 122 + C:0D6AH LINE# 123 + C:0D6DH LINE# 125 + C:0D74H LINE# 126 + C:0D74H LINE# 127 + C:0D76H LINE# 128 + C:0D78H LINE# 129 + C:0D7BH LINE# 130 + C:0D7EH LINE# 131 + C:0D9BH LINE# 132 + C:0DABH LINE# 133 + C:0DADH LINE# 134 + C:0DAFH LINE# 135 + C:0DC6H LINE# 136 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 7 + + + C:0DC6H LINE# 137 + C:0DC6H LINE# 138 + C:0DC6H LINE# 139 + C:0DC6H LINE# 140 + C:0DC9H LINE# 141 + C:0DCCH LINE# 142 + C:0DCFH LINE# 144 + C:0DD6H LINE# 145 + C:0DD6H LINE# 146 + C:0DD8H LINE# 147 + C:0DDAH LINE# 148 + C:0DDDH LINE# 149 + C:0DE0H LINE# 150 + C:0DFDH LINE# 151 + C:0E0DH LINE# 152 ------- ENDPROC CLEAR ------- PROC INIT - C:03ABH LINE# 111 - C:03ABH LINE# 112 - C:03ABH LINE# 113 - C:03ADH LINE# 114 - C:03AFH LINE# 115 - C:03B1H LINE# 116 - C:03B3H LINE# 117 - C:03B5H LINE# 118 - C:03B8H LINE# 119 - C:03BBH LINE# 121 - C:03BDH LINE# 122 - C:03BFH LINE# 123 - C:03C1H LINE# 124 - C:03C4H LINE# 125 + C:12A0H LINE# 154 + C:12A0H LINE# 155 + C:12A0H LINE# 156 + C:12A2H LINE# 157 + C:12A4H LINE# 158 + C:12A6H LINE# 159 + C:12A8H LINE# 160 + C:12AAH LINE# 161 + C:12ADH LINE# 162 + C:12B0H LINE# 164 + C:12B2H LINE# 165 + C:12B4H LINE# 166 + C:12B6H LINE# 167 + C:12B9H LINE# 168 ------- ENDPROC INIT - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 6 - - ------- PROC TEST ------- DO - X:0084H SYMBOL i - X:0086H SYMBOL j + X:06F5H SYMBOL i + X:06F7H SYMBOL j ------- ENDDO - C:01B5H LINE# 128 - C:01B5H LINE# 129 - C:01B5H LINE# 131 - C:01B7H LINE# 132 - C:01B9H LINE# 133 - C:01D0H LINE# 134 - C:01D0H LINE# 135 - C:01D0H LINE# 136 - C:01D0H LINE# 137 - C:01D0H LINE# 138 - C:01D3H LINE# 139 - C:01D6H LINE# 140 - C:01D9H LINE# 142 - C:01E0H LINE# 143 - C:01E0H LINE# 144 - C:01E2H LINE# 145 - C:01E4H LINE# 146 - C:01E7H LINE# 147 - C:01EAH LINE# 148 - C:0207H LINE# 149 - C:0217H LINE# 150 - C:0219H LINE# 151 - C:021BH LINE# 152 - C:0232H LINE# 153 - C:0232H LINE# 154 - C:0232H LINE# 155 - C:0232H LINE# 156 - C:0232H LINE# 157 - C:0235H LINE# 158 - C:0238H LINE# 159 - C:023BH LINE# 161 - C:0242H LINE# 162 - C:0242H LINE# 163 - C:0244H LINE# 164 - C:0246H LINE# 165 - C:0249H LINE# 166 - C:024CH LINE# 167 - C:0269H LINE# 168 - C:0279H LINE# 169 + C:0E0EH LINE# 172 + C:0E0EH LINE# 173 + C:0E0EH LINE# 175 + C:0E10H LINE# 176 + C:0E12H LINE# 177 + C:0E29H LINE# 178 + C:0E29H LINE# 179 + C:0E29H LINE# 180 + C:0E29H LINE# 181 + C:0E29H LINE# 182 + C:0E2CH LINE# 183 + C:0E2FH LINE# 184 + C:0E32H LINE# 186 + C:0E39H LINE# 187 + C:0E39H LINE# 188 + C:0E3BH LINE# 189 + C:0E3DH LINE# 190 + C:0E40H LINE# 191 + C:0E43H LINE# 192 + C:0E60H LINE# 193 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 8 + + + C:0E70H LINE# 194 + C:0E72H LINE# 195 + C:0E74H LINE# 196 + C:0E8BH LINE# 197 + C:0E8BH LINE# 198 + C:0E8BH LINE# 199 + C:0E8BH LINE# 200 + C:0E8BH LINE# 201 + C:0E8EH LINE# 202 + C:0E91H LINE# 203 + C:0E94H LINE# 205 + C:0E9BH LINE# 206 + C:0E9BH LINE# 207 + C:0E9DH LINE# 208 + C:0E9FH LINE# 209 + C:0EA2H LINE# 210 + C:0EA5H LINE# 211 + C:0EC2H LINE# 212 + C:0ED2H LINE# 213 ------- ENDPROC TEST ------- PROC _WRITEDATA D:0007H SYMBOL d - C:03F6H LINE# 172 - C:03F6H LINE# 173 - C:03F6H LINE# 174 - C:03F8H LINE# 175 - C:03FAH LINE# 176 - C:03FCH LINE# 177 + C:1304H LINE# 216 + C:1304H LINE# 217 + C:1304H LINE# 218 + C:1306H LINE# 219 + C:1308H LINE# 220 + C:130AH LINE# 221 ------- ENDPROC _WRITEDATA ------- PROC _SETCOMMAND D:0007H SYMBOL d - C:03FDH LINE# 179 - BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 PAGE 7 - - - C:03FDH LINE# 180 - C:03FDH LINE# 181 - C:03FFH LINE# 182 - C:0401H LINE# 183 - C:0403H LINE# 184 + C:130BH LINE# 223 + C:130BH LINE# 224 + C:130BH LINE# 225 + C:130DH LINE# 226 + C:130FH LINE# 227 + C:1311H LINE# 228 ------- ENDPROC _SETCOMMAND ------- PROC _SETPAGE D:0007H SYMBOL p - C:0404H LINE# 187 - C:0404H LINE# 188 - C:0404H LINE# 189 + C:1312H LINE# 231 + C:1312H LINE# 232 + C:1312H LINE# 233 ------- ENDPROC _SETPAGE ------- PROC _SETLINE D:0007H SYMBOL p - C:040BH LINE# 192 - C:040BH LINE# 193 - C:040BH LINE# 194 + C:1319H LINE# 236 + C:1319H LINE# 237 + C:1319H LINE# 238 ------- ENDPROC _SETLINE ------- PROC _SETY D:0007H SYMBOL p - C:0412H LINE# 197 - C:0412H LINE# 198 - C:0412H LINE# 199 + C:1320H LINE# 241 + C:1320H LINE# 242 + C:1320H LINE# 243 ------- ENDPROC _SETY ------- ENDMOD DISPLAY + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 9 + + + + ------- MODULE SNAKE + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + D:00A8H PUBLIC IE + X:067CH PUBLIC snake + D:00B8H PUBLIC IP + C:0F7EH PUBLIC snake_draw + C:1220H PUBLIC snake_init + C:0ED3H PUBLIC snake_move + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:12D5H PUBLIC snake_test + C:0C71H PUBLIC body_add + X:06F4H PUBLIC len + C:1257H PUBLIC body_move + D:00C8H PUBLIC T2CON + D:00D0H PUBLIC PSW + ------- PROC SNAKE_INIT + C:1220H LINE# 8 + C:1220H LINE# 9 + C:1220H LINE# 11 + C:1235H LINE# 12 + C:1246H LINE# 13 + C:1256H LINE# 15 + ------- ENDPROC SNAKE_INIT + ------- PROC BODY_MOVE + X:0705H SYMBOL b + C:1257H LINE# 17 + C:1257H LINE# 18 + C:1257H LINE# 19 + C:1268H LINE# 20 + C:1268H LINE# 21 + C:1268H LINE# 22 + C:126BH LINE# 23 + C:126DH LINE# 25 + C:126DH LINE# 26 + C:1270H LINE# 27 + C:1272H LINE# 29 + C:1272H LINE# 30 + C:1278H LINE# 31 + C:1279H LINE# 33 + C:1279H LINE# 34 + C:127FH LINE# 35 + C:127FH LINE# 36 + C:127FH LINE# 37 + ------- ENDPROC BODY_MOVE + ------- PROC SNAKE_MOVE + ------- DO + X:0708H SYMBOL i + ------- ENDDO + C:0ED3H LINE# 39 + C:0ED3H LINE# 40 + C:0ED3H LINE# 41 + C:0EDAH LINE# 42 + C:0EF2H LINE# 43 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 10 + + + C:0EF2H LINE# 45 + C:0F13H LINE# 46 + C:0F23H LINE# 47 + C:0F43H LINE# 48 + C:0F43H LINE# 50 + C:0F6DH LINE# 51 + C:0F7DH LINE# 52 + ------- ENDPROC SNAKE_MOVE + ------- PROC BODY_ADD + C:0C71H LINE# 54 + C:0C71H LINE# 55 + C:0C71H LINE# 57 + C:0C77H LINE# 58 + C:0C98H LINE# 59 + C:0CBCH LINE# 60 + C:0CE0H LINE# 63 + C:0D00H LINE# 64 + C:0D00H LINE# 65 + C:0D00H LINE# 66 + C:0D0CH LINE# 67 + C:0D0EH LINE# 69 + C:0D0EH LINE# 70 + C:0D1DH LINE# 71 + C:0D1FH LINE# 73 + C:0D1FH LINE# 74 + C:0D33H LINE# 75 + C:0D34H LINE# 77 + C:0D34H LINE# 78 + C:0D48H LINE# 79 + C:0D48H LINE# 80 + C:0D48H LINE# 81 + ------- ENDPROC BODY_ADD + ------- PROC SNAKE_DRAW + ------- DO + X:070AH SYMBOL i + ------- ENDDO + C:0F7EH LINE# 83 + C:0F7EH LINE# 84 + C:0F7EH LINE# 85 + C:0F86H LINE# 86 + C:0F91H LINE# 87 + C:0F9DH LINE# 88 + C:0FA9H LINE# 89 + C:0FB5H LINE# 90 + C:0FC1H LINE# 92 + C:0FD9H LINE# 93 + C:0FD9H LINE# 94 + C:1006H LINE# 95 + C:1016H LINE# 96 + ------- ENDPROC SNAKE_DRAW + ------- PROC SNAKE_TEST + ------- DO + D:0004H SYMBOL i + ------- ENDDO + C:12D5H LINE# 98 + C:12D5H LINE# 99 + C:12D5H LINE# 101 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 11 + + + C:12D8H LINE# 102 + C:12D8H LINE# 103 + C:12E6H LINE# 104 + ------- ENDPROC SNAKE_TEST + ------- ENDMOD SNAKE + + ------- MODULE FOOD + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:08CFH PUBLIC logicJudge + D:00A8H PUBLIC IE + X:0601H PUBLIC isVICTROY + D:00B8H PUBLIC IP + X:0602H PUBLIC food + D:0098H PUBLIC SCON + C:0B92H PUBLIC food_add + D:0088H PUBLIC TCON + X:067AH PUBLIC isGAMEOVER + C:10A3H PUBLIC food_draw + D:00C8H PUBLIC T2CON + X:067BH PUBLIC fCount + D:00D0H PUBLIC PSW + ------- PROC FOOD_ADD + ------- DO + X:070CH SYMBOL i + C:0BB0H SYMBOL Re + ------- ENDDO + C:0B92H LINE# 11 + C:0B92H LINE# 12 + C:0B92H LINE# 13 + C:0B99H LINE# 14 + C:0B9FH LINE# 15 + C:0BB0H LINE# 17 + C:0BB0H LINE# 18 + C:0BCDH LINE# 19 + C:0BEAH LINE# 22 + C:0C02H LINE# 23 + C:0C5FH LINE# 24 + C:0C70H LINE# 26 + ------- ENDPROC FOOD_ADD + ------- PROC FOOD_DRAW + ------- DO + X:070EH SYMBOL i + ------- ENDDO + C:10A3H LINE# 28 + C:10A3H LINE# 29 + C:10A3H LINE# 30 + C:10AAH LINE# 31 + C:10C2H LINE# 32 + C:10C2H LINE# 33 + C:10E1H LINE# 34 + C:10E1H LINE# 35 + C:110EH LINE# 36 + C:111EH LINE# 37 + ------- ENDPROC FOOD_DRAW + ------- PROC LOGICJUDGE + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 12 + + + ------- DO + X:06F9H SYMBOL i + X:06FBH SYMBOL j + ------- ENDDO + C:08CFH LINE# 39 + C:08CFH LINE# 40 + C:08CFH LINE# 42 + C:08E7H LINE# 43 + C:08E7H LINE# 44 + C:0906H LINE# 45 + C:0906H LINE# 46 + C:093EH LINE# 47 + C:0941H LINE# 48 + C:0952H LINE# 50 + C:0974H LINE# 51 + C:0974H LINE# 52 + C:09AAH LINE# 53 + C:09AAH LINE# 54 + C:09ADH LINE# 56 + C:09ADH LINE# 57 + C:09CFH LINE# 58 + C:0A3AH LINE# 61 + C:0A3AH LINE# 62 + C:0A41H LINE# 64 + C:0A52H LINE# 65 + C:0A63H LINE# 66 + C:0A6BH LINE# 67 + C:0A6BH LINE# 68 + C:0A71H LINE# 70 + C:0A71H LINE# 71 + C:0A74H LINE# 72 + ------- ENDPROC LOGICJUDGE + ------- ENDMOD FOOD + + ------- MODULE ?C?COPY + C:07E8H PUBLIC ?C?COPY + ------- ENDMOD ?C?COPY + + ------- MODULE ?C?IMUL + C:080EH PUBLIC ?C?IMUL + ------- ENDMOD ?C?IMUL + + ------- MODULE ?C?SIDIV + C:0820H PUBLIC ?C?SIDIV + ------- ENDMOD ?C?SIDIV + + ------- MODULE ?C?OFFXADD + C:0856H PUBLIC ?C?OFFXADD + ------- ENDMOD ?C?OFFXADD + + ------- MODULE RAND + X:06FDH PUBLIC ?SRAND?BYTE + C:11D3H PUBLIC RAND + C:1211H PUBLIC _SRAND + ------- ENDMOD RAND + + ------- MODULE ?C?UIDIV + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 13 + + + C:0862H PUBLIC ?C?UIDIV + ------- ENDMOD ?C?UIDIV + + ------- MODULE ?C?LLDXDATA + C:08B7H PUBLIC ?C?LLDXDATA + ------- ENDMOD ?C?LLDXDATA + + ------- MODULE ?C?LSTXDATA + C:08C3H PUBLIC ?C?LSTXDATA + ------- ENDMOD ?C?LSTXDATA *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?DELAY100US?DELAY +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?CACHELOCK?DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?CACHEUNLOCK?DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?CHECKLOCK?DISPLAY + *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?TEST?DISPLAY @@ -406,5 +760,26 @@ SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?_SETY?DISPLAY -Program Size: data=9.0 xdata=140 code=1049 -LINK/LOCATE RUN COMPLETE. 6 WARNING(S), 0 ERROR(S) +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?SNAKE_INIT?SNAKE + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?SNAKE_DRAW?SNAKE + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?SNAKE_TEST?SNAKE + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?FOOD_ADD?FOOD + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?FOOD_DRAW?FOOD + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LOGICJUDGE?FOOD + +Program Size: data=9.0 xdata=1809 code=4915 + BL51 BANKED LINKER/LOCATER V6.22.2.0 05/07/2022 19:38:26 PAGE 14 + + +LINK/LOCATE RUN COMPLETE. 15 WARNING(S), 0 ERROR(S) diff --git a/MCU/Final_Design/MCU_1.uvopt b/MCU/Final_Design/MCU_1.uvopt index 0e777e7..3510f78 100644 --- a/MCU/Final_Design/MCU_1.uvopt +++ b/MCU/Final_Design/MCU_1.uvopt @@ -240,6 +240,18 @@ 0 0 + + 1 + 5 + 1 + 0 + 0 + 0 + .\food.c + food.c + 0 + 0 + @@ -250,7 +262,7 @@ 0 2 - 5 + 6 5 0 0 @@ -262,7 +274,7 @@ 2 - 6 + 7 5 0 0 @@ -274,7 +286,7 @@ 2 - 7 + 8 5 0 0 @@ -284,6 +296,18 @@ 0 0 + + 2 + 9 + 5 + 0 + 0 + 0 + .\food.h + food.h + 0 + 0 + diff --git a/MCU/Final_Design/MCU_1.uvproj b/MCU/Final_Design/MCU_1.uvproj index d17cff6..177a9c9 100644 --- a/MCU/Final_Design/MCU_1.uvproj +++ b/MCU/Final_Design/MCU_1.uvproj @@ -396,6 +396,11 @@ 1 .\snake.c + + food.c + 1 + .\food.c + @@ -416,6 +421,11 @@ 5 .\snake.h + + food.h + 5 + .\food.h + diff --git a/MCU/Final_Design/display.c b/MCU/Final_Design/display.c index f2ccb82..60c8d80 100644 --- a/MCU/Final_Design/display.c +++ b/MCU/Final_Design/display.c @@ -12,15 +12,42 @@ sbit E = P3 ^ 2; sbit CSA = P3 ^ 4; sbit CSB = P3 ^ 5; -static unsigned char displayCache[2][8][64]; // 2 Screen 8 Page 64 Line +static unsigned char displayCache[2][8][64]={0}; +static unsigned char sDisplayCache[32][16]={0}; +static unsigned char lock=0; - -void addDot(unsigned char x, unsigned char y); +void addDot(unsigned char x, unsigned char y) { + if(lock) + return; displayCache[x / 64][y / 8][x % 64] += 1 << (y % 8); } +void sAddDot(unsigned char x, unsigned char y) +{ + if(x>31|y>15|lock) + return; + addDot(2*x,2*y); + addDot(2*x,2*y+1); + addDot(2*x+1,2*y); + addDot(2*x+1,2*y+1); +} +void cacheLock() +{ + lock=1; +} + +void cacheUnlock() +{ + lock=0; +} + +unsigned char checkLock() +{ + return lock; +} + void write() { RW = 0; @@ -32,7 +59,13 @@ void write() void draw() { - unsigned int i, j; + + unsigned int i, j; + if(!lock) + return; + else + lock=0; + CSA = 1; CSB = 0; for(i = 0; i < 8; i++) @@ -74,6 +107,7 @@ void draw() } + void clear() { unsigned int i, j; diff --git a/MCU/Final_Design/display.h b/MCU/Final_Design/display.h index 6fbd584..8ac3dfe 100644 --- a/MCU/Final_Design/display.h +++ b/MCU/Final_Design/display.h @@ -1,18 +1,15 @@ #ifndef _DISPLAY_H_ #define _DISPLAY_H_ -void setData(unsigned char d); -void setCommand(unsigned char d); -void lcdInit(); -void setPage(unsigned char p); -void setPage(unsigned char p); -void setLine(unsigned char p); -void setY(unsigned char p); void test(); void init(); void clear(); -void name(unsigned int i); void write(); void draw(); void addDot(unsigned char x, unsigned char y); +void sAddDot(unsigned char x, unsigned char y); +void cacheLock(); +void cacheUnlock(); +unsigned char checkLock(); + #endif \ No newline at end of file diff --git a/MCU/Final_Design/food.c b/MCU/Final_Design/food.c new file mode 100644 index 0000000..0a13d7b --- /dev/null +++ b/MCU/Final_Design/food.c @@ -0,0 +1,72 @@ +#include "food.h" +#include "display.h" + +extern unsigned char len; +extern Body snake[]; +unsigned char isGAMEOVER = 0; +unsigned char isVICTROY = 0; +unsigned char fCount = 0; +Food food[40] = {{0, 0}, 0}; + +void food_add() +{ + int i = 0; + fCount++; + food[fCount - 1].isEnable = 1; + +Re: + food[fCount - 1].d.x = rand() % XXX; + food[fCount - 1].d.y = rand() % YYY; + + + for(; i <= len; i++) + if(snake[i].d.x == food[fCount - 1].d.x && snake[i].d.y == food[fCount - 1].d.y) + goto Re; + +} + +void food_draw() +{ + int i = 0; + for(; i < fCount; i++) + { + if(!food[i].isEnable == 0) + continue; + sAddDot(food[i].d.x, food[i].d.y); + } +} + +void logicJudge() +{ + int i, j; + for(; i < fCount; i++) + { + if(!food[i].isEnable == 0) + continue; + if(snake[0].d.x == food[i].d.x && snake[0].d.y == food[i].d.y) + body_add(); + } + + for(i = 0; i < len; i++) + { + if(snake[i].d.x==0 || snake[i].d.y ==0 || snake[i].d.y == YYY || snake[i].d.x == XXX) + { + isGAMEOVER=1; + return; + } + for(i = 0; i < len; i++) + if(snake[i].d.x == food[j].d.x && + snake[i].d.y == food[j].d.y && + i != j) + { + isGAMEOVER=1; + return; + } + } + if(fCount == 30) + { + isVICTROY = 1; + return; + } + snake_move(); +} \ No newline at end of file diff --git a/MCU/Final_Design/food.h b/MCU/Final_Design/food.h new file mode 100644 index 0000000..ed059f6 --- /dev/null +++ b/MCU/Final_Design/food.h @@ -0,0 +1,18 @@ +#ifndef _FOOD_H_ +#define _FOOD_H_ + +#include "snake.h" +#include "display.h" +#include +struct FOOD +{ + Dot d; + unsigned char isEnable; +} ; +typedef struct FOOD Food; + + +void food_add(); +void food_draw(); +void logicJudge(); +#endif \ No newline at end of file diff --git a/MCU/Final_Design/main.c b/MCU/Final_Design/main.c index bb67f82..99857ae 100644 --- a/MCU/Final_Design/main.c +++ b/MCU/Final_Design/main.c @@ -3,8 +3,8 @@ #include "display.h" -unsigned int i; -unsigned int j; +extern unsigned char isGAMEOVER; +extern unsigned char isVICTROY; int main() { @@ -13,7 +13,8 @@ int main() while(1) { + if(!isGAMEOVER && !isVICTROY); draw(); - + } } \ No newline at end of file diff --git a/MCU/Final_Design/snake.c b/MCU/Final_Design/snake.c index 345253a..3cf37f5 100644 --- a/MCU/Final_Design/snake.c +++ b/MCU/Final_Design/snake.c @@ -1,16 +1,17 @@ #include "snake.h" +#include "display.h" -static Body snake[40] = {{0, 0}, 0}; -static unsigned char len = 0; +unsigned char len = 0; +Body snake[40] = {{0, 0}, 0}; void snake_init() { // Initialize snake - snake[len].d.x = 63; - snake[len].d.y = 31; + snake[len].d.x = XXX/2; + snake[len].d.y = YYY/2; snake[len].m = R; - len++; + } void body_move(Body b) @@ -53,7 +54,7 @@ void snake_move() void body_add() { // Copy last body part to new body part - len++ + len++; snake[len].m = snake[len - 1].m; snake[len].d.x = snake[len - 1].d.x; snake[len].d.y = snake[len - 1].d.y; @@ -82,22 +83,22 @@ void body_add() void snake_draw() { int i=1; - addDot(nake[0].d.x,nake[0].d.y); - addDot(nake[0].d.x+1,nake[0].d.y); - addDot(nake[0].d.x,nake[0].d.y+1); - addDot(nake[0].d.x-1,nake[0].d.y); - addDot(nake[0].d.x,nake[0].d.y-1); + sAddDot(snake[0].d.x,snake[0].d.y); + sAddDot(snake[0].d.x+1,snake[0].d.y); + sAddDot(snake[0].d.x,snake[0].d.y+1); + sAddDot(snake[0].d.x-1,snake[0].d.y); + sAddDot(snake[0].d.x,snake[0].d.y-1); for(;i<=len;i++) { - addDot(nake[i].d.x,nake[i].d.y); + sAddDot(snake[i].d.x,snake[i].d.y); } } void snake_test() { - //Add 14 Body to test + //Add Body to test int i = 0; - for(; i < 15; i++) + for(; i < 2; i++) body_add(); } \ No newline at end of file diff --git a/MCU/Final_Design/snake.h b/MCU/Final_Design/snake.h index 9d12a41..d34bbbe 100644 --- a/MCU/Final_Design/snake.h +++ b/MCU/Final_Design/snake.h @@ -3,8 +3,11 @@ #include #include -#define bool char +#define XXX 31 +#define YYY 15 + +#define bool char #define MOVE_STATE char #define R 0 #define U 1 @@ -28,4 +31,11 @@ struct BODY typedef struct BODY Body; +void snake_init(); +void body_move(Body b); +void snake_move(); +void body_add(); +void snake_draw(); +void snake_test(); + #endif \ No newline at end of file