From ede662b4914fad5c60dcbbe6df6de0d1068d195e Mon Sep 17 00:00:00 2001 From: iridiumR Date: Sat, 7 May 2022 13:56:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BE=E8=AE=BE=E5=BC=80=E4=B8=AA=E5=A4=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/Final_Design/Listings/MCU_1.m51 | 410 +++++++++++++++++++++++++++ MCU/Final_Design/MCU_1.uvopt | 289 +++++++++++++++++++ MCU/Final_Design/MCU_1.uvproj | 425 ++++++++++++++++++++++++++++ MCU/Final_Design/delay.c | 29 ++ MCU/Final_Design/delay.h | 7 + MCU/Final_Design/display.c | 200 +++++++++++++ MCU/Final_Design/display.h | 17 ++ MCU/Final_Design/main.c | 19 ++ MCU/Final_Design/main.h | 11 + MCU/Final_Design/snake.c | 8 + MCU/Final_Design/snake.h | 26 ++ justhomework.code-workspace | 4 + 12 files changed, 1445 insertions(+) create mode 100644 MCU/Final_Design/Listings/MCU_1.m51 create mode 100644 MCU/Final_Design/MCU_1.uvopt create mode 100644 MCU/Final_Design/MCU_1.uvproj create mode 100644 MCU/Final_Design/delay.c create mode 100644 MCU/Final_Design/delay.h create mode 100644 MCU/Final_Design/display.c create mode 100644 MCU/Final_Design/display.h create mode 100644 MCU/Final_Design/main.c create mode 100644 MCU/Final_Design/main.h create mode 100644 MCU/Final_Design/snake.c create mode 100644 MCU/Final_Design/snake.h diff --git a/MCU/Final_Design/Listings/MCU_1.m51 b/MCU/Final_Design/Listings/MCU_1.m51 new file mode 100644 index 0000000..201ce5e --- /dev/null +++ b/MCU/Final_Design/Listings/MCU_1.m51 @@ -0,0 +1,410 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 05/05/2022 20:42:31 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) + + +MEMORY MODEL: LARGE + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\delay.obj (DELAY) + .\Objects\display.obj (DISPLAY) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + + TYPE BASE LENGTH RELOCATION SEGMENT NAME + ----------------------------------------------------- + + * * * * * * * D A T A M E M O R Y * * * * * * * + REG 0000H 0008H ABSOLUTE "REG BANK 0" + 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_ + + * * * * * * * 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 + + + +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 + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?INIT?DISPLAY + +--> ?PR?CLEAR?DISPLAY + +--> ?PR?DRAW?DISPLAY + +?PR?INIT?DISPLAY ----- ----- + +--> ?PR?WRITE?DISPLAY + +?PR?WRITE?DISPLAY ----- ----- + +--> ?PR?_DELAY?DELAY + +?PR?CLEAR?DISPLAY 0088H 0004H + +--> ?PR?WRITE?DISPLAY + +?PR?DRAW?DISPLAY 0088H 0002H + +--> ?PR?WRITE?DISPLAY + + + +SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + C:03E0H 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 + ------- 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 + + + ------- 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 + ------- ENDPROC DELAY100US + ------- PROC _DELAY + D:0006H SYMBOL n + ------- DO + 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 + ------- ENDPROC _DELAY + ------- ENDMOD DELAY + + ------- MODULE DISPLAY + C:0000H SYMBOL _ICE_DUMMY_ + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + C:00F0H PUBLIC clear + D:00A8H PUBLIC IE + C:03FDH PUBLIC _setCommand + D:00B8H PUBLIC IP + B:00B0H.0 PUBLIC RS + C:0412H PUBLIC _setY + B:00B0H.1 PUBLIC RW + C:03F6H PUBLIC _writeData + C:03D0H PUBLIC write + C:0003H PUBLIC draw + X:0000H PUBLIC sine + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:03ABH PUBLIC init + C:01B5H PUBLIC test + B:00B0H.2 PUBLIC E + C:0404H PUBLIC _setPage + B:00B0H.4 PUBLIC CSA + B:00B0H.5 PUBLIC CSB + C:040BH PUBLIC _setLine + 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 + + + C:03CCH SYMBOL L?0057 + ------- PROC L?0055 + ------- ENDPROC L?0055 + C:03C7H SYMBOL L?0056 + C:03CCH SYMBOL L?0057 + ------- 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 + ------- ENDPROC WRITE + ------- PROC DRAW + ------- DO + X:0088H 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 + ------- 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 + + + ------- 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 + ------- 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 + ------- 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 + ------- 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 + ------- 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 + ------- 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 + ------- ENDPROC _SETCOMMAND + ------- PROC _SETPAGE + D:0007H SYMBOL p + C:0404H LINE# 187 + C:0404H LINE# 188 + C:0404H LINE# 189 + ------- ENDPROC _SETPAGE + ------- PROC _SETLINE + D:0007H SYMBOL p + C:040BH LINE# 192 + C:040BH LINE# 193 + C:040BH LINE# 194 + ------- ENDPROC _SETLINE + ------- PROC _SETY + D:0007H SYMBOL p + C:0412H LINE# 197 + C:0412H LINE# 198 + C:0412H LINE# 199 + ------- ENDPROC _SETY + ------- ENDMOD DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?DELAY100US?DELAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?TEST?DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_WRITEDATA?DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SETPAGE?DISPLAY + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?_SETLINE?DISPLAY + +*** 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) diff --git a/MCU/Final_Design/MCU_1.uvopt b/MCU/Final_Design/MCU_1.uvopt new file mode 100644 index 0000000..0e777e7 --- /dev/null +++ b/MCU/Final_Design/MCU_1.uvopt @@ -0,0 +1,289 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + MCU_1 + 0x0 + MCS-51 + + 24000000 + + 1 + 1 + 1 + 0 + 0 + + + 0 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\ATMEL\AT89C51_DS.PDF + + + 1 + Instruction Set Manual + DATASHTS\ATMEL\AT_C51ISM.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\MON51.DLL + + + + 0 + DLGTP51 + (98=-1,-1,-1,-1,0)(82=-1,-1,-1,-1,0)(83=-1,-1,-1,-1,0)(84=-1,-1,-1,-1,0)(85=-1,-1,-1,-1,0)(80=-1,-1,-1,-1,0)(91=-1,-1,-1,-1,0)(92=-1,-1,-1,-1,0) + + + 0 + MON51 + -S2 -B115200 -O15 + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + SRC + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + .\delay.c + delay.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + .\display.c + display.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + .\snake.c + snake.c + 0 + 0 + + + + + INC + 1 + 0 + 0 + 0 + + 2 + 5 + 5 + 0 + 0 + 0 + .\main.h + main.h + 0 + 0 + + + 2 + 6 + 5 + 0 + 0 + 0 + .\display.h + display.h + 0 + 0 + + + 2 + 7 + 5 + 0 + 0 + 0 + .\snake.h + snake.h + 0 + 0 + + + +
diff --git a/MCU/Final_Design/MCU_1.uvproj b/MCU/Final_Design/MCU_1.uvproj new file mode 100644 index 0000000..d17cff6 --- /dev/null +++ b/MCU/Final_Design/MCU_1.uvproj @@ -0,0 +1,425 @@ + + + + 1.1 + +
### uVision Project, (C) Keil Software
+ + + + MCU_1 + 0x0 + MCS-51 + 0 + + + AT89C51 + Microchip + IRAM(0-0x7F) IROM(0-0xFFF) CLOCK(24000000) + + "LIB\STARTUP.A51" ("Standard 8051 Startup Code") + + 2976 + REGX51.H + + + + + + + + + + + 0 + 0 + + + + Atmel\ + Atmel\ + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + MCU_1 + 1 + 0 + 1 + 1 + 1 + .\Listings\ + 0 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + 65535 + + + S8051.DLL + + DP51.DLL + -p51 + S8051.DLL + + TP51.DLL + -p51 + + + + 0 + 0 + 0 + 0 + 16 + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + + + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + + 0 + 0 + + + + + + + + + + + + + + BIN\MON51.DLL + + + + + 0 + 0 + 0 + 0 + 0 + -1 + + 0 + + "" () + + + + + 0 + + + + 2 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + 0 + 0x0 + 0xffff + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x1000 + + + 0 + 0x0 + 0x80 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + + + 0 + 0 + 1 + 0 + 1 + 3 + 8 + 2 + 1 + 1 + 0 + 0 + + + + + ..\MCU + + + + 0 + 1 + 0 + 0 + + + + + + + + + 0 + 0 + 1 + 0 + 2 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SRC + + + main.c + 1 + .\main.c + + + delay.c + 1 + .\delay.c + + + display.c + 1 + .\display.c + + + snake.c + 1 + .\snake.c + + + + + INC + + + main.h + 5 + .\main.h + + + display.h + 5 + .\display.h + + + snake.h + 5 + .\snake.h + + + + + + + +
diff --git a/MCU/Final_Design/delay.c b/MCU/Final_Design/delay.c new file mode 100644 index 0000000..e0c3247 --- /dev/null +++ b/MCU/Final_Design/delay.c @@ -0,0 +1,29 @@ +#include "delay.h" +#include +void delay100us() +{ + unsigned char i, j; + + _nop_(); + _nop_(); + i = 2; + j = 15; + do + { + while (--j); + } while (--i); +} + +//void delay(int i) +//{ +// int j = i; +// for(;j>0;j--) +// delay100us(); +//} + +void delay(int n) + +{int i, j; + for(i=n;i>0;i--) + for(j = 28; j > 0; j--); +} \ No newline at end of file diff --git a/MCU/Final_Design/delay.h b/MCU/Final_Design/delay.h new file mode 100644 index 0000000..da40b5c --- /dev/null +++ b/MCU/Final_Design/delay.h @@ -0,0 +1,7 @@ +#ifndef _DELAY_H_ +#define _DELAY_H_ + + +void delay(int i); +void delay100us(); +#endif \ No newline at end of file diff --git a/MCU/Final_Design/display.c b/MCU/Final_Design/display.c new file mode 100644 index 0000000..449e261 --- /dev/null +++ b/MCU/Final_Design/display.c @@ -0,0 +1,200 @@ +#include +#include "display.h" +#include "delay.h" + + +// DB P1 +// CTL P3 + +sbit RS = P3 ^ 0; +sbit RW = P3 ^ 1; +sbit E = P3 ^ 2; +sbit CSA = P3 ^ 4; +sbit CSB = P3 ^ 5; + + +unsigned char sine[] = {32,33,34,36,37,39,40,42,43,44,46,47,48,49,51,52,53,54,55,56,56,57,58,59,59,60,60,61,61,61,61,61,61,61,61,61,61,61,60,60,59,59,58,57,56,56,55,54,53,52,51,49,48,47,46,44,43,42,40,39,37,36,34,33,32,30,29,27,26,24,23,21,20,19,17,16,15,14,12,11,10,9,8,7,7,6,5,4,4,3,3,2,2,2,2,2,2,2,2,2,2,2,3,3,4,4,5,6,7,7,8,9,10,11,12,14,15,16,17,19,20,21,23,24,26,27,29,30}; + +void write() +{ + RW = 0; + E = 0; + E = 1; + delay(2); + E = 0; +} + +void draw() +{ + unsigned int j; + CSA = 1; + CSB = 0; + + for(j = 0; j < 64; j++) + { + + RS = 0; + RW = 0; + P1 = 0xb8 + (sine[j] / 8); //页 + write(); + P1 = 0X40 + j; //Y + write(); + RS = 1; + RW = 0; + P1 = 1<<(sine[j] % 8); + write(); + } + + CSA = 0; + CSB = 1; + for(j = 0; j < 64; j++) + { + + RS = 0; + RW = 0; + P1 = 0xb8 + (sine[63 + j] / 8); //页 + write(); + P1 = 0X40 + j; //Y + write(); + + + RS = 1; + RW = 0; + P1 = 1<<(sine[j+63] % 8); + write(); + } +} + + +void clear() +{ + unsigned int i, j; + CSA = 1; + CSB = 0; + for(i = 0; i < 8; i++) + { + RS = 0; + RW = 0; + P1 = 0xb8 + i; + write(); + P1 = 0X40; + write(); + + for(j = 0; j < 64; j++) + { + RS = 1; + RW = 0; + P1 = 0x00;; + write(); + } + } + CSA = 0; + CSB = 1; + for(i = 0; i < 8; i++) + { + RS = 0; + RW = 0; + P1 = 0xb8 + i; + write(); + P1 = 0X40; + write(); + + for(j = 0; j < 64; j++) + { + RS = 1; + RW = 0; + P1 = 0x00; + write(); + } + } +} +void init() +{ + E = 0; + RS = 1; + CSA = 1; + CSB = 0; + RS = 0; + P1 = 0X3F; + write(); + + CSA = 0; + CSB = 1; + RS = 0; + P1 = 0X3F; + write(); +} + +void test() +{ + unsigned int i, j; + CSA = 1; + CSB = 0; + for(i = 0; i < 8; i++) + { + RS = 0; + RW = 0; + P1 = 0xb8 + i; + write(); + P1 = 0X40; + write(); + + for(j = 0; j < 64; j++) + { + RS = 1; + RW = 0; + P1 = 0x55; + write(); + } + } + CSA = 0; + CSB = 1; + for(i = 0; i < 8; i++) + { + RS = 0; + RW = 0; + P1 = 0xb8 + i; + write(); + P1 = 0X40; + write(); + + for(j = 0; j < 64; j++) + { + RS = 1; + RW = 0; + P1 = 0x55;; + write(); + } + } +} + + +void writeData(unsigned char d) +{ + RS = 1; + RW = 0; + P1 = d; +} + +void setCommand(unsigned char d) +{ + RS = 0; + RW = 0; + P1 = d; +} + + +void setPage(unsigned char p) +{ + setCommand(0xb8 + p); +} + +void setLine(unsigned char p) +{ + setCommand(0xc0 + p); +} + +void setY(unsigned char p) +{ + setCommand(0x40 + p); +} \ No newline at end of file diff --git a/MCU/Final_Design/display.h b/MCU/Final_Design/display.h new file mode 100644 index 0000000..1532e04 --- /dev/null +++ b/MCU/Final_Design/display.h @@ -0,0 +1,17 @@ +#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(); +#endif \ No newline at end of file diff --git a/MCU/Final_Design/main.c b/MCU/Final_Design/main.c new file mode 100644 index 0000000..bb67f82 --- /dev/null +++ b/MCU/Final_Design/main.c @@ -0,0 +1,19 @@ +#include "delay.h" +#include "main.h" +#include "display.h" + + +unsigned int i; +unsigned int j; + +int main() +{ + init(); + clear(); + + while(1) + { + draw(); + + } +} \ No newline at end of file diff --git a/MCU/Final_Design/main.h b/MCU/Final_Design/main.h new file mode 100644 index 0000000..2656732 --- /dev/null +++ b/MCU/Final_Design/main.h @@ -0,0 +1,11 @@ +#ifndef _MAIN_H_ +#define _MAIN_H_ + +#include +#include +#include +#include "display.h" + + + +#endif \ No newline at end of file diff --git a/MCU/Final_Design/snake.c b/MCU/Final_Design/snake.c new file mode 100644 index 0000000..9a8802e --- /dev/null +++ b/MCU/Final_Design/snake.c @@ -0,0 +1,8 @@ +#include "snake.h" + +Body head[40]={{0,0},0,-1}; +void snake_init() +{ + + +} \ No newline at end of file diff --git a/MCU/Final_Design/snake.h b/MCU/Final_Design/snake.h new file mode 100644 index 0000000..45f954c --- /dev/null +++ b/MCU/Final_Design/snake.h @@ -0,0 +1,26 @@ +#include +#include +#define bool char + +typedef enum +{ + N=0,U, D, L, R +} MOVE_STATE; + + +struct DOT +{ + unsigned char x; + unsigned char y; +} ; + +struct BODY +{ + + dot d; + MOVE_STATE ms; + char id; +}; + +typedef struct BODY Body; +typedef struct DOT Dot; diff --git a/justhomework.code-workspace b/justhomework.code-workspace index 876a149..6084c57 100644 --- a/justhomework.code-workspace +++ b/justhomework.code-workspace @@ -2,6 +2,10 @@ "folders": [ { "path": "." + }, + { + "name": "esp32", + "path": "E:\\esp32" } ], "settings": {}