From ded1a91ff38ee8042a71a6d311d24abb96f61905 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Thu, 19 May 2022 21:07:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 | 549 +++++++++++++++++++++++++ MCU/MCU_REAL _FINAL/MCU_1.uvopt | 318 ++++++++++++++ MCU/MCU_REAL _FINAL/MCU_1.uvproj | 430 +++++++++++++++++++ MCU/MCU_REAL _FINAL/delay.c | 29 ++ MCU/MCU_REAL _FINAL/delay.h | 7 + MCU/MCU_REAL _FINAL/display.c | 278 +++++++++++++ MCU/MCU_REAL _FINAL/display.h | 18 + MCU/MCU_REAL _FINAL/img.h | 91 ++++ MCU/MCU_REAL _FINAL/main.c | 25 ++ MCU/MCU_REAL _FINAL/main.h | 11 + MCU/MCU_REAL _FINAL/menu.c | 27 ++ MCU/MCU_REAL _FINAL/menu.h | 7 + 12 files changed, 1790 insertions(+) create mode 100644 MCU/MCU_REAL _FINAL/Listings/MCU_1.m51 create mode 100644 MCU/MCU_REAL _FINAL/MCU_1.uvopt create mode 100644 MCU/MCU_REAL _FINAL/MCU_1.uvproj create mode 100644 MCU/MCU_REAL _FINAL/delay.c create mode 100644 MCU/MCU_REAL _FINAL/delay.h create mode 100644 MCU/MCU_REAL _FINAL/display.c create mode 100644 MCU/MCU_REAL _FINAL/display.h create mode 100644 MCU/MCU_REAL _FINAL/img.h create mode 100644 MCU/MCU_REAL _FINAL/main.c create mode 100644 MCU/MCU_REAL _FINAL/main.h create mode 100644 MCU/MCU_REAL _FINAL/menu.c create mode 100644 MCU/MCU_REAL _FINAL/menu.h 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