diff --git a/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 b/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51
new file mode 100644
index 0000000..e469b31
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/Listings/MCU_1.m51
@@ -0,0 +1,549 @@
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 1
+
+
+BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
+C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\menu.obj, .\Objects\delay.obj, .\Objects\display.obj TO .\Obje
+>> cts\MCU_1 PRINT (.\Listings\MCU_1.m51)
+
+
+MEMORY MODEL: LARGE
+
+
+INPUT MODULES INCLUDED:
+ .\Objects\main.obj (MAIN)
+ .\Objects\menu.obj (MENU)
+ .\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?PLDPTR)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDOPTR)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?ICALL)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDIDATA)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDXDATA)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDPDATA)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDCODE)
+
+
+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 000FH UNIT ?XD?MENU
+ XDATA 000FH 0007H UNIT _XDATA_GROUP_
+ XDATA 0016H 0004H UNIT ?XD?MINICLEAR?DISPLAY
+ XDATA 001AH 0004H UNIT ?XD?TEST?DISPLAY
+
+ * * * * * * * C O D E M E M O R Y * * * * * * *
+ CODE 0000H 0003H ABSOLUTE
+ CODE 0003H 01A0H UNIT ?CO?DISPLAY
+ CODE 01A3H 013BH UNIT ?PR?DRAWNUMBER?DISPLAY
+ CODE 02DEH 00C5H UNIT ?PR?CLEAR?DISPLAY
+ CODE 03A3H 00C5H UNIT ?PR?MINICLEAR?DISPLAY
+ CODE 0468H 00C5H UNIT ?PR?TEST?DISPLAY
+ CODE 052DH 008EH UNIT ?PR?DRAWNAME?DISPLAY
+ CODE 05BBH 008CH UNIT ?C_C51STARTUP
+ CODE 0647H 007DH UNIT ?C?LIB_CODE
+ CODE 06C4H 0042H UNIT ?PR?_M_STARTUP?MENU
+ CODE 0706H 002FH UNIT ?PR?MAIN?MAIN
+ CODE 0735H 0020H UNIT ?PR?_DELAY?DELAY
+ CODE 0755H 001CH UNIT ?PR?DISPLAYINIT?DISPLAY
+ CODE 0771H 0019H UNIT ?PR?WRITE?DISPLAY
+ CODE 078AH 000FH UNIT ?PR?MENUINIT?MENU
+ CODE 0799H 000BH UNIT ?PR?DELAY100US?DELAY
+ CODE 07A4H 000AH UNIT ?C_INITSEG
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 2
+
+
+
+
+
+OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN)
+
+
+SEGMENT XDATA_GROUP
+ +--> CALLED SEGMENT START LENGTH
+-----------------------------------------------
+?C_C51STARTUP ----- -----
+ +--> ?PR?MAIN?MAIN
+ +--> ?C_INITSEG
+
+?PR?MAIN?MAIN ----- -----
+ +--> ?PR?MENUINIT?MENU
+
+?C_INITSEG ----- -----
+ +--> ?PR?_M_STARTUP?MENU
+
+?PR?_M_STARTUP?MENU 000FH 0003H
+ +--> ?PR?DISPLAYINIT?DISPLAY
+ +--> ?PR?CLEAR?DISPLAY
+ +--> ?PR?DRAWNAME?DISPLAY
+ +--> ?PR?_DELAY?DELAY
+ +--> ?PR?DRAWNUMBER?DISPLAY
+
+?PR?DISPLAYINIT?DISPLAY ----- -----
+ +--> ?PR?WRITE?DISPLAY
+
+?PR?WRITE?DISPLAY ----- -----
+ +--> ?PR?_DELAY?DELAY
+
+?PR?CLEAR?DISPLAY 0012H 0004H
+ +--> ?PR?WRITE?DISPLAY
+
+?PR?DRAWNAME?DISPLAY 0012H 0002H
+ +--> ?PR?WRITE?DISPLAY
+ +--> ?CO?DISPLAY
+
+?PR?DRAWNUMBER?DISPLAY 0012H 0002H
+ +--> ?PR?WRITE?DISPLAY
+ +--> ?CO?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:0706H PUBLIC main
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 3
+
+
+ D:0098H PUBLIC SCON
+ D:0088H PUBLIC TCON
+ D:00C8H PUBLIC T2CON
+ D:00D0H PUBLIC PSW
+ ------- PROC MAIN
+ C:0706H LINE# 15
+ C:0706H LINE# 16
+ C:0706H LINE# 17
+ C:0709H LINE# 18
+ C:0733H LINE# 19
+ C:0733H LINE# 20
+ C:0733H LINE# 24
+ ------- ENDPROC MAIN
+ ------- ENDMOD MAIN
+
+ ------- MODULE MENU
+ C:0000H SYMBOL _ICE_DUMMY_
+ X:0000H PUBLIC M_MAINMANU
+ C:078AH PUBLIC menuInit
+ X:0006H PUBLIC M_STARTUP
+ C:06C4H PUBLIC _m_startup
+ X:000CH PUBLIC NOW
+ ------- PROC _M_STARTUP
+ X:000FH SYMBOL this
+ C:06C4H LINE# 10
+ C:06CFH LINE# 11
+ C:06CFH LINE# 12
+ C:06D2H LINE# 13
+ C:06D5H LINE# 14
+ C:06D8H LINE# 15
+ C:06DFH LINE# 16
+ C:06E2H LINE# 17
+ C:06E9H LINE# 18
+ C:06ECH LINE# 19
+ C:0705H LINE# 20
+ ------- ENDPROC _M_STARTUP
+ ------- PROC MENUINIT
+ C:078AH LINE# 24
+ C:078AH LINE# 25
+ C:078AH LINE# 26
+ C:0798H LINE# 27
+ ------- ENDPROC MENUINIT
+ ------- ENDMOD MENU
+
+ ------- MODULE DELAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ C:0799H PUBLIC delay100us
+ C:0735H PUBLIC _delay
+ ------- PROC DELAY100US
+ ------- DO
+ D:0007H SYMBOL i
+ D:0006H SYMBOL j
+ ------- ENDDO
+ C:0799H LINE# 3
+ C:0799H LINE# 4
+ C:0799H LINE# 7
+ C:079AH LINE# 8
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 4
+
+
+ C:079BH LINE# 9
+ C:079DH LINE# 10
+ C:079FH LINE# 12
+ C:079FH LINE# 13
+ C:07A1H LINE# 14
+ C:07A3H LINE# 15
+ ------- ENDPROC DELAY100US
+ ------- PROC _DELAY
+ D:0006H SYMBOL n
+ ------- DO
+ D:0006H SYMBOL i
+ D:0004H SYMBOL j
+ ------- ENDDO
+ C:0735H LINE# 24
+ C:0735H LINE# 26
+ C:0735H LINE# 27
+ C:0740H LINE# 28
+ C:0754H LINE# 29
+ ------- ENDPROC _DELAY
+ ------- ENDMOD DELAY
+
+ ------- MODULE DISPLAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ D:0090H PUBLIC P1
+ D:00B0H PUBLIC P3
+ C:02DEH PUBLIC clear
+ D:00A8H PUBLIC IE
+ C:0755H PUBLIC displayInit
+ D:00B8H PUBLIC IP
+ B:00B0H.0 PUBLIC RS
+ B:00B0H.1 PUBLIC RW
+ C:077AH PUBLIC write
+ D:0098H PUBLIC SCON
+ D:0088H PUBLIC TCON
+ C:03A3H PUBLIC miniclear
+ C:0468H PUBLIC test
+ B:00B0H.2 PUBLIC E
+ C:0163H PUBLIC NUMBER_RPAGE0
+ C:0183H PUBLIC NUMBER_RPAGE1
+ C:0003H PUBLIC NAME_PAGE0
+ C:0033H PUBLIC NAME_PAGE1
+ C:052DH PUBLIC drawNAME
+ B:00B0H.4 PUBLIC CSA
+ B:00B0H.5 PUBLIC CSB
+ D:00C8H PUBLIC T2CON
+ C:0063H PUBLIC NUMBER_PAGE0
+ D:00D0H PUBLIC PSW
+ C:00E3H PUBLIC NUMBER_PAGE1
+ C:01A3H PUBLIC drawNUMBER
+ C:0771H SYMBOL L?0069
+ ------- PROC L?0068
+ ------- ENDPROC L?0068
+ C:0771H SYMBOL L?0069
+ ------- PROC WRITE
+ C:077AH LINE# 18
+ C:077AH LINE# 19
+ C:077AH LINE# 20
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 5
+
+
+ C:077CH LINE# 21
+ C:077EH LINE# 22
+ C:0780H LINE# 23
+ C:0787H LINE# 24
+ C:0789H LINE# 25
+ ------- ENDPROC WRITE
+ ------- PROC DRAWNUMBER
+ ------- DO
+ X:0012H SYMBOL j
+ ------- ENDDO
+ C:01A3H LINE# 27
+ C:01A3H LINE# 28
+ C:01A3H LINE# 30
+ C:01AAH LINE# 31
+ C:01AAH LINE# 34
+ C:01ACH LINE# 35
+ C:01AEH LINE# 36
+ C:01B0H LINE# 37
+ C:01B2H LINE# 38
+ C:01B5H LINE# 39
+ C:01B8H LINE# 40
+ C:01C1H LINE# 41
+ C:01C4H LINE# 43
+ C:01C6H LINE# 44
+ C:01C8H LINE# 45
+ C:01E4H LINE# 46
+ C:01E7H LINE# 48
+ C:01E9H LINE# 49
+ C:01EBH LINE# 50
+ C:01EEH LINE# 51
+ C:01F1H LINE# 52
+ C:01FAH LINE# 53
+ C:01FDH LINE# 55
+ C:01FFH LINE# 56
+ C:0201H LINE# 57
+ C:021DH LINE# 58
+ C:0220H LINE# 61
+ C:0240H LINE# 62
+ C:0247H LINE# 63
+ C:0247H LINE# 66
+ C:0249H LINE# 67
+ C:024BH LINE# 68
+ C:024DH LINE# 69
+ C:024FH LINE# 70
+ C:0252H LINE# 71
+ C:0255H LINE# 72
+ C:025EH LINE# 73
+ C:0261H LINE# 75
+ C:0263H LINE# 76
+ C:0265H LINE# 77
+ C:0281H LINE# 78
+ C:0284H LINE# 80
+ C:0286H LINE# 81
+ C:0288H LINE# 82
+ C:028BH LINE# 83
+ C:028EH LINE# 84
+ C:0297H LINE# 85
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 6
+
+
+ C:029AH LINE# 87
+ C:029CH LINE# 88
+ C:029EH LINE# 89
+ C:02BAH LINE# 90
+ C:02BDH LINE# 93
+ C:02DDH LINE# 94
+ ------- ENDPROC DRAWNUMBER
+ ------- PROC DRAWNAME
+ ------- DO
+ X:0012H SYMBOL j
+ ------- ENDDO
+ C:052DH LINE# 96
+ C:052DH LINE# 97
+ C:052DH LINE# 100
+ C:0534H LINE# 101
+ C:0534H LINE# 104
+ C:0536H LINE# 105
+ C:0538H LINE# 106
+ C:053AH LINE# 107
+ C:053CH LINE# 108
+ C:053FH LINE# 109
+ C:0542H LINE# 110
+ C:054BH LINE# 111
+ C:054EH LINE# 113
+ C:0550H LINE# 114
+ C:0552H LINE# 115
+ C:0566H LINE# 116
+ C:0569H LINE# 118
+ C:056BH LINE# 119
+ C:056DH LINE# 120
+ C:0570H LINE# 121
+ C:0573H LINE# 122
+ C:057CH LINE# 123
+ C:057FH LINE# 125
+ C:0581H LINE# 126
+ C:0583H LINE# 127
+ C:0597H LINE# 128
+ C:059AH LINE# 131
+ C:05BAH LINE# 132
+ ------- ENDPROC DRAWNAME
+ ------- PROC CLEAR
+ ------- DO
+ X:0012H SYMBOL i
+ X:0014H SYMBOL j
+ ------- ENDDO
+ C:02DEH LINE# 134
+ C:02DEH LINE# 135
+ C:02DEH LINE# 137
+ C:02E0H LINE# 138
+ C:02E2H LINE# 139
+ C:02F9H LINE# 140
+ C:02F9H LINE# 141
+ C:02F9H LINE# 142
+ C:02F9H LINE# 143
+ C:02F9H LINE# 144
+ C:02FCH LINE# 145
+ C:02FFH LINE# 146
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 7
+
+
+ C:0302H LINE# 148
+ C:0309H LINE# 149
+ C:0309H LINE# 150
+ C:030BH LINE# 151
+ C:030DH LINE# 152
+ C:0310H LINE# 153
+ C:0313H LINE# 154
+ C:0330H LINE# 155
+ C:0340H LINE# 156
+ C:0342H LINE# 157
+ C:0344H LINE# 158
+ C:035BH LINE# 159
+ C:035BH LINE# 160
+ C:035BH LINE# 161
+ C:035BH LINE# 162
+ C:035BH LINE# 163
+ C:035EH LINE# 164
+ C:0361H LINE# 165
+ C:0364H LINE# 167
+ C:036BH LINE# 168
+ C:036BH LINE# 169
+ C:036DH LINE# 170
+ C:036FH LINE# 171
+ C:0372H LINE# 172
+ C:0375H LINE# 173
+ C:0392H LINE# 174
+ C:03A2H LINE# 175
+ ------- ENDPROC CLEAR
+ ------- PROC MINICLEAR
+ ------- DO
+ X:0016H SYMBOL i
+ X:0018H SYMBOL j
+ ------- ENDDO
+ C:03A3H LINE# 178
+ C:03A3H LINE# 179
+ C:03A3H LINE# 181
+ C:03A5H LINE# 182
+ C:03A7H LINE# 183
+ C:03BEH LINE# 184
+ C:03BEH LINE# 185
+ C:03BEH LINE# 186
+ C:03BEH LINE# 187
+ C:03BEH LINE# 188
+ C:03C1H LINE# 189
+ C:03C4H LINE# 190
+ C:03C7H LINE# 192
+ C:03CEH LINE# 193
+ C:03CEH LINE# 194
+ C:03D0H LINE# 195
+ C:03D2H LINE# 196
+ C:03D5H LINE# 197
+ C:03D8H LINE# 198
+ C:03F5H LINE# 199
+ C:0405H LINE# 200
+ C:0407H LINE# 201
+ C:0409H LINE# 202
+ C:0420H LINE# 203
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 8
+
+
+ C:0420H LINE# 204
+ C:0420H LINE# 205
+ C:0420H LINE# 206
+ C:0420H LINE# 207
+ C:0423H LINE# 208
+ C:0426H LINE# 209
+ C:0429H LINE# 211
+ C:0430H LINE# 212
+ C:0430H LINE# 213
+ C:0432H LINE# 214
+ C:0434H LINE# 215
+ C:0437H LINE# 216
+ C:043AH LINE# 217
+ C:0457H LINE# 218
+ C:0467H LINE# 219
+ ------- ENDPROC MINICLEAR
+ ------- PROC DISPLAYINIT
+ C:0755H LINE# 220
+ C:0755H LINE# 221
+ C:0755H LINE# 222
+ C:0757H LINE# 223
+ C:0759H LINE# 224
+ C:075BH LINE# 225
+ C:075DH LINE# 226
+ C:075FH LINE# 227
+ C:0762H LINE# 228
+ C:0765H LINE# 230
+ C:0767H LINE# 231
+ C:0769H LINE# 232
+ C:076BH LINE# 233
+ C:076EH LINE# 234
+ ------- ENDPROC DISPLAYINIT
+ ------- PROC TEST
+ ------- DO
+ X:001AH SYMBOL i
+ X:001CH SYMBOL j
+ ------- ENDDO
+ C:0468H LINE# 237
+ C:0468H LINE# 238
+ C:0468H LINE# 240
+ C:046AH LINE# 241
+ C:046CH LINE# 242
+ C:0483H LINE# 243
+ C:0483H LINE# 244
+ C:0483H LINE# 245
+ C:0483H LINE# 246
+ C:0483H LINE# 247
+ C:0486H LINE# 248
+ C:0489H LINE# 249
+ C:048CH LINE# 251
+ C:0493H LINE# 252
+ C:0493H LINE# 253
+ C:0495H LINE# 254
+ C:0497H LINE# 255
+ C:049AH LINE# 256
+ C:049DH LINE# 257
+ C:04BAH LINE# 258
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 9
+
+
+ C:04CAH LINE# 259
+ C:04CCH LINE# 260
+ C:04CEH LINE# 261
+ C:04E5H LINE# 262
+ C:04E5H LINE# 263
+ C:04E5H LINE# 264
+ C:04E5H LINE# 265
+ C:04E5H LINE# 266
+ C:04E8H LINE# 267
+ C:04EBH LINE# 268
+ C:04EEH LINE# 270
+ C:04F5H LINE# 271
+ C:04F5H LINE# 272
+ C:04F7H LINE# 273
+ C:04F9H LINE# 274
+ C:04FCH LINE# 275
+ C:04FFH LINE# 276
+ C:051CH LINE# 277
+ C:052CH LINE# 278
+ ------- ENDPROC TEST
+ ------- ENDMOD DISPLAY
+
+ ------- MODULE ?C?PLDPTR
+ C:0647H PUBLIC ?C?PLDPTR
+ ------- ENDMOD ?C?PLDPTR
+
+ ------- MODULE ?C?PLDOPTR
+ C:0667H PUBLIC ?C?PLDOPTR
+ ------- ENDMOD ?C?PLDOPTR
+
+ ------- MODULE ?C?ICALL
+ C:0697H PUBLIC ?C?ICALL
+ C:069BH PUBLIC ?C?ICALL2
+ ------- ENDMOD ?C?ICALL
+
+ ------- MODULE ?C?PLDIDATA
+ C:069DH PUBLIC ?C?PLDIDATA
+ ------- ENDMOD ?C?PLDIDATA
+
+ ------- MODULE ?C?PLDXDATA
+ C:06A6H PUBLIC ?C?PLDXDATA
+ ------- ENDMOD ?C?PLDXDATA
+
+ ------- MODULE ?C?PLDPDATA
+ C:06AFH PUBLIC ?C?PLDPDATA
+ ------- ENDMOD ?C?PLDPDATA
+
+ ------- MODULE ?C?PLDCODE
+ C:06B8H PUBLIC ?C?PLDCODE
+ ------- ENDMOD ?C?PLDCODE
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?DELAY100US?DELAY
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?MINICLEAR?DISPLAY
+
+BL51 BANKED LINKER/LOCATER V6.22.2.0 05/19/2022 21:06:37 PAGE 10
+
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?TEST?DISPLAY
+
+Program Size: data=9.0 xdata=30 code=1966
+LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S)
diff --git a/MCU/MCU_REAL _FINAL/MCU_1.uvopt b/MCU/MCU_REAL _FINAL/MCU_1.uvopt
new file mode 100644
index 0000000..92177d7
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/MCU_1.uvopt
@@ -0,0 +1,318 @@
+
+
+
+ 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
+ 1
+ Z[j]
+
+
+ 1
+ 1
+ line
+
+
+ 2
+ 1
+ l
+
+
+
+ 0
+
+
+ 0
+ 1
+ 0
+ 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
+ .\menu.c
+ menu.c
+ 0
+ 0
+
+
+ 1
+ 3
+ 1
+ 0
+ 0
+ 0
+ .\delay.c
+ delay.c
+ 0
+ 0
+
+
+ 1
+ 4
+ 1
+ 0
+ 0
+ 0
+ .\display.c
+ display.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
+ .\img.h
+ img.h
+ 0
+ 0
+
+
+ 2
+ 8
+ 5
+ 0
+ 0
+ 0
+ .\menu.h
+ menu.h
+ 0
+ 0
+
+
+
+
diff --git a/MCU/MCU_REAL _FINAL/MCU_1.uvproj b/MCU/MCU_REAL _FINAL/MCU_1.uvproj
new file mode 100644
index 0000000..fbf53c8
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/MCU_1.uvproj
@@ -0,0 +1,430 @@
+
+
+
+ 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
+
+
+ menu.c
+ 1
+ .\menu.c
+
+
+ delay.c
+ 1
+ .\delay.c
+
+
+ display.c
+ 1
+ .\display.c
+
+
+
+
+ INC
+
+
+ main.h
+ 5
+ .\main.h
+
+
+ display.h
+ 5
+ .\display.h
+
+
+ img.h
+ 5
+ .\img.h
+
+
+ menu.h
+ 5
+ .\menu.h
+
+
+
+
+
+
+
+
diff --git a/MCU/MCU_REAL _FINAL/delay.c b/MCU/MCU_REAL _FINAL/delay.c
new file mode 100644
index 0000000..e0c3247
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/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/MCU_REAL _FINAL/delay.h b/MCU/MCU_REAL _FINAL/delay.h
new file mode 100644
index 0000000..da40b5c
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/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/MCU_REAL _FINAL/display.c b/MCU/MCU_REAL _FINAL/display.c
new file mode 100644
index 0000000..59ea14c
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/display.c
@@ -0,0 +1,278 @@
+#include
+#include "display.h"
+#include "delay.h"
+#include "img.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;
+
+
+
+
+void write()
+{
+ RW = 0;
+ E = 0;
+ E = 1;
+ delay(2);
+ E = 0;
+}
+
+void drawNUMBER()
+{
+ unsigned int j;
+ for(j =0 ; j < 64; j++)
+ {
+
+
+ CSA = 1;
+ CSB = 0;
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 2;
+ write();
+ P1 = 0X40 + j;
+ write(); //页2列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NUMBER_PAGE0[j - 1];
+ write();
+
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 3;
+ write();
+ P1 = 0X40 + j;
+ write(); //页3列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NUMBER_PAGE1[j - 1];
+ write();
+
+
+ }
+ for(j =0 ; j < 16; j++)
+ {
+
+
+ CSA = 0;
+ CSB = 1;
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 2;
+ write();
+ P1 = 0X40 + j;
+ write(); //页2列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NUMBER_RPAGE0[j - 1];
+ write();
+
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 3;
+ write();
+ P1 = 0X40 + j;
+ write(); //页3列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NUMBER_RPAGE1[j - 1];
+ write();
+
+
+ }
+}
+
+void drawNAME()
+{
+ unsigned int j;
+
+ for(j = 0; j < 48; j++)
+ {
+
+
+ CSA = 1;
+ CSB = 0;
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 0;
+ write();
+ P1 = 0X40 + j;
+ write(); //页0列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NAME_PAGE0[j - 1];
+ write();
+
+ RS = 0;
+ RW = 0;
+ P1 = 0xb8 + 1;
+ write();
+ P1 = 0X40 + j;
+ write(); //页1列j屏A
+
+ RS = 1;
+ RW = 0;
+ P1 = NAME_PAGE1[j - 1];
+ 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 miniclear()
+{
+ unsigned int i, j;
+ CSA = 1;
+ CSB = 0;
+ for(i = 0; i < 2; 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 < 2; 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 displayInit()
+{
+ 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();
+ }
+ }
+}
\ No newline at end of file
diff --git a/MCU/MCU_REAL _FINAL/display.h b/MCU/MCU_REAL _FINAL/display.h
new file mode 100644
index 0000000..181fb7c
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/display.h
@@ -0,0 +1,18 @@
+#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 displayInit();
+void clear();
+void miniclear();
+void drawNAME();
+void drawNUMBER();
+void write();
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_REAL _FINAL/img.h b/MCU/MCU_REAL _FINAL/img.h
new file mode 100644
index 0000000..c9ff8c1
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/img.h
@@ -0,0 +1,91 @@
+code unsigned char NAME_PAGE0[] =
+{
+ 0x10, 0x60, 0x02, 0x0C, 0xC0, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00,
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
+ 0x20, 0x24, 0x24, 0xA4, 0xFE, 0x23, 0x22, 0x20, 0x00, 0xF8, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00,
+
+};
+code unsigned char NAME_PAGE1[] =
+{
+ 0x04, 0x04, 0x7C, 0x03, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x08, 0x06, 0x01, 0xFF, 0x01, 0x06, 0x00, 0x00, 0x3F, 0x10, 0x10, 0x10, 0x3F, 0x00, 0x00
+};
+
+
+
+code unsigned NUMBER_PAGE0[]={
+
+/*-- 文字: 2 --*/
+0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,
+/*-- 文字: 0 --*/
+0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
+/*-- 文字: 2 --*/
+0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,
+/*-- 文字: 0 --*/
+0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
+/*-- 文字: 1 --*/
+0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,
+/*-- 文字: 1 --*/
+0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,
+/*-- 文字: 4 --*/
+0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,
+/*-- 文字: 4 --*/
+0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,
+
+};
+
+
+
+code unsigned NUMBER_PAGE1[]={
+0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
+0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
+0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
+0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
+0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
+0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,
+0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,
+0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24,
+
+};
+
+code unsigned NUMBER_RPAGE0[]=
+{
+0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,
+0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
+};
+
+code unsigned NUMBER_RPAGE1[]=
+{
+0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00,
+0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
+};
+
+//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/MCU_REAL _FINAL/main.c b/MCU/MCU_REAL _FINAL/main.c
new file mode 100644
index 0000000..68eeae0
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/main.c
@@ -0,0 +1,25 @@
+#include "delay.h"
+#include "main.h"
+#include "display.h"
+#include "menu.h"
+
+extern Menu *NOW;
+
+sbit RS = P3 ^ 0;
+sbit RW = P3 ^ 1;
+sbit E = P3 ^ 2;
+sbit CSA = P3 ^ 4;
+sbit CSB = P3 ^ 5;
+
+
+int main()
+{
+ menuInit();
+ NOW->f(NOW);
+ while(1)
+ {
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/MCU/MCU_REAL _FINAL/main.h b/MCU/MCU_REAL _FINAL/main.h
new file mode 100644
index 0000000..2656732
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/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/MCU_REAL _FINAL/menu.c b/MCU/MCU_REAL _FINAL/menu.c
new file mode 100644
index 0000000..98051c6
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/menu.c
@@ -0,0 +1,27 @@
+#include "menu.h"
+#include "display.h"
+#include "delay.h"
+Menu M_MAINMANU;
+Menu* NOW;
+
+
+
+
+void m_startup(struct _menu* this)
+{
+ displayInit();
+ clear();
+ drawNAME();
+ delay(1000);
+ drawNUMBER();
+ delay(3000);
+ clear();
+ NOW=this->n;
+}
+
+Menu M_STARTUP={&M_MAINMANU,m_startup};
+
+void menuInit()
+{
+NOW=&M_STARTUP;
+}
diff --git a/MCU/MCU_REAL _FINAL/menu.h b/MCU/MCU_REAL _FINAL/menu.h
new file mode 100644
index 0000000..ee37d7b
--- /dev/null
+++ b/MCU/MCU_REAL _FINAL/menu.h
@@ -0,0 +1,7 @@
+typedef struct _menu
+{
+ struct _menu* n;
+ void(*f)(struct _menu* this);
+}Menu;
+
+void menuInit();
\ No newline at end of file