diff --git a/MCU/MCU_4 _Wave/MCU_1.uvopt b/MCU/MCU_4 _Wave/MCU_1.uvopt
index 5f2df52..ee62c17 100644
--- a/MCU/MCU_4 _Wave/MCU_1.uvopt
+++ b/MCU/MCU_4 _Wave/MCU_1.uvopt
@@ -153,7 +153,7 @@
0
0
1
- MAIN.C
+ D:\ACPP\MCU\MCU_4 _Wave\MAIN.C
diff --git a/MCU/MCU_5 _Wave_Generate/Listings/MCU_1.m51 b/MCU/MCU_5 _Wave_Generate/Listings/MCU_1.m51
new file mode 100644
index 0000000..fcecbcd
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/Listings/MCU_1.m51
@@ -0,0 +1,266 @@
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/14/2022 21:42:03 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?UIDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?ULDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?SLDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?LSTXDATA)
+ 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 007AH UNIT ?XD?MAIN
+ XDATA 007AH 0010H UNIT ?XD?DISPLAY
+ XDATA 008AH 0001H UNIT _XDATA_GROUP_
+
+ * * * * * * * C O D E M E M O R Y * * * * * * *
+ CODE 0000H 0003H ABSOLUTE
+ 0003H 0008H *** GAP ***
+ CODE 000BH 0003H ABSOLUTE
+ CODE 000EH 012FH UNIT ?C?LIB_CODE
+ CODE 013DH 00B2H UNIT ?PR?_SET_DISPLAY?DISPLAY
+ CODE 01EFH 00AFH UNIT ?PR?FRESH_DISPLAY?DISPLAY
+ CODE 029EH 008CH UNIT ?C_C51STARTUP
+ CODE 032AH 0085H UNIT ?C_INITSEG
+ CODE 03AFH 005FH UNIT ?PR?TIME?MAIN
+ CODE 040EH 0044H UNIT ?C?LDIV
+ CODE 0452H 0029H UNIT ?PR?SETCONFIG?MAIN
+ CODE 047BH 0029H UNIT ?PR?FRESH_WAVE?MAIN
+ CODE 04A4H 0019H UNIT ?PR?MAIN?MAIN
+ CODE 04BDH 000EH UNIT ?PR?_DELAY?DELAY
+
+
+
+OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN)
+
+
+SEGMENT XDATA_GROUP
+ +--> CALLED SEGMENT START LENGTH
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/14/2022 21:42:03 PAGE 2
+
+
+-------------------------------------------------
+?C_C51STARTUP ----- -----
+ +--> ?PR?MAIN?MAIN
+ +--> ?C_INITSEG
+
+?PR?MAIN?MAIN ----- -----
+ +--> ?PR?SETCONFIG?MAIN
+ +--> ?PR?FRESH_WAVE?MAIN
+ +--> ?PR?_SET_DISPLAY?DISPLAY
+
+?PR?_SET_DISPLAY?DISPLAY 008AH 0001H
+
+
+
+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
+ B:00A8H.7 PUBLIC EA
+ D:00A8H PUBLIC IE
+ X:0000H PUBLIC fresh_flag
+ D:00B8H PUBLIC IP
+ X:0001H PUBLIC TH
+ X:0003H PUBLIC TL
+ C:04A4H PUBLIC main
+ C:0452H PUBLIC setConfig
+ X:0005H PUBLIC count
+ C:03AFH PUBLIC time
+ C:047BH PUBLIC fresh_wave
+ D:0098H PUBLIC SCON
+ D:0089H PUBLIC TMOD
+ D:0088H PUBLIC TCON
+ X:0009H PUBLIC bd
+ B:00A8H.1 PUBLIC ET0
+ X:000BH PUBLIC ge
+ D:008CH PUBLIC TH0
+ D:008AH PUBLIC TL0
+ X:000DH PUBLIC num
+ B:0088H.4 PUBLIC TR0
+ X:000FH PUBLIC sine_var
+ X:0073H PUBLIC qm
+ X:0075H PUBLIC ui
+ X:0077H PUBLIC wj
+ X:0079H PUBLIC digital
+ D:00C8H PUBLIC T2CON
+ D:00D0H PUBLIC PSW
+ ------- PROC SETCONFIG
+ C:0452H LINE# 22
+ C:0452H LINE# 23
+ C:0452H LINE# 24
+ C:045BH LINE# 25
+ C:0462H LINE# 28
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/14/2022 21:42:03 PAGE 3
+
+
+ C:0465H LINE# 29
+ C:046CH LINE# 30
+ C:0471H LINE# 31
+ C:0473H LINE# 32
+ C:0475H LINE# 33
+ C:0477H LINE# 35
+ C:047AH LINE# 36
+ ------- ENDPROC SETCONFIG
+ ------- PROC FRESH_WAVE
+ C:047BH LINE# 37
+ C:047BH LINE# 38
+ C:047BH LINE# 39
+ C:04A1H LINE# 40
+ C:04A3H LINE# 41
+ ------- ENDPROC FRESH_WAVE
+ ------- PROC TIME
+ C:03AFH LINE# 45
+ C:03C6H LINE# 48
+ C:03CDH LINE# 49
+ C:03D4H LINE# 50
+ C:03DAH LINE# 52
+ C:03F9H LINE# 54
+ ------- ENDPROC TIME
+ ------- PROC MAIN
+ C:04A4H LINE# 57
+ C:04A4H LINE# 58
+ C:04A4H LINE# 60
+ C:04A7H LINE# 61
+ C:04A7H LINE# 62
+ C:04A7H LINE# 63
+ C:04AFH LINE# 64
+ C:04AFH LINE# 65
+ C:04B0H LINE# 66
+ C:04B3H LINE# 67
+ C:04BBH LINE# 68
+ C:04BBH LINE# 72
+ ------- ENDPROC MAIN
+ ------- ENDMOD MAIN
+
+ ------- MODULE DELAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ C:04BDH PUBLIC _delay
+ ------- PROC _DELAY
+ D:0006H SYMBOL i
+ C:04BDH LINE# 3
+ C:04BDH LINE# 5
+ C:04BDH LINE# 6
+ C:04CAH LINE# 7
+ ------- ENDPROC _DELAY
+ ------- ENDMOD DELAY
+
+ ------- MODULE DISPLAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ D:0080H PUBLIC P0
+ D:0090H PUBLIC P1
+ D:00A0H PUBLIC P2
+ D:00B0H PUBLIC P3
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/14/2022 21:42:03 PAGE 4
+
+
+ D:00A8H PUBLIC IE
+ D:00B8H PUBLIC IP
+ C:013DH PUBLIC _set_display
+ D:0098H PUBLIC SCON
+ D:0088H PUBLIC TCON
+ X:007AH SYMBOL bd
+ X:007BH SYMBOL ge
+ X:007CH SYMBOL qm
+ X:007DH SYMBOL ui
+ X:007EH SYMBOL wj
+ D:00C8H PUBLIC T2CON
+ X:007FH SYMBOL uw
+ C:01EFH PUBLIC fresh_display
+ D:00D0H PUBLIC PSW
+ X:0080H PUBLIC num_var
+ ------- PROC FRESH_DISPLAY
+ C:01EFH LINE# 8
+ C:01EFH LINE# 9
+ C:01EFH LINE# 10
+ C:01F2H LINE# 11
+ C:0202H LINE# 12
+ C:0209H LINE# 13
+ C:020CH LINE# 15
+ C:020FH LINE# 16
+ C:021FH LINE# 17
+ C:0226H LINE# 18
+ C:0229H LINE# 20
+ C:022CH LINE# 21
+ C:023CH LINE# 22
+ C:0243H LINE# 23
+ C:0246H LINE# 25
+ C:0249H LINE# 26
+ C:0259H LINE# 27
+ C:0260H LINE# 28
+ C:0263H LINE# 30
+ C:0266H LINE# 31
+ C:0276H LINE# 32
+ C:027DH LINE# 33
+ C:0280H LINE# 35
+ C:0283H LINE# 36
+ C:0293H LINE# 37
+ C:029AH LINE# 38
+ C:029DH LINE# 39
+ ------- ENDPROC FRESH_DISPLAY
+ ------- PROC _SET_DISPLAY
+ X:008AH SYMBOL num
+ C:013DH LINE# 41
+ C:0142H LINE# 43
+ C:0142H LINE# 44
+ C:0168H LINE# 45
+ C:0192H LINE# 46
+ C:01B3H LINE# 47
+ C:01D0H LINE# 48
+ C:01E3H LINE# 49
+ C:01EEH LINE# 50
+ ------- ENDPROC _SET_DISPLAY
+ ------- ENDMOD DISPLAY
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/14/2022 21:42:03 PAGE 5
+
+
+
+ ------- MODULE ?C?UIDIV
+ C:000EH PUBLIC ?C?UIDIV
+ ------- ENDMOD ?C?UIDIV
+
+ ------- MODULE ?C?ULDIV
+ C:009FH PUBLIC ?C?ULDIV
+ ------- ENDMOD ?C?ULDIV
+
+ ------- MODULE ?C?SLDIV
+ C:040EH PUBLIC ?C?SLDIV
+ ------- ENDMOD ?C?SLDIV
+
+ ------- MODULE ?C?LSTXDATA
+ C:0131H PUBLIC ?C?LSTXDATA
+ ------- ENDMOD ?C?LSTXDATA
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?FRESH_DISPLAY?DISPLAY
+
+Program Size: data=9.0 xdata=139 code=1219
+LINK/LOCATE RUN COMPLETE. 1 WARNING(S), 0 ERROR(S)
diff --git a/MCU/MCU_5 _Wave_Generate/MCU_1.uvopt b/MCU/MCU_5 _Wave_Generate/MCU_1.uvopt
new file mode 100644
index 0000000..91c5a80
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/MCU_1.uvopt
@@ -0,0 +1,307 @@
+
+
+
+ 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
+ count,0x0A
+
+
+ 1
+ 1
+ ge
+
+
+ 2
+ 1
+ ui
+
+
+ 3
+ 1
+ bd
+
+
+ 4
+ 1
+ qm
+
+
+ 5
+ 1
+ wj
+
+
+ 6
+ 1
+ num
+
+
+ 7
+ 1
+ digital
+
+
+
+ 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
+ 1
+ 0
+ 0
+ .\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ INC
+ 1
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ .\delay.c
+ delay.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 5
+ 0
+ 0
+ 0
+ .\main.h
+ main.h
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ .\display.c
+ display.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 5
+ 0
+ 0
+ 0
+ .\display.h
+ display.h
+ 0
+ 0
+
+
+
+
diff --git a/MCU/MCU_5 _Wave_Generate/MCU_1.uvproj b/MCU/MCU_5 _Wave_Generate/MCU_1.uvproj
new file mode 100644
index 0000000..8119447
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/MCU_1.uvproj
@@ -0,0 +1,415 @@
+
+
+
+ 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
+
+
+
+
+ INC
+
+
+ delay.c
+ 1
+ .\delay.c
+
+
+ main.h
+ 5
+ .\main.h
+
+
+ display.c
+ 1
+ .\display.c
+
+
+ display.h
+ 5
+ .\display.h
+
+
+
+
+
+
+
+
diff --git a/MCU/MCU_5 _Wave_Generate/delay.c b/MCU/MCU_5 _Wave_Generate/delay.c
new file mode 100644
index 0000000..9681197
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/delay.c
@@ -0,0 +1,7 @@
+#include "delay.h"
+
+void delay(int i)
+
+{
+ for(i = 14; i > 0; i--);
+}
\ No newline at end of file
diff --git a/MCU/MCU_5 _Wave_Generate/delay.h b/MCU/MCU_5 _Wave_Generate/delay.h
new file mode 100644
index 0000000..ae46cf9
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/delay.h
@@ -0,0 +1,7 @@
+#ifndef _DELAY_H_
+#define _DELAY_H_
+
+
+void delay(int i);
+
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_5 _Wave_Generate/display.c b/MCU/MCU_5 _Wave_Generate/display.c
new file mode 100644
index 0000000..f716664
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/display.c
@@ -0,0 +1,50 @@
+#include
+#include "display.h"
+#include "delay.h"
+
+const unsigned char num_var[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
+static unsigned char ge, ui, bd, qm, wj, uw;
+
+void fresh_display()
+{
+ P0 = 0xfe;
+ P2 = num_var[ge];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xfd;
+ P2 = num_var[ui];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xfb;
+ P2 = num_var[bd];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xf7;
+ P2 = num_var[qm];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xef;
+ P2 = num_var[wj];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xdf;
+ P2 = num_var[uw];
+ delay(1);
+ P2 = 0XFF;
+}
+
+void set_display(unsigned char num)
+
+{
+ uw = (num % 1000000) / 100000;
+ wj = (num % 100000) / 10000;
+ qm = (num % 10000) / 1000;
+ bd = (num % 1000) / 100;
+ ui = (num % 100) / 10;
+ ge = num % 10;
+}
\ No newline at end of file
diff --git a/MCU/MCU_5 _Wave_Generate/display.h b/MCU/MCU_5 _Wave_Generate/display.h
new file mode 100644
index 0000000..0eeed90
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/display.h
@@ -0,0 +1,9 @@
+#ifndef _DISPLAY_H_
+#define _DISPLAY_H_
+
+
+void fresh_display();
+void set_display(unsigned char num);
+
+
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_5 _Wave_Generate/main.c b/MCU/MCU_5 _Wave_Generate/main.c
new file mode 100644
index 0000000..ae0f5a7
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/main.c
@@ -0,0 +1,73 @@
+#include
+#include
+#include "delay.h"
+#include "main.h"
+#include "display.h"
+
+
+void fresh_wave();
+
+unsigned char digital=0;
+unsigned char fresh_flag=0;
+
+#ifdef MODE_1
+void fresh_wave()
+{
+digital++;
+P1=digital;
+}
+#endif
+#ifdef MODE_2
+unsigned char add_flag=0;
+void fresh_wave()
+{
+ if(!add_flag)
+ digital++;
+ else
+ digital--;
+ if(digital==0&&add_flag)
+ add_flag=0;
+ else if(digital==255&&(!add_flag))
+ add_flag=1;
+ P1=digital;
+}
+#endif
+#ifdef MODE_3
+const unsigned char sine_var[]={128,136,143,151,159,167,174,182,189,196,202,209,215,220,226,231,235,239,243,246,249,251,253,254,255,255,255,254,253,251,249,246,243,239,235,231,226,220,215,209,202,196,189,182,174,167,159,151,143,136,128,119,112,104,96,88,81,73,66,59,53,46,40,35,29,24,20,16,12,9,6,4,2,1,0,0,0,1,2,4,6,9,12,16,20,24,29,35,40,46,53,59,66,73,81,88,96,104,112,119};
+void fresh_wave()
+{
+ digital=sine_var[count%100];
+ P1=digital;
+}
+#endif
+
+
+void time() interrupt 1
+{
+
+ TH0 = TH;
+ TL0 = TL+15;
+ fresh_flag=1;
+ #ifdef MODE_3
+ count++;
+ #endif
+}
+
+
+int main()
+{
+//P1 灯
+ setConfig();
+ while(1)
+ {
+ if(fresh_flag==1)
+ {
+ fresh_flag=0;
+ fresh_wave();
+ set_display(digital);
+ }
+#ifndef MODE_3
+ fresh_display();
+#endif
+ }
+}
diff --git a/MCU/MCU_5 _Wave_Generate/main.h b/MCU/MCU_5 _Wave_Generate/main.h
new file mode 100644
index 0000000..af79653
--- /dev/null
+++ b/MCU/MCU_5 _Wave_Generate/main.h
@@ -0,0 +1,38 @@
+#ifndef _MAIN_H_
+#define _MAIN_H_
+
+
+#define MODE_3
+
+//1三角2锯齿3正弦
+
+#ifdef MODE_3
+#define RELOAD (65535-217)
+//#define RELOAD (65535-217)
+#else
+#define RELOAD (5000)
+#endif
+
+
+unsigned int TH, TL;
+
+
+unsigned long int count = 0;
+unsigned int ge,ui,bd,qm,wj,num;
+void setConfig()
+{
+ TH = RELOAD / 256;
+ TL = RELOAD - (RELOAD / 256) * 256;
+
+
+ TMOD = 0x01; //T0 16位定时 T1 16位计数
+ TH0 = TH;
+ TL0 = TL;
+ EA = 1; //打开中断总开关
+ ET0 = 1; //打开定时器0中断开关
+ TR0 = 1; //启动定时器0
+
+ P1 = 0X00;
+}
+
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_6 _UART/Listings/MCU_1.m51 b/MCU/MCU_6 _UART/Listings/MCU_1.m51
new file mode 100644
index 0000000..5d83a52
--- /dev/null
+++ b/MCU/MCU_6 _UART/Listings/MCU_1.m51
@@ -0,0 +1,388 @@
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45: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)
+
+
+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?CLDPTR)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?UIDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?SLDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (PRINTF)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CLDOPTR)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CSTPTR)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?ULDIV)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PLDIXDATA)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?PSTXDATA)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (?C?CCASE)
+ C:\KEIL_V5\C51\LIB\C51L.LIB (PUTCHAR)
+
+
+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"
+ DATA 0008H 0005H UNIT _DATA_GROUP_
+ 000DH 0013H *** GAP ***
+ BIT 0020H.0 0001H.1 UNIT _BIT_GROUP_
+ 0021H.1 0000H.7 *** GAP ***
+ IDATA 0022H 0001H UNIT ?STACK
+
+ * * * * * * * X D A T A M E M O R Y * * * * * * *
+ XDATA 0000H 0029H UNIT _XDATA_GROUP_
+ XDATA 0029H 0020H UNIT ?XD?MAIN
+ XDATA 0049H 0010H UNIT ?XD?DISPLAY
+
+ * * * * * * * C O D E M E M O R Y * * * * * * *
+ CODE 0000H 0003H ABSOLUTE
+ CODE 0003H 0365H UNIT ?PR?PRINTF?PRINTF
+ CODE 0368H 01C1H UNIT ?C?LIB_CODE
+ CODE 0529H 00C3H UNIT ?PR?MAIN?MAIN
+ CODE 05ECH 00B2H UNIT ?PR?_SET_DISPLAY?DISPLAY
+ CODE 069EH 00AFH UNIT ?PR?FRESH_DISPLAY?DISPLAY
+ CODE 074DH 008CH UNIT ?C_C51STARTUP
+ CODE 07D9H 0044H UNIT ?C?LDIV
+ CODE 081DH 0027H UNIT ?PR?PUTCHAR?PUTCHAR
+ CODE 0844H 001CH UNIT ?CO?MAIN
+ CODE 0860H 001AH UNIT ?PR?SETCONFIG?MAIN
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 2
+
+
+ CODE 087AH 001AH UNIT ?PR?_DELAY?DELAY
+ CODE 0894H 0016H UNIT ?PR?_SENDSTRING?MAIN
+ CODE 08AAH 0015H UNIT ?C_INITSEG
+ CODE 08BFH 0011H UNIT ?PR?ADC_READ?MAIN
+ CODE 08D0H 000BH UNIT ?PR?DELAY100US?DELAY
+ CODE 08DBH 0008H UNIT ?PR?_SENDBYTE?MAIN
+
+
+
+OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN)
+
+
+SEGMENT BIT_GROUP DATA_GROUP XDATA_GROUP
+ +--> CALLED SEGMENT START LENGTH START LENGTH START LENGTH
+-----------------------------------------------------------------------------------------
+?C_C51STARTUP ----- ----- ----- ----- ----- -----
+ +--> ?PR?MAIN?MAIN
+ +--> ?C_INITSEG
+
+?PR?MAIN?MAIN ----- ----- ----- ----- 0000H 0001H
+ +--> ?PR?_SET_DISPLAY?DISPLAY
+ +--> ?PR?SETCONFIG?MAIN
+ +--> ?CO?MAIN
+ +--> ?PR?_SENDSTRING?MAIN
+ +--> ?PR?ADC_READ?MAIN
+ +--> ?PR?PRINTF?PRINTF
+ +--> ?PR?FRESH_DISPLAY?DISPLAY
+
+?PR?_SET_DISPLAY?DISPLAY ----- ----- ----- ----- 0001H 0001H
+
+?PR?ADC_READ?MAIN ----- ----- ----- ----- ----- -----
+ +--> ?PR?_DELAY?DELAY
+
+?PR?_DELAY?DELAY ----- ----- ----- ----- ----- -----
+ +--> ?PR?DELAY100US?DELAY
+
+?PR?PRINTF?PRINTF 0020H.0 0001H.1 0008H 0005H 0001H 0028H
+ +--> ?PR?PUTCHAR?PUTCHAR
+
+?PR?FRESH_DISPLAY?DISPLAY ----- ----- ----- ----- ----- -----
+ +--> ?PR?_DELAY?DELAY
+
+
+
+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
+ X:0029H PUBLIC digital_old
+ D:00A8H PUBLIC IE
+ D:00B8H PUBLIC IP
+ B:0098H.0 PUBLIC RI
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 3
+
+
+ X:002BH PUBLIC TH
+ B:0098H.1 PUBLIC TI
+ X:002DH PUBLIC TL
+ C:0529H PUBLIC main
+ C:0894H PUBLIC _sendString
+ C:0860H PUBLIC setConfig
+ X:002FH PUBLIC count
+ D:0099H PUBLIC SBUF
+ D:0087H PUBLIC PCON
+ D:0098H PUBLIC SCON
+ D:0089H PUBLIC TMOD
+ D:0088H PUBLIC TCON
+ C:08DBH PUBLIC _sendByte
+ C:08BFH PUBLIC ADC_read
+ X:0033H PUBLIC text
+ D:008DH PUBLIC TH1
+ D:008BH PUBLIC TL1
+ B:0088H.6 PUBLIC TR1
+ X:0047H PUBLIC digital
+ D:00C8H PUBLIC T2CON
+ D:00D0H PUBLIC PSW
+ ------- PROC SETCONFIG
+ C:0860H LINE# 16
+ C:0860H LINE# 17
+ C:0860H LINE# 19
+ C:0863H LINE# 20
+ C:0866H LINE# 21
+ C:0869H LINE# 22
+ C:086CH LINE# 23
+ C:086FH LINE# 24
+ C:0871H LINE# 25
+ C:0874H LINE# 27
+ C:0879H LINE# 29
+ ------- ENDPROC SETCONFIG
+ ------- PROC _SENDBYTE
+ D:0007H SYMBOL byte
+ C:08DBH LINE# 12
+ C:08DBH LINE# 13
+ C:08DBH LINE# 14
+ C:08DDH LINE# 15
+ C:08E0H LINE# 16
+ C:08E2H LINE# 17
+ ------- ENDPROC _SENDBYTE
+ ------- PROC _SENDSTRING
+ D:0001H SYMBOL s
+ C:0894H LINE# 19
+ C:0894H LINE# 20
+ C:0894H LINE# 21
+ C:0899H LINE# 22
+ C:0899H LINE# 23
+ C:089BH LINE# 24
+ C:08A2H LINE# 25
+ C:08A5H LINE# 26
+ C:08A7H LINE# 27
+ C:08A9H LINE# 28
+ ------- ENDPROC _SENDSTRING
+ ------- PROC ADC_READ
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 4
+
+
+ C:08BFH LINE# 30
+ C:08BFH LINE# 31
+ C:08BFH LINE# 32
+ C:08C4H LINE# 33
+ C:08CAH LINE# 34
+ C:08CFH LINE# 35
+ ------- ENDPROC ADC_READ
+ ------- PROC MAIN
+ ------- DO
+ X:0000H SYMBOL temp
+ ------- ENDDO
+ C:0529H LINE# 37
+ C:0529H LINE# 38
+ C:0529H LINE# 41
+ C:052EH LINE# 42
+ C:0531H LINE# 43
+ C:053AH LINE# 44
+ C:053AH LINE# 45
+ C:053AH LINE# 46
+ C:0542H LINE# 47
+ C:054FH LINE# 48
+ C:055AH LINE# 49
+ C:055AH LINE# 50
+ C:056AH LINE# 51
+ C:056DH LINE# 52
+ C:0593H LINE# 53
+ C:059CH LINE# 54
+ C:059CH LINE# 55
+ C:059FH LINE# 56
+ C:059FH LINE# 57
+ C:05A1H LINE# 58
+ C:05A7H LINE# 59
+ C:05BFH LINE# 60
+ C:05C6H LINE# 61
+ C:05E1H LINE# 62
+ C:05E6H LINE# 63
+ C:05E6H LINE# 65
+ C:05E9H LINE# 66
+ ------- ENDPROC MAIN
+ ------- ENDMOD MAIN
+
+ ------- MODULE DELAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ C:08D0H PUBLIC delay100us
+ C:087AH PUBLIC _delay
+ ------- PROC DELAY100US
+ ------- DO
+ D:0007H SYMBOL i
+ D:0006H SYMBOL j
+ ------- ENDDO
+ C:08D0H LINE# 3
+ C:08D0H LINE# 4
+ C:08D0H LINE# 7
+ C:08D1H LINE# 8
+ C:08D2H LINE# 9
+ C:08D4H LINE# 10
+ C:08D6H LINE# 12
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 5
+
+
+ C:08D6H LINE# 13
+ C:08D8H LINE# 14
+ C:08DAH LINE# 15
+ ------- ENDPROC DELAY100US
+ ------- PROC _DELAY
+ D:0006H SYMBOL i
+ ------- DO
+ D:0004H SYMBOL j
+ ------- ENDDO
+ C:087AH LINE# 17
+ C:087AH LINE# 18
+ C:087AH LINE# 19
+ C:087EH LINE# 20
+ C:0889H LINE# 21
+ C:0893H LINE# 22
+ ------- ENDPROC _DELAY
+ ------- ENDMOD DELAY
+
+ ------- MODULE DISPLAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ D:0080H PUBLIC P0
+ D:0090H PUBLIC P1
+ D:00A0H PUBLIC P2
+ D:00B0H PUBLIC P3
+ D:00A8H PUBLIC IE
+ D:00B8H PUBLIC IP
+ C:05ECH PUBLIC _set_display
+ D:0098H PUBLIC SCON
+ D:0088H PUBLIC TCON
+ X:0049H SYMBOL bd
+ X:004AH SYMBOL ge
+ X:004BH SYMBOL qm
+ X:004CH SYMBOL ui
+ X:004DH SYMBOL wj
+ D:00C8H PUBLIC T2CON
+ X:004EH SYMBOL uw
+ C:069EH PUBLIC fresh_display
+ D:00D0H PUBLIC PSW
+ X:004FH PUBLIC num_var
+ ------- PROC FRESH_DISPLAY
+ C:069EH LINE# 8
+ C:069EH LINE# 9
+ C:069EH LINE# 10
+ C:06A1H LINE# 11
+ C:06B1H LINE# 12
+ C:06B8H LINE# 13
+ C:06BBH LINE# 15
+ C:06BEH LINE# 16
+ C:06CEH LINE# 17
+ C:06D5H LINE# 18
+ C:06D8H LINE# 20
+ C:06DBH LINE# 21
+ C:06EBH LINE# 22
+ C:06F2H LINE# 23
+ C:06F5H LINE# 25
+ C:06F8H LINE# 26
+ C:0708H LINE# 27
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 6
+
+
+ C:070FH LINE# 28
+ C:0712H LINE# 30
+ C:0715H LINE# 31
+ C:0725H LINE# 32
+ C:072CH LINE# 33
+ C:072FH LINE# 35
+ C:0732H LINE# 36
+ C:0742H LINE# 37
+ C:0749H LINE# 38
+ C:074CH LINE# 39
+ ------- ENDPROC FRESH_DISPLAY
+ ------- PROC _SET_DISPLAY
+ X:0001H SYMBOL num
+ C:05ECH LINE# 41
+ C:05F1H LINE# 43
+ C:05F1H LINE# 44
+ C:0617H LINE# 45
+ C:0641H LINE# 46
+ C:0662H LINE# 47
+ C:067FH LINE# 48
+ C:0692H LINE# 49
+ C:069DH LINE# 50
+ ------- ENDPROC _SET_DISPLAY
+ ------- ENDMOD DISPLAY
+
+ ------- MODULE ?C?CLDPTR
+ C:0368H PUBLIC ?C?CLDPTR
+ ------- ENDMOD ?C?CLDPTR
+
+ ------- MODULE ?C?UIDIV
+ C:0381H PUBLIC ?C?UIDIV
+ ------- ENDMOD ?C?UIDIV
+
+ ------- MODULE ?C?SLDIV
+ C:07D9H PUBLIC ?C?SLDIV
+ ------- ENDMOD ?C?SLDIV
+
+ ------- MODULE PRINTF
+ X:0001H PUBLIC ?_PRINTF517?BYTE
+ X:0001H PUBLIC ?_PRINTF?BYTE
+ X:0001H PUBLIC ?_SPRINTF517?BYTE
+ X:0001H PUBLIC ?_SPRINTF?BYTE
+ C:006EH PUBLIC _PRINTF
+ C:006EH PUBLIC _PRINTF517
+ C:0068H PUBLIC _SPRINTF
+ C:0068H PUBLIC _SPRINTF517
+ ------- ENDMOD PRINTF
+
+ ------- MODULE ?C?CLDOPTR
+ C:03D6H PUBLIC ?C?CLDOPTR
+ ------- ENDMOD ?C?CLDOPTR
+
+ ------- MODULE ?C?CSTPTR
+ C:0403H PUBLIC ?C?CSTPTR
+ ------- ENDMOD ?C?CSTPTR
+
+ ------- MODULE ?C?ULDIV
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/21/2022 21:45:26 PAGE 7
+
+
+ C:0451H PUBLIC ?C?ULDIV
+ ------- ENDMOD ?C?ULDIV
+
+ ------- MODULE ?C?PLDIXDATA
+ C:04E3H PUBLIC ?C?PLDIXDATA
+ ------- ENDMOD ?C?PLDIXDATA
+
+ ------- MODULE ?C?PSTXDATA
+ C:04FAH PUBLIC ?C?PSTXDATA
+ ------- ENDMOD ?C?PSTXDATA
+
+ ------- MODULE ?C?CCASE
+ C:0503H PUBLIC ?C?CCASE
+ ------- ENDMOD ?C?CCASE
+
+ ------- MODULE PUTCHAR
+ C:081DH PUBLIC _PUTCHAR
+ ------- ENDMOD PUTCHAR
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?_SENDBYTE?MAIN
+
+Program Size: data=15.1 xdata=89 code=2275
+LINK/LOCATE RUN COMPLETE. 1 WARNING(S), 0 ERROR(S)
diff --git a/MCU/MCU_6 _UART/MCU_1.uvopt b/MCU/MCU_6 _UART/MCU_1.uvopt
new file mode 100644
index 0000000..75cfd9c
--- /dev/null
+++ b/MCU/MCU_6 _UART/MCU_1.uvopt
@@ -0,0 +1,282 @@
+
+
+
+ 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
+ temp
+
+
+ 1
+ 1
+ digital
+
+
+ 2
+ 1
+ text
+
+
+
+ 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
+ 1
+ 0
+ 0
+ .\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ INC
+ 1
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ .\delay.c
+ delay.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 5
+ 0
+ 0
+ 0
+ .\main.h
+ main.h
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ .\display.c
+ display.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 5
+ 0
+ 0
+ 0
+ .\display.h
+ display.h
+ 0
+ 0
+
+
+
+
diff --git a/MCU/MCU_6 _UART/MCU_1.uvproj b/MCU/MCU_6 _UART/MCU_1.uvproj
new file mode 100644
index 0000000..8119447
--- /dev/null
+++ b/MCU/MCU_6 _UART/MCU_1.uvproj
@@ -0,0 +1,415 @@
+
+
+
+ 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
+
+
+
+
+ INC
+
+
+ delay.c
+ 1
+ .\delay.c
+
+
+ main.h
+ 5
+ .\main.h
+
+
+ display.c
+ 1
+ .\display.c
+
+
+ display.h
+ 5
+ .\display.h
+
+
+
+
+
+
+
+
diff --git a/MCU/MCU_6 _UART/delay.c b/MCU/MCU_6 _UART/delay.c
new file mode 100644
index 0000000..631a653
--- /dev/null
+++ b/MCU/MCU_6 _UART/delay.c
@@ -0,0 +1,22 @@
+#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();
+}
\ No newline at end of file
diff --git a/MCU/MCU_6 _UART/delay.h b/MCU/MCU_6 _UART/delay.h
new file mode 100644
index 0000000..da40b5c
--- /dev/null
+++ b/MCU/MCU_6 _UART/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_6 _UART/display.c b/MCU/MCU_6 _UART/display.c
new file mode 100644
index 0000000..f716664
--- /dev/null
+++ b/MCU/MCU_6 _UART/display.c
@@ -0,0 +1,50 @@
+#include
+#include "display.h"
+#include "delay.h"
+
+const unsigned char num_var[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
+static unsigned char ge, ui, bd, qm, wj, uw;
+
+void fresh_display()
+{
+ P0 = 0xfe;
+ P2 = num_var[ge];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xfd;
+ P2 = num_var[ui];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xfb;
+ P2 = num_var[bd];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xf7;
+ P2 = num_var[qm];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xef;
+ P2 = num_var[wj];
+ delay(1);
+ P2 = 0XFF;
+
+ P0 = 0xdf;
+ P2 = num_var[uw];
+ delay(1);
+ P2 = 0XFF;
+}
+
+void set_display(unsigned char num)
+
+{
+ uw = (num % 1000000) / 100000;
+ wj = (num % 100000) / 10000;
+ qm = (num % 10000) / 1000;
+ bd = (num % 1000) / 100;
+ ui = (num % 100) / 10;
+ ge = num % 10;
+}
\ No newline at end of file
diff --git a/MCU/MCU_6 _UART/display.h b/MCU/MCU_6 _UART/display.h
new file mode 100644
index 0000000..0eeed90
--- /dev/null
+++ b/MCU/MCU_6 _UART/display.h
@@ -0,0 +1,9 @@
+#ifndef _DISPLAY_H_
+#define _DISPLAY_H_
+
+
+void fresh_display();
+void set_display(unsigned char num);
+
+
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_6 _UART/main.c b/MCU/MCU_6 _UART/main.c
new file mode 100644
index 0000000..aaffe16
--- /dev/null
+++ b/MCU/MCU_6 _UART/main.c
@@ -0,0 +1,67 @@
+#include "delay.h"
+#include "main.h"
+#include "display.h"
+#include
+
+
+
+unsigned char text[20];
+
+unsigned int digital;
+unsigned int digital_old;
+void sendByte(unsigned char byte)
+{
+ SBUF=byte;
+ while(!TI);
+ TI=0;
+}
+
+void sendString(unsigned char *s)
+{
+ while(*s!='\0')
+ {
+ SBUF=*s;
+ s++;
+ while(!TI);
+ TI=0;
+ }
+}
+
+unsigned char ADC_read()
+{
+ XBYTE[0X8000]=0X00;
+ delay(2);
+ return XBYTE[0X8000];
+}
+
+int main()
+{
+//P1 AD
+ unsigned char temp;
+ set_display(0);
+ setConfig();
+ sendString("Hello\n");
+ while(1)
+ {
+ temp=ADC_read();
+ digital=ADC_read();
+ if(digital!=digital_old)
+ {
+ digital_old=digital;
+ set_display(digital);
+ sprintf(text,"Digital Voltage %u \n",digital);
+ sendString(text);
+ }
+ if(RI)
+ {
+ RI = 0;
+ temp = SBUF;
+ if(0x40
+#include
+#include
+#include "display.h"
+
+#define RELOAD (5000)
+
+unsigned int TH, TL;
+
+
+unsigned long int count = 0;
+
+void setConfig()
+{
+
+ SCON=0X50;
+ TMOD=0X20;
+ PCON=0X80;
+ TH1 = 0XFA;
+ TL1 = 0XFA;
+ TR1=1;
+ SCON=0X50;
+
+ XBYTE[0x8000]=0x00;
+
+}
+
+
+
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_7 _LCD12864/Listings/MCU_1.m51 b/MCU/MCU_7 _LCD12864/Listings/MCU_1.m51
new file mode 100644
index 0000000..5f08898
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/Listings/MCU_1.m51
@@ -0,0 +1,448 @@
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 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?ILDIX)
+ 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 0060H UNIT ?XD?DISPLAY
+ XDATA 0060H 000CH UNIT ?XD?MAIN
+ XDATA 006CH 0008H UNIT _XDATA_GROUP_
+ XDATA 0074H 0004H UNIT ?XD?_NAME?DISPLAY
+
+ * * * * * * * C O D E M E M O R Y * * * * * * *
+ CODE 0000H 0003H ABSOLUTE
+ CODE 0003H 00DFH UNIT ?PR?MAIN?MAIN
+ CODE 00E2H 00C5H UNIT ?PR?CLEAR?DISPLAY
+ CODE 01A7H 008CH UNIT ?C_C51STARTUP
+ CODE 0233H 0070H UNIT ?C_INITSEG
+ CODE 02A3H 005FH UNIT ?PR?_NAME?DISPLAY
+ CODE 0302H 0020H UNIT ?PR?_DELAY?DELAY
+ CODE 0322H 001CH UNIT ?PR?INIT?DISPLAY
+ CODE 033EH 001AH UNIT ?PR?SETCONFIG?MAIN
+ CODE 0358H 0019H UNIT ?PR?WRITE?DISPLAY
+ CODE 0371H 0016H UNIT ?C?LIB_CODE
+ CODE 0387H 0014H UNIT ?PR?_WRITEDATA?DISPLAY
+ CODE 039BH 0014H UNIT ?PR?_WRITECOMMAND?DISPLAY
+ CODE 03AFH 0013H UNIT ?PR?LCDINIT?DISPLAY
+ CODE 03C2H 000DH UNIT ?PR?_SETY?DISPLAY
+ CODE 03CFH 000BH UNIT ?PR?DELAY100US?DELAY
+ CODE 03DAH 0007H UNIT ?PR?_SETPAGE?DISPLAY
+ CODE 03E1H 0007H UNIT ?PR?_SETLINE?DISPLAY
+ CODE 03E8H 0005H UNIT ?PR?SELA?DISPLAY
+ CODE 03EDH 0005H UNIT ?PR?SELB?DISPLAY
+
+
+
+OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN)
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 2
+
+
+
+
+SEGMENT XDATA_GROUP
+ +--> CALLED SEGMENT START LENGTH
+-------------------------------------------------
+?C_C51STARTUP ----- -----
+ +--> ?PR?MAIN?MAIN
+ +--> ?C_INITSEG
+
+?PR?MAIN?MAIN 006CH 0004H
+ +--> ?PR?INIT?DISPLAY
+ +--> ?PR?CLEAR?DISPLAY
+ +--> ?PR?WRITE?DISPLAY
+
+?PR?INIT?DISPLAY ----- -----
+ +--> ?PR?WRITE?DISPLAY
+
+?PR?WRITE?DISPLAY ----- -----
+ +--> ?PR?_DELAY?DELAY
+
+?PR?CLEAR?DISPLAY 0070H 0004H
+ +--> ?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
+ X:0060H PUBLIC TH
+ X:0062H PUBLIC TL
+ B:00B0H.0 PUBLIC RS
+ C:0003H PUBLIC main
+ C:033EH PUBLIC setConfig
+ B:00B0H.1 PUBLIC RW
+ X:0064H PUBLIC count
+ D:0087H PUBLIC PCON
+ D:0098H PUBLIC SCON
+ D:0089H PUBLIC TMOD
+ D:0088H PUBLIC TCON
+ D:008DH PUBLIC TH1
+ D:008BH PUBLIC TL1
+ B:00B0H.4 PUBLIC CSA
+ B:0088H.6 PUBLIC TR1
+ B:00B0H.5 PUBLIC CSB
+ D:00C8H PUBLIC T2CON
+ X:0068H PUBLIC i
+ X:006AH PUBLIC j
+ D:00D0H PUBLIC PSW
+ ------- PROC SETCONFIG
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 3
+
+
+ C:033EH LINE# 16
+ C:033EH LINE# 17
+ C:033EH LINE# 19
+ C:0341H LINE# 20
+ C:0344H LINE# 21
+ C:0347H LINE# 22
+ C:034AH LINE# 23
+ C:034DH LINE# 24
+ C:034FH LINE# 25
+ C:0352H LINE# 27
+ C:0357H LINE# 29
+ ------- ENDPROC SETCONFIG
+ ------- PROC MAIN
+ ------- DO
+ X:006CH SYMBOL i
+ X:006EH SYMBOL j
+ ------- ENDDO
+ C:0003H LINE# 15
+ C:0003H LINE# 16
+ C:0003H LINE# 17
+ C:0006H LINE# 18
+ C:0009H LINE# 20
+ C:0009H LINE# 21
+ C:0009H LINE# 23
+ C:000BH LINE# 24
+ C:000DH LINE# 25
+ C:0024H LINE# 26
+ C:0024H LINE# 27
+ C:0026H LINE# 28
+ C:0028H LINE# 29
+ C:002DH LINE# 30
+ C:0030H LINE# 31
+ C:0033H LINE# 32
+ C:0036H LINE# 34
+ C:003DH LINE# 35
+ C:003DH LINE# 36
+ C:003FH LINE# 37
+ C:0041H LINE# 38
+ C:0044H LINE# 39
+ C:0047H LINE# 40
+ C:0064H LINE# 41
+ C:0074H LINE# 42
+ C:0076H LINE# 43
+ C:0078H LINE# 44
+ C:0092H LINE# 45
+ C:0092H LINE# 46
+ C:0094H LINE# 47
+ C:0096H LINE# 48
+ C:009BH LINE# 49
+ C:009EH LINE# 50
+ C:00A1H LINE# 51
+ C:00A4H LINE# 53
+ C:00ABH LINE# 54
+ C:00ABH LINE# 55
+ C:00ADH LINE# 56
+ C:00AFH LINE# 57
+ C:00B2H LINE# 58
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 4
+
+
+ C:00B5H LINE# 59
+ C:00D2H LINE# 60
+ ------- ENDPROC MAIN
+ ------- ENDMOD MAIN
+
+ ------- MODULE DELAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ C:03CFH PUBLIC delay100us
+ C:0302H PUBLIC _delay
+ ------- PROC DELAY100US
+ ------- DO
+ D:0007H SYMBOL i
+ D:0006H SYMBOL j
+ ------- ENDDO
+ C:03CFH LINE# 3
+ C:03CFH LINE# 4
+ C:03CFH LINE# 7
+ C:03D0H LINE# 8
+ C:03D1H LINE# 9
+ C:03D3H LINE# 10
+ C:03D5H LINE# 12
+ C:03D5H LINE# 13
+ C:03D7H LINE# 14
+ C:03D9H LINE# 15
+ ------- ENDPROC DELAY100US
+ ------- PROC _DELAY
+ D:0006H SYMBOL n
+ ------- DO
+ D:0006H SYMBOL i
+ D:0004H SYMBOL j
+ ------- ENDDO
+ C:0302H LINE# 24
+ C:0302H LINE# 26
+ C:0302H LINE# 27
+ C:030DH LINE# 28
+ C:0321H LINE# 29
+ ------- ENDPROC _DELAY
+ ------- ENDMOD DELAY
+
+ ------- MODULE DISPLAY
+ C:0000H SYMBOL _ICE_DUMMY_
+ D:0090H PUBLIC P1
+ D:00B0H PUBLIC P3
+ C:03E8H PUBLIC selA
+ C:03EDH PUBLIC selB
+ C:00E2H PUBLIC clear
+ X:0000H PUBLIC Z2
+ D:00A8H PUBLIC IE
+ D:00B8H PUBLIC IP
+ C:02A3H PUBLIC _name
+ B:00B0H.0 PUBLIC RS
+ C:03C8H PUBLIC _setY
+ B:00B0H.1 PUBLIC RW
+ C:0387H PUBLIC _writeData
+ C:0361H PUBLIC write
+ D:0098H PUBLIC SCON
+ D:0088H PUBLIC TCON
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 5
+
+
+ C:0322H PUBLIC init
+ B:00B0H.2 PUBLIC E
+ C:03AFH PUBLIC lcdInit
+ C:03DAH PUBLIC _setPage
+ B:00B0H.4 PUBLIC CSA
+ B:00B0H.5 PUBLIC CSB
+ C:03E1H PUBLIC _setLine
+ X:0030H PUBLIC Z
+ D:00C8H PUBLIC T2CON
+ C:039BH PUBLIC _writeCommand
+ D:00D0H PUBLIC PSW
+ ------- PROC SELA
+ C:03E8H LINE# 38
+ C:03E8H LINE# 39
+ C:03E8H LINE# 40
+ C:03EAH LINE# 41
+ C:03ECH LINE# 42
+ ------- ENDPROC SELA
+ ------- PROC SELB
+ C:03EDH LINE# 43
+ C:03EDH LINE# 44
+ C:03EDH LINE# 45
+ C:03EFH LINE# 46
+ C:03F1H LINE# 47
+ ------- ENDPROC SELB
+ ------- PROC _WRITEDATA
+ D:0007H SYMBOL d
+ C:0387H LINE# 48
+ C:0387H LINE# 49
+ C:0387H LINE# 50
+ C:0389H LINE# 51
+ C:038BH LINE# 52
+ C:038DH LINE# 53
+ C:038FH LINE# 54
+ C:0391H LINE# 55
+ C:0398H LINE# 56
+ C:039AH LINE# 57
+ ------- ENDPROC _WRITEDATA
+ ------- PROC _WRITECOMMAND
+ D:0007H SYMBOL d
+ C:039BH LINE# 59
+ C:039BH LINE# 60
+ C:039BH LINE# 61
+ C:039DH LINE# 62
+ C:039FH LINE# 63
+ C:03A1H LINE# 64
+ C:03A3H LINE# 65
+ C:03A5H LINE# 66
+ C:03ACH LINE# 67
+ C:03AEH LINE# 68
+ ------- ENDPROC _WRITECOMMAND
+ ------- PROC LCDINIT
+ C:03AFH LINE# 70
+ C:03AFH LINE# 71
+ C:03AFH LINE# 72
+ C:03B2H LINE# 73
+ C:03B7H LINE# 74
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 6
+
+
+ C:03BAH LINE# 75
+ C:03BFH LINE# 76
+ ------- ENDPROC LCDINIT
+ ------- PROC _SETPAGE
+ D:0007H SYMBOL p
+ C:03DAH LINE# 79
+ C:03DAH LINE# 80
+ C:03DAH LINE# 81
+ ------- ENDPROC _SETPAGE
+ ------- PROC _SETLINE
+ D:0007H SYMBOL p
+ C:03E1H LINE# 84
+ C:03E1H LINE# 85
+ C:03E1H LINE# 86
+ ------- ENDPROC _SETLINE
+ ------- PROC L?0032
+ ------- ENDPROC L?0032
+ ------- PROC _SETY
+ D:0007H SYMBOL p
+ C:03C8H LINE# 89
+ C:03C8H LINE# 90
+ C:03C8H LINE# 91
+ ------- ENDPROC _SETY
+ ------- PROC _NAME
+ X:0074H SYMBOL i
+ ------- DO
+ X:0076H SYMBOL line
+ ------- ENDDO
+ C:02A3H LINE# 94
+ C:02ABH LINE# 95
+ C:02ABH LINE# 96
+ C:02B0H LINE# 97
+ C:02BFH LINE# 98
+ C:02BFH LINE# 99
+ C:02C4H LINE# 100
+ C:02C7H LINE# 101
+ C:02DCH LINE# 102
+ C:02E1H LINE# 103
+ C:02E4H LINE# 104
+ C:02FFH LINE# 105
+ C:0301H LINE# 106
+ ------- ENDPROC _NAME
+ ------- PROC L?0031
+ ------- ENDPROC L?0031
+ ------- PROC WRITE
+ C:0361H LINE# 109
+ C:0361H LINE# 110
+ C:0361H LINE# 111
+ C:0363H LINE# 112
+ C:0365H LINE# 113
+ C:0367H LINE# 114
+ C:036EH LINE# 115
+ C:0370H LINE# 116
+ ------- ENDPROC WRITE
+ ------- PROC CLEAR
+ ------- DO
+ X:0070H SYMBOL i
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 7
+
+
+ X:0072H SYMBOL j
+ ------- ENDDO
+ C:00E2H LINE# 118
+ C:00E2H LINE# 119
+ C:00E2H LINE# 121
+ C:00E4H LINE# 122
+ C:00E6H LINE# 123
+ C:00FDH LINE# 124
+ C:00FDH LINE# 125
+ C:00FDH LINE# 126
+ C:00FDH LINE# 127
+ C:00FDH LINE# 128
+ C:0100H LINE# 129
+ C:0103H LINE# 130
+ C:0106H LINE# 132
+ C:010DH LINE# 133
+ C:010DH LINE# 134
+ C:010FH LINE# 135
+ C:0111H LINE# 136
+ C:0114H LINE# 137
+ C:0117H LINE# 138
+ C:0134H LINE# 139
+ C:0144H LINE# 140
+ C:0146H LINE# 141
+ C:0148H LINE# 142
+ C:015FH LINE# 143
+ C:015FH LINE# 144
+ C:015FH LINE# 145
+ C:015FH LINE# 146
+ C:015FH LINE# 147
+ C:0162H LINE# 148
+ C:0165H LINE# 149
+ C:0168H LINE# 151
+ C:016FH LINE# 152
+ C:016FH LINE# 153
+ C:0171H LINE# 154
+ C:0173H LINE# 155
+ C:0176H LINE# 156
+ C:0179H LINE# 157
+ C:0196H LINE# 158
+ C:01A6H LINE# 159
+ ------- ENDPROC CLEAR
+ ------- PROC INIT
+ C:0322H LINE# 160
+ C:0322H LINE# 161
+ C:0322H LINE# 162
+ C:0324H LINE# 163
+ C:0326H LINE# 164
+ C:0328H LINE# 165
+ C:032AH LINE# 166
+ C:032CH LINE# 167
+ C:032FH LINE# 168
+ C:0332H LINE# 170
+ C:0334H LINE# 171
+ C:0336H LINE# 172
+ C:0338H LINE# 173
+ C:033BH LINE# 174
+BL51 BANKED LINKER/LOCATER V6.22.2.0 04/27/2022 21:57:02 PAGE 8
+
+
+ ------- ENDPROC INIT
+ ------- ENDMOD DISPLAY
+
+ ------- MODULE ?C?ILDIX
+ C:0371H PUBLIC ?C?ILDIX
+ ------- ENDMOD ?C?ILDIX
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?SETCONFIG?MAIN
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?DELAY100US?DELAY
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?LCDINIT?DISPLAY
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?_SETLINE?DISPLAY
+
+*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
+ SEGMENT: ?PR?_NAME?DISPLAY
+
+Program Size: data=9.0 xdata=120 code=1010
+LINK/LOCATE RUN COMPLETE. 5 WARNING(S), 0 ERROR(S)
diff --git a/MCU/MCU_7 _LCD12864/MCU_1.uvopt b/MCU/MCU_7 _LCD12864/MCU_1.uvopt
new file mode 100644
index 0000000..9324ee6
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/MCU_1.uvopt
@@ -0,0 +1,265 @@
+
+
+
+ 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
+ 1
+ 0
+ 0
+ .\main.c
+ main.c
+ 0
+ 0
+
+
+
+
+ INC
+ 1
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ .\delay.c
+ delay.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 5
+ 0
+ 0
+ 0
+ .\main.h
+ main.h
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ .\display.c
+ display.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 5
+ 0
+ 0
+ 0
+ .\display.h
+ display.h
+ 0
+ 0
+
+
+
+
diff --git a/MCU/MCU_7 _LCD12864/MCU_1.uvproj b/MCU/MCU_7 _LCD12864/MCU_1.uvproj
new file mode 100644
index 0000000..8119447
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/MCU_1.uvproj
@@ -0,0 +1,415 @@
+
+
+
+ 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
+
+
+
+
+ INC
+
+
+ delay.c
+ 1
+ .\delay.c
+
+
+ main.h
+ 5
+ .\main.h
+
+
+ display.c
+ 1
+ .\display.c
+
+
+ display.h
+ 5
+ .\display.h
+
+
+
+
+
+
+
+
diff --git a/MCU/MCU_7 _LCD12864/delay.c b/MCU/MCU_7 _LCD12864/delay.c
new file mode 100644
index 0000000..e0c3247
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/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_7 _LCD12864/delay.h b/MCU/MCU_7 _LCD12864/delay.h
new file mode 100644
index 0000000..da40b5c
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/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_7 _LCD12864/display.c b/MCU/MCU_7 _LCD12864/display.c
new file mode 100644
index 0000000..a624be1
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/display.c
@@ -0,0 +1,175 @@
+#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;
+
+
+const unsigned char Z[] =
+{
+ /*-- 文字: 江 --*/
+ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
+ 0x10, 0x60, 0x02, 0x0C, 0xC0, 0x04, 0x04, 0x04, 0x04, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00,
+
+ /*-- 文字: 一 --*/
+ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
+
+ /*-- 文字: 和 --*/
+ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
+ 0x20, 0x24, 0x24, 0xA4, 0xFE, 0x23, 0x22, 0x20, 0x00, 0xF8, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00,
+
+};
+const unsigned char Z2[] =
+{
+ 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
+};
+
+void selA()
+{
+ CSA = 1;
+ CSB = 0;
+}
+void selB()
+{
+ CSA = 0;
+ CSB = 1;
+}
+void writeData(unsigned char d)
+{
+ RS = 1;
+ RW = 0;
+ P1 = d;
+ E = 0;
+ E = 1;
+ delay(3);
+ E = 0;
+}
+
+void writeCommand(unsigned char d)
+{
+ RS = 0;
+ RW = 0;
+ P1 = d;
+ E = 0;
+ E = 1;
+ delay(3);
+ E = 0;
+}
+
+void lcdInit()
+{
+ selA();
+ writeCommand(0x3f);
+ selB();
+ writeCommand(0x3f);
+ selA();
+}
+
+void setPage(unsigned char p)
+{
+ writeCommand(0xb8 + p);
+}
+
+void setLine(unsigned char p)
+{
+ writeCommand(0xc0 + p);
+}
+
+void setY(unsigned char p)
+{
+ writeCommand(0x40 + p);
+}
+
+void name(unsigned int i)
+{
+ unsigned int line = 0;
+ while(line < 48)
+ {
+ setPage(0);
+ setY(i);
+ writeData(Z[line]);
+ setPage(1);
+ setY(i);
+ writeData(Z2[line++]);
+ }
+}
+
+
+void write()
+{
+ RW = 0;
+ E = 0;
+ E = 1;
+ delay(2);
+ E = 0;
+}
+
+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 = 0XFF;
+ write();
+}
\ No newline at end of file
diff --git a/MCU/MCU_7 _LCD12864/display.h b/MCU/MCU_7 _LCD12864/display.h
new file mode 100644
index 0000000..78dcd95
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/display.h
@@ -0,0 +1,16 @@
+#ifndef _DISPLAY_H_
+#define _DISPLAY_H_
+
+void writeData(unsigned char d);
+void writeCommand(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 selA();
+void selB();
+void init();
+void clear();
+void name(unsigned int i);
+#endif
\ No newline at end of file
diff --git a/MCU/MCU_7 _LCD12864/main.c b/MCU/MCU_7 _LCD12864/main.c
new file mode 100644
index 0000000..a2d40d0
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/main.c
@@ -0,0 +1,60 @@
+#include "delay.h"
+#include "main.h"
+#include "display.h"
+
+sbit RS = P3 ^ 0;
+sbit RW = P3 ^ 1;
+sbit E = P3 ^ 2;
+sbit CSA = P3 ^ 4;
+sbit CSB = P3 ^ 5;
+unsigned int i;
+unsigned int j;
+
+int main()
+{
+ init();
+ clear();
+
+ while(1)
+ {
+ 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_7 _LCD12864/main.h b/MCU/MCU_7 _LCD12864/main.h
new file mode 100644
index 0000000..f378913
--- /dev/null
+++ b/MCU/MCU_7 _LCD12864/main.h
@@ -0,0 +1,33 @@
+#ifndef _MAIN_H_
+#define _MAIN_H_
+
+#include
+#include
+#include
+#include "display.h"
+
+#define RELOAD (5000)
+
+unsigned int TH, TL;
+
+
+unsigned long int count = 0;
+
+void setConfig()
+{
+
+ SCON=0X50;
+ TMOD=0X20;
+ PCON=0X80;
+ TH1 = 0XFA;
+ TL1 = 0XFA;
+ TR1=1;
+ SCON=0X50;
+
+ XBYTE[0x8000]=0x00;
+
+}
+
+
+
+#endif
\ No newline at end of file