From f6fff9beef91714a1f45d7bb98bff5da65de8e69 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Thu, 28 Apr 2022 10:00:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8A=E6=88=90=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/MCU_4 _Wave/MCU_1.uvopt | 2 +- MCU/MCU_5 _Wave_Generate/Listings/MCU_1.m51 | 266 ++++++++++++ MCU/MCU_5 _Wave_Generate/MCU_1.uvopt | 307 ++++++++++++++ MCU/MCU_5 _Wave_Generate/MCU_1.uvproj | 415 ++++++++++++++++++ MCU/MCU_5 _Wave_Generate/delay.c | 7 + MCU/MCU_5 _Wave_Generate/delay.h | 7 + MCU/MCU_5 _Wave_Generate/display.c | 50 +++ MCU/MCU_5 _Wave_Generate/display.h | 9 + MCU/MCU_5 _Wave_Generate/main.c | 73 ++++ MCU/MCU_5 _Wave_Generate/main.h | 38 ++ MCU/MCU_6 _UART/Listings/MCU_1.m51 | 388 +++++++++++++++++ MCU/MCU_6 _UART/MCU_1.uvopt | 282 ++++++++++++ MCU/MCU_6 _UART/MCU_1.uvproj | 415 ++++++++++++++++++ MCU/MCU_6 _UART/delay.c | 22 + MCU/MCU_6 _UART/delay.h | 7 + MCU/MCU_6 _UART/display.c | 50 +++ MCU/MCU_6 _UART/display.h | 9 + MCU/MCU_6 _UART/main.c | 67 +++ MCU/MCU_6 _UART/main.h | 33 ++ MCU/MCU_7 _LCD12864/Listings/MCU_1.m51 | 448 ++++++++++++++++++++ MCU/MCU_7 _LCD12864/MCU_1.uvopt | 265 ++++++++++++ MCU/MCU_7 _LCD12864/MCU_1.uvproj | 415 ++++++++++++++++++ MCU/MCU_7 _LCD12864/delay.c | 29 ++ MCU/MCU_7 _LCD12864/delay.h | 7 + MCU/MCU_7 _LCD12864/display.c | 175 ++++++++ MCU/MCU_7 _LCD12864/display.h | 16 + MCU/MCU_7 _LCD12864/main.c | 60 +++ MCU/MCU_7 _LCD12864/main.h | 33 ++ 28 files changed, 3894 insertions(+), 1 deletion(-) create mode 100644 MCU/MCU_5 _Wave_Generate/Listings/MCU_1.m51 create mode 100644 MCU/MCU_5 _Wave_Generate/MCU_1.uvopt create mode 100644 MCU/MCU_5 _Wave_Generate/MCU_1.uvproj create mode 100644 MCU/MCU_5 _Wave_Generate/delay.c create mode 100644 MCU/MCU_5 _Wave_Generate/delay.h create mode 100644 MCU/MCU_5 _Wave_Generate/display.c create mode 100644 MCU/MCU_5 _Wave_Generate/display.h create mode 100644 MCU/MCU_5 _Wave_Generate/main.c create mode 100644 MCU/MCU_5 _Wave_Generate/main.h create mode 100644 MCU/MCU_6 _UART/Listings/MCU_1.m51 create mode 100644 MCU/MCU_6 _UART/MCU_1.uvopt create mode 100644 MCU/MCU_6 _UART/MCU_1.uvproj create mode 100644 MCU/MCU_6 _UART/delay.c create mode 100644 MCU/MCU_6 _UART/delay.h create mode 100644 MCU/MCU_6 _UART/display.c create mode 100644 MCU/MCU_6 _UART/display.h create mode 100644 MCU/MCU_6 _UART/main.c create mode 100644 MCU/MCU_6 _UART/main.h create mode 100644 MCU/MCU_7 _LCD12864/Listings/MCU_1.m51 create mode 100644 MCU/MCU_7 _LCD12864/MCU_1.uvopt create mode 100644 MCU/MCU_7 _LCD12864/MCU_1.uvproj create mode 100644 MCU/MCU_7 _LCD12864/delay.c create mode 100644 MCU/MCU_7 _LCD12864/delay.h create mode 100644 MCU/MCU_7 _LCD12864/display.c create mode 100644 MCU/MCU_7 _LCD12864/display.h create mode 100644 MCU/MCU_7 _LCD12864/main.c create mode 100644 MCU/MCU_7 _LCD12864/main.h 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