From 3d43fbb2701f02c805af232a691d5df8907fae36 Mon Sep 17 00:00:00 2001 From: iridiumR Date: Thu, 24 Mar 2022 22:35:27 +0800 Subject: [PATCH] =?UTF-8?q?MCU=20=E5=AD=98=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MCU/MCU_1/Listings/MCU_1.m51 | 211 +++++++++ MCU/MCU_1/MCU_1.uvopt | 229 ++++++++++ MCU/MCU_1/MCU_1.uvproj | 400 +++++++++++++++++ MCU/MCU_1/inc.c | 45 ++ MCU/MCU_1/inc.h | 5 + MCU/MCU_1/main.c | 39 ++ MCU/MCU_1_1/Listings/MCU_1.m51 | 218 ++++++++++ MCU/MCU_1_1/MCU_1.uvopt | 229 ++++++++++ MCU/MCU_1_1/MCU_1.uvproj | 400 +++++++++++++++++ MCU/MCU_1_1/inc.c | 47 ++ MCU/MCU_1_1/inc.h | 5 + MCU/MCU_1_1/main.c | 39 ++ .../Listings/MCU_1.m51 | 331 ++++++++++++++ MCU/MCU_2 _External_Interrupt/MCU_1.uvopt | 248 +++++++++++ MCU/MCU_2 _External_Interrupt/MCU_1.uvproj | 405 ++++++++++++++++++ MCU/MCU_2 _External_Interrupt/delay.c | 7 + MCU/MCU_2 _External_Interrupt/delay.h | 7 + MCU/MCU_2 _External_Interrupt/led_num.c | 144 +++++++ MCU/MCU_2 _External_Interrupt/led_num.h | 15 + MCU/MCU_2 _External_Interrupt/main.c | 55 +++ 20 files changed, 3079 insertions(+) create mode 100644 MCU/MCU_1/Listings/MCU_1.m51 create mode 100644 MCU/MCU_1/MCU_1.uvopt create mode 100644 MCU/MCU_1/MCU_1.uvproj create mode 100644 MCU/MCU_1/inc.c create mode 100644 MCU/MCU_1/inc.h create mode 100644 MCU/MCU_1/main.c create mode 100644 MCU/MCU_1_1/Listings/MCU_1.m51 create mode 100644 MCU/MCU_1_1/MCU_1.uvopt create mode 100644 MCU/MCU_1_1/MCU_1.uvproj create mode 100644 MCU/MCU_1_1/inc.c create mode 100644 MCU/MCU_1_1/inc.h create mode 100644 MCU/MCU_1_1/main.c create mode 100644 MCU/MCU_2 _External_Interrupt/Listings/MCU_1.m51 create mode 100644 MCU/MCU_2 _External_Interrupt/MCU_1.uvopt create mode 100644 MCU/MCU_2 _External_Interrupt/MCU_1.uvproj create mode 100644 MCU/MCU_2 _External_Interrupt/delay.c create mode 100644 MCU/MCU_2 _External_Interrupt/delay.h create mode 100644 MCU/MCU_2 _External_Interrupt/led_num.c create mode 100644 MCU/MCU_2 _External_Interrupt/led_num.h create mode 100644 MCU/MCU_2 _External_Interrupt/main.c diff --git a/MCU/MCU_1/Listings/MCU_1.m51 b/MCU/MCU_1/Listings/MCU_1.m51 new file mode 100644 index 0000000..a4179ba --- /dev/null +++ b/MCU/MCU_1/Listings/MCU_1.m51 @@ -0,0 +1,211 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:41:30 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\inc.obj TO .\Objects\MCU_1 PRINT (.\Listings\MCU_1.m51) + + +MEMORY MODEL: LARGE + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\inc.obj (INC) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + + TYPE BASE LENGTH RELOCATION SEGMENT NAME + ----------------------------------------------------- + + * * * * * * * D A T A M E M O R Y * * * * * * * + REG 0000H 0008H ABSOLUTE "REG BANK 0" + IDATA 0008H 0001H UNIT ?STACK + + * * * * * * * X D A T A M E M O R Y * * * * * * * + XDATA 0000H 0002H UNIT ?XD?INC + XDATA 0002H 0001H UNIT _XDATA_GROUP_ + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 008CH UNIT ?C_C51STARTUP + CODE 008FH 0028H UNIT ?PR?MAIN?MAIN + CODE 00B7H 0022H UNIT ?PR?_DELAY?INC + CODE 00D9H 001EH UNIT ?PR?HELLO?INC + CODE 00F7H 000EH UNIT ?PR?SHORTDELAY?MAIN + CODE 0105H 000EH UNIT ?PR?LONGDELAY?MAIN + CODE 0113H 000EH UNIT ?PR?SHORTDELAY?INC + CODE 0121H 000EH UNIT ?PR?LONGDELAY?INC + CODE 012FH 0007H UNIT ?PR?LEDFULL?INC + CODE 0136H 0006H UNIT ?C_INITSEG + + + +OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + +SEGMENT XDATA_GROUP + +--> CALLED SEGMENT START LENGTH +---------------------------------------------- +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN 0002H 0001H + +--> ?PR?_DELAY?INC + + + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:41:30 PAGE 2 + + +SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + 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:008FH PUBLIC main + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0105H SYMBOL longdelay + C:00F7H SYMBOL shortdelay + D:00C8H PUBLIC T2CON + D:00D0H PUBLIC PSW + ------- PROC SHORTDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:00F7H LINE# 5 + C:00F7H LINE# 7 + C:00F7H LINE# 9 + C:0104H LINE# 10 + ------- ENDPROC SHORTDELAY + ------- PROC LONGDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0105H LINE# 13 + C:0105H LINE# 15 + C:0105H LINE# 17 + C:0112H LINE# 18 + ------- ENDPROC LONGDELAY + ------- PROC MAIN + ------- DO + X:0002H SYMBOL var1 + ------- ENDDO + C:008FH LINE# 19 + C:008FH LINE# 20 + C:008FH LINE# 25 + C:0095H LINE# 26 + C:0095H LINE# 27 + C:0098H LINE# 28 + C:00AAH LINE# 29 + C:00ACH LINE# 31 + C:00AEH LINE# 34 + C:00B5H LINE# 37 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE INC + C:0000H SYMBOL _ICE_DUMMY_ + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:41:30 PAGE 3 + + + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + D:00A8H PUBLIC IE + C:00B7H PUBLIC _delay + C:00D9H SYMBOL hello + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + X:0000H PUBLIC hello_var + C:0121H SYMBOL longdelay + C:0113H SYMBOL shortdelay + D:00C8H PUBLIC T2CON + C:012FH PUBLIC ledfull + D:00D0H PUBLIC PSW + ------- PROC SHORTDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0113H LINE# 3 + C:0113H LINE# 5 + C:0113H LINE# 7 + C:0120H LINE# 8 + ------- ENDPROC SHORTDELAY + ------- PROC LONGDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0121H LINE# 11 + C:0121H LINE# 13 + C:0121H LINE# 15 + C:012EH LINE# 16 + ------- ENDPROC LONGDELAY + ------- PROC HELLO + ------- DO + D:0005H SYMBOL var2 + ------- ENDDO + C:00D9H LINE# 19 + C:00D9H LINE# 20 + C:00D9H LINE# 22 + C:00DBH LINE# 23 + C:00DDH LINE# 24 + C:00E3H LINE# 25 + C:00E6H LINE# 26 + C:00EAH LINE# 27 + C:00EDH LINE# 28 + C:00F1H LINE# 29 + C:00F4H LINE# 30 + ------- ENDPROC HELLO + ------- PROC _DELAY + D:0006H SYMBOL a + ------- DO + D:0005H SYMBOL i + ------- ENDDO + C:00B7H LINE# 33 + C:00B7H LINE# 34 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:41:30 PAGE 4 + + + C:00B7H LINE# 36 + C:00C2H LINE# 37 + C:00D8H LINE# 40 + ------- ENDPROC _DELAY + ------- PROC LEDFULL + C:012FH LINE# 41 + C:012FH LINE# 42 + C:012FH LINE# 43 + C:0132H LINE# 44 + C:0135H LINE# 45 + ------- ENDPROC LEDFULL + ------- ENDMOD INC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?SHORTDELAY?MAIN + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LONGDELAY?MAIN + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?HELLO?INC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LEDFULL?INC + +Program Size: data=9.0 xdata=3 code=316 +LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/MCU/MCU_1/MCU_1.uvopt b/MCU/MCU_1/MCU_1.uvopt new file mode 100644 index 0000000..3231031 --- /dev/null +++ b/MCU/MCU_1/MCU_1.uvopt @@ -0,0 +1,229 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + MCU_1 + 0x0 + MCS-51 + + 24000000 + + 1 + 1 + 1 + 0 + 0 + + + 0 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\ATMEL\AT89C51_DS.PDF + + + 1 + Instruction Set Manual + DATASHTS\ATMEL\AT_C51ISM.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\MON51.DLL + + + + 0 + DLGTP51 + (98=-1,-1,-1,-1,0)(82=-1,-1,-1,-1,0)(83=-1,-1,-1,-1,0)(84=-1,-1,-1,-1,0)(85=-1,-1,-1,-1,0)(80=-1,-1,-1,-1,0)(91=-1,-1,-1,-1,0)(92=-1,-1,-1,-1,0) + + + 0 + MON51 + -S2 -B115200 -O15 + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + SRC + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + INC + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 1 + 0 + 0 + .\inc.c + inc.c + 0 + 0 + + + +
diff --git a/MCU/MCU_1/MCU_1.uvproj b/MCU/MCU_1/MCU_1.uvproj new file mode 100644 index 0000000..6fe111f --- /dev/null +++ b/MCU/MCU_1/MCU_1.uvproj @@ -0,0 +1,400 @@ + + + + 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 + + + inc.c + 1 + .\inc.c + + + + + + + +
diff --git a/MCU/MCU_1/inc.c b/MCU/MCU_1/inc.c new file mode 100644 index 0000000..cee3605 --- /dev/null +++ b/MCU/MCU_1/inc.c @@ -0,0 +1,45 @@ +#include +#include "inc.h" +static void shortdelay() + +{ + int i; + for(i = 10; i > 0; i--); +} + + +static void longdelay() + +{ + int i; + for(i = 100; i > 0; i--); +} +const unsigned char hello_var[] = {0x91, 0x80}; + +static void hello() +{ + + unsigned char var2 = 0xef; + P0 = var2; + P2 = hello_var[1]; + shortdelay(); + var2 = var2 >> 1; + P2 = hello_var[1]; + P0 = var2; + shortdelay(); + longdelay(); +} + +void delay(int a) +{ + unsigned char i; + for(; a > 0; a--) + for(i = 18; i > 0; i--) +// hello() + ; +} +void ledfull() +{ + P2 = 0xff; + P0 = 0X00; +} \ No newline at end of file diff --git a/MCU/MCU_1/inc.h b/MCU/MCU_1/inc.h new file mode 100644 index 0000000..cafb66f --- /dev/null +++ b/MCU/MCU_1/inc.h @@ -0,0 +1,5 @@ +#include +void delay(int a); + +void ledfull(); + diff --git a/MCU/MCU_1/main.c b/MCU/MCU_1/main.c new file mode 100644 index 0000000..4d95cc0 --- /dev/null +++ b/MCU/MCU_1/main.c @@ -0,0 +1,39 @@ +#include +#include +#include "inc.h" + +static void shortdelay() + +{ + int i; + for(i = 10; i > 0; i--); +} + + +static void longdelay() + +{ + int i; + for(i = 100; i > 0; i--); +} +int main() +{ +//P1 跑马灯 +//P0 选位 低电平亮 +//P2 码 低电平亮 + + unsigned char var1 = 0xfe; + while(1) + { P0=0x00; + var1 = _crol_(var1, 1); + P1 = var1; + + P2= var1; +// longdelay(); +// P2=0XFF; + delay(2000); +// P2 = 0x00; + + } + +} diff --git a/MCU/MCU_1_1/Listings/MCU_1.m51 b/MCU/MCU_1_1/Listings/MCU_1.m51 new file mode 100644 index 0000000..45edac1 --- /dev/null +++ b/MCU/MCU_1_1/Listings/MCU_1.m51 @@ -0,0 +1,218 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:56:58 PAGE 1 + + +BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY: +C:\KEIL_V5\C51\BIN\BL51.EXE .\Objects\main.obj, .\Objects\inc.obj TO .\Objects\MCU_1 PRINT (.\Listings\MCU_1.m51) + + +MEMORY MODEL: LARGE + + +INPUT MODULES INCLUDED: + .\Objects\main.obj (MAIN) + .\Objects\inc.obj (INC) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT) + + +LINK MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + + TYPE BASE LENGTH RELOCATION SEGMENT NAME + ----------------------------------------------------- + + * * * * * * * D A T A M E M O R Y * * * * * * * + REG 0000H 0008H ABSOLUTE "REG BANK 0" + IDATA 0008H 0001H UNIT ?STACK + + * * * * * * * X D A T A M E M O R Y * * * * * * * + XDATA 0000H 0005H UNIT ?XD?INC + XDATA 0005H 0003H UNIT _XDATA_GROUP_ + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 008CH UNIT ?C_C51STARTUP + CODE 008FH 003CH UNIT ?PR?_DELAY?INC + CODE 00CBH 0037H UNIT ?PR?HELLO?INC + CODE 0102H 0025H UNIT ?PR?MAIN?MAIN + CODE 0127H 000EH UNIT ?PR?SHORTDELAY?MAIN + CODE 0135H 000EH UNIT ?PR?LONGDELAY?MAIN + CODE 0143H 000EH UNIT ?PR?SHORTDELAY?INC + CODE 0151H 000EH UNIT ?PR?LONGDELAY?INC + CODE 015FH 0009H UNIT ?C_INITSEG + CODE 0168H 0007H UNIT ?PR?LEDFULL?INC + + + +OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + +SEGMENT XDATA_GROUP + +--> CALLED SEGMENT START LENGTH +---------------------------------------------- +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN 0005H 0001H + +--> ?PR?_DELAY?INC + +?PR?_DELAY?INC 0006H 0002H + +--> ?PR?HELLO?INC + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:56:58 PAGE 2 + + + +?PR?HELLO?INC ----- ----- + +--> ?PR?SHORTDELAY?INC + +--> ?PR?LONGDELAY?INC + + + +SYMBOL TABLE OF MODULE: .\Objects\MCU_1 (MAIN) + + VALUE TYPE NAME + ---------------------------------- + + ------- MODULE MAIN + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00B0H PUBLIC P3 + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + C:0102H PUBLIC main + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0135H SYMBOL longdelay + C:0127H SYMBOL shortdelay + D:00C8H PUBLIC T2CON + D:00D0H PUBLIC PSW + ------- PROC SHORTDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0127H LINE# 5 + C:0127H LINE# 7 + C:0127H LINE# 9 + C:0134H LINE# 10 + ------- ENDPROC SHORTDELAY + ------- PROC LONGDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0135H LINE# 13 + C:0135H LINE# 15 + C:0135H LINE# 17 + C:0142H LINE# 18 + ------- ENDPROC LONGDELAY + ------- PROC MAIN + ------- DO + X:0005H SYMBOL var1 + ------- ENDDO + C:0102H LINE# 19 + C:0102H LINE# 20 + C:0102H LINE# 25 + C:0108H LINE# 26 + C:0108H LINE# 27 + C:010BH LINE# 28 + C:011CH LINE# 29 + C:011EH LINE# 34 + C:0125H LINE# 37 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:56:58 PAGE 3 + + + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE INC + 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 + C:008FH PUBLIC _delay + C:00CBH SYMBOL hello + D:00B8H PUBLIC IP + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + X:0000H PUBLIC hello_var + C:0151H SYMBOL longdelay + C:0143H SYMBOL shortdelay + D:00C8H PUBLIC T2CON + C:0168H PUBLIC ledfull + D:00D0H PUBLIC PSW + ------- PROC SHORTDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0143H LINE# 4 + C:0143H LINE# 6 + C:0143H LINE# 8 + C:0150H LINE# 9 + ------- ENDPROC SHORTDELAY + ------- PROC LONGDELAY + ------- DO + D:0006H SYMBOL i + ------- ENDDO + C:0151H LINE# 12 + C:0151H LINE# 14 + C:0151H LINE# 16 + C:015EH LINE# 17 + ------- ENDPROC LONGDELAY + ------- PROC HELLO + ------- DO + D:0004H SYMBOL i + D:0003H SYMBOL var2 + ------- ENDDO + C:00CBH LINE# 20 + C:00CBH LINE# 21 + C:00CBH LINE# 22 + C:00CEH LINE# 23 + C:00D0H LINE# 24 + C:00D0H LINE# 25 + C:00D0H LINE# 26 + C:00D4H LINE# 27 + C:00E9H LINE# 28 + C:00ECH LINE# 29 + C:00EFH LINE# 30 + C:00F2H LINE# 31 + C:00F6H LINE# 32 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/17/2022 13:56:58 PAGE 4 + + + C:0101H LINE# 33 + ------- ENDPROC HELLO + ------- PROC _DELAY + X:0006H SYMBOL a + ------- DO + D:0002H SYMBOL i + ------- ENDDO + C:008FH LINE# 35 + C:0097H LINE# 36 + C:0097H LINE# 38 + C:00A8H LINE# 39 + C:00B4H LINE# 40 + C:00CAH LINE# 42 + ------- ENDPROC _DELAY + ------- PROC LEDFULL + C:0168H LINE# 43 + C:0168H LINE# 44 + C:0168H LINE# 45 + C:016BH LINE# 46 + C:016EH LINE# 47 + ------- ENDPROC LEDFULL + ------- ENDMOD INC + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?SHORTDELAY?MAIN + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LONGDELAY?MAIN + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LEDFULL?INC + +Program Size: data=9.0 xdata=8 code=367 +LINK/LOCATE RUN COMPLETE. 3 WARNING(S), 0 ERROR(S) diff --git a/MCU/MCU_1_1/MCU_1.uvopt b/MCU/MCU_1_1/MCU_1.uvopt new file mode 100644 index 0000000..3231031 --- /dev/null +++ b/MCU/MCU_1_1/MCU_1.uvopt @@ -0,0 +1,229 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + MCU_1 + 0x0 + MCS-51 + + 24000000 + + 1 + 1 + 1 + 0 + 0 + + + 0 + 65535 + 0 + 0 + 0 + + + 120 + 65 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + + 0 + Data Sheet + DATASHTS\ATMEL\AT89C51_DS.PDF + + + 1 + Instruction Set Manual + DATASHTS\ATMEL\AT_C51ISM.PDF + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + + + + + + + + + + + BIN\MON51.DLL + + + + 0 + DLGTP51 + (98=-1,-1,-1,-1,0)(82=-1,-1,-1,-1,0)(83=-1,-1,-1,-1,0)(84=-1,-1,-1,-1,0)(85=-1,-1,-1,-1,0)(80=-1,-1,-1,-1,0)(91=-1,-1,-1,-1,0)(92=-1,-1,-1,-1,0) + + + 0 + MON51 + -S2 -B115200 -O15 + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + SRC + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + INC + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 1 + 0 + 0 + .\inc.c + inc.c + 0 + 0 + + + +
diff --git a/MCU/MCU_1_1/MCU_1.uvproj b/MCU/MCU_1_1/MCU_1.uvproj new file mode 100644 index 0000000..c022c3a --- /dev/null +++ b/MCU/MCU_1_1/MCU_1.uvproj @@ -0,0 +1,400 @@ + + + + 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 + + + inc.c + 1 + .\inc.c + + + + + + + +
diff --git a/MCU/MCU_1_1/inc.c b/MCU/MCU_1_1/inc.c new file mode 100644 index 0000000..126c6ea --- /dev/null +++ b/MCU/MCU_1_1/inc.c @@ -0,0 +1,47 @@ +#include +#include "inc.h" +#include +static void shortdelay() + +{ + int i; + for(i = 50; i > 0; i--); +} + + +static void longdelay() + +{ + int i; + for(i = 300; i > 0; i--); +} +const unsigned char hello_var[] = {0x91, 0x61, 0xe3, 0xe3, 0x03}; + +static void hello() +{ + int i=0; + unsigned char var2 = 0x10; + for(;i<=5;i++) + { + P0 = ~var2; + P2 = hello_var[4-i]; + shortdelay(); + P0 = 0XFF; + longdelay(); + var2=var2>>1; + } +} + +void delay(int a) +{ + unsigned char i; + for(; a > 0; a--) + for(i = 18; i > 0; i--) + hello() + ; +} +void ledfull() +{ + P2 = 0xff; + P0 = 0X00; +} \ No newline at end of file diff --git a/MCU/MCU_1_1/inc.h b/MCU/MCU_1_1/inc.h new file mode 100644 index 0000000..cafb66f --- /dev/null +++ b/MCU/MCU_1_1/inc.h @@ -0,0 +1,5 @@ +#include +void delay(int a); + +void ledfull(); + diff --git a/MCU/MCU_1_1/main.c b/MCU/MCU_1_1/main.c new file mode 100644 index 0000000..faab61c --- /dev/null +++ b/MCU/MCU_1_1/main.c @@ -0,0 +1,39 @@ +#include +#include +#include "inc.h" + +static void shortdelay() + +{ + int i; + for(i = 10; i > 0; i--); +} + + +static void longdelay() + +{ + int i; + for(i = 100; i > 0; i--); +} +int main() +{ +//P1 跑马灯 +//P0 选位 低电平亮 +//P2 码 低电平亮 + + unsigned char var1 = 0xfe; + while(1) + { P0=0x00; + var1 = _crol_(var1, 1); + P1 = var1; + +// P2= var1; +// longdelay(); +// P2=0XFF; + delay(2000); +// P2 = 0x00; + + } + +} diff --git a/MCU/MCU_2 _External_Interrupt/Listings/MCU_1.m51 b/MCU/MCU_2 _External_Interrupt/Listings/MCU_1.m51 new file mode 100644 index 0000000..a4e8401 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/Listings/MCU_1.m51 @@ -0,0 +1,331 @@ +BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 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\led_num.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\led_num.obj (LED_NUM) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_STARTUP) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?SLDIV) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C_INIT) + C:\KEIL_V5\C51\LIB\C51L.LIB (?C?ULDIV) + + +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 000CH UNIT ?XD?LED_NUM + XDATA 000CH 0003H UNIT ?XD?HELLO_FULL_DISPLAY?LED_NUM + XDATA 000FH 0002H UNIT ?XD?MAIN + XDATA 0011H 0002H UNIT _XDATA_GROUP_ + + * * * * * * * C O D E M E M O R Y * * * * * * * + CODE 0000H 0003H ABSOLUTE + CODE 0003H 0003H ABSOLUTE + CODE 0006H 00CEH UNIT ?C?LIB_CODE + CODE 00D4H 00C9H UNIT ?PR?HELLO_DISPLAY?LED_NUM + CODE 019DH 009DH UNIT ?PR?HELLO_FULL_DISPLAY?LED_NUM + CODE 023AH 008CH UNIT ?C_C51STARTUP + CODE 02C6H 0056H UNIT ?PR?NUM_DISPLAY?LED_NUM + CODE 031CH 0051H UNIT ?PR?_GET_VAR?LED_NUM + CODE 036DH 0049H UNIT ?PR?INT0?MAIN + CODE 03B6H 0044H UNIT ?C?LDIV + CODE 03FAH 0024H UNIT ?C_INITSEG + CODE 041EH 001CH UNIT ?PR?MAIN?MAIN + CODE 043AH 0014H UNIT ?PR?MOVE?MAIN + CODE 044EH 0012H UNIT ?PR?NUM_PUSH?LED_NUM + CODE 0460H 000FH UNIT ?PR?HELLO_PUSH?LED_NUM + CODE 046FH 000EH UNIT ?PR?_DELAY?DELAY + CODE 047DH 0007H UNIT ?PR?LEDFULL?LED_NUM + + + +OVERLAY MAP OF MODULE: .\Objects\MCU_1 (MAIN) + + + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 PAGE 2 + + +SEGMENT XDATA_GROUP + +--> CALLED SEGMENT START LENGTH +------------------------------------------------------ +?PR?INT0?MAIN ----- ----- + +--> ?PR?_DELAY?DELAY + +*** NEW ROOT *************************************************** + +?C_C51STARTUP ----- ----- + +--> ?PR?MAIN?MAIN + +--> ?C_INITSEG + +?PR?MAIN?MAIN ----- ----- + +--> ?PR?MOVE?MAIN + +--> ?PR?HELLO_PUSH?LED_NUM + +--> ?PR?HELLO_DISPLAY?LED_NUM + +?PR?HELLO_DISPLAY?LED_NUM ----- ----- + +--> ?PR?_GET_VAR?LED_NUM + +--> ?PR?_DELAY?DELAY + +?PR?_GET_VAR?LED_NUM 0011H 0002H + + + +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 + D:00B8H PUBLIC IP + C:041EH PUBLIC main + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + X:000FH PUBLIC move_flag + C:043AH PUBLIC move + B:0088H.1 PUBLIC IE0 + B:00A8H.0 PUBLIC EX0 + B:0088H.0 PUBLIC IT0 + D:00C8H PUBLIC T2CON + D:00D0H PUBLIC PSW + X:0010H PUBLIC var1 + C:036DH PUBLIC int0 + ------- PROC MOVE + C:043AH LINE# 8 + C:043AH LINE# 9 + C:043AH LINE# 10 + C:044BH LINE# 11 + C:044DH LINE# 12 + ------- ENDPROC MOVE + ------- PROC INT0 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 PAGE 3 + + + C:036DH LINE# 15 + C:038AH LINE# 17 + C:038CH LINE# 18 + C:0393H LINE# 19 + C:0395H LINE# 20 + C:039BH LINE# 21 + ------- ENDPROC INT0 + ------- PROC MAIN + C:041EH LINE# 24 + C:041EH LINE# 25 + C:041EH LINE# 30 + C:0420H LINE# 31 + C:0422H LINE# 32 + C:0424H LINE# 34 + C:0424H LINE# 35 + C:0424H LINE# 36 + C:042AH LINE# 37 + C:042AH LINE# 38 + C:042DH LINE# 39 + C:0430H LINE# 41 + C:0435H LINE# 42 + C:0435H LINE# 44 + C:0438H LINE# 53 + ------- ENDPROC MAIN + ------- ENDMOD MAIN + + ------- MODULE DELAY + C:0000H SYMBOL _ICE_DUMMY_ + C:046FH PUBLIC _delay + ------- PROC _DELAY + D:0006H SYMBOL i + C:046FH LINE# 3 + C:046FH LINE# 5 + C:046FH LINE# 6 + C:047CH LINE# 7 + ------- ENDPROC _DELAY + ------- ENDMOD DELAY + + ------- MODULE LED_NUM + C:0000H SYMBOL _ICE_DUMMY_ + D:0080H PUBLIC P0 + D:0090H PUBLIC P1 + D:00A0H PUBLIC P2 + D:00B0H PUBLIC P3 + C:019DH PUBLIC hello_full_display + D:00A8H PUBLIC IE + D:00B8H PUBLIC IP + X:0000H SYMBOL count + C:02C6H PUBLIC num_display + D:0098H PUBLIC SCON + D:0088H PUBLIC TCON + C:0460H PUBLIC hello_push + X:0002H PUBLIC hello_var + X:0008H SYMBOL e + D:00C8H PUBLIC T2CON + X:0009H SYMBOL i + C:047DH PUBLIC ledfull + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 PAGE 4 + + + C:031CH SYMBOL _get_var + C:00D4H PUBLIC hello_display + C:044EH PUBLIC num_push + D:00D0H PUBLIC PSW + X:000BH SYMBOL var2 + ------- PROC _GET_VAR + X:0011H SYMBOL k + C:031CH LINE# 9 + C:0324H LINE# 10 + C:0324H LINE# 11 + C:036CH LINE# 12 + ------- ENDPROC _GET_VAR + ------- PROC HELLO_DISPLAY + C:00D4H LINE# 19 + C:00D4H LINE# 20 + C:00D4H LINE# 21 + C:00E6H LINE# 22 + C:00E6H LINE# 23 + C:00E9H LINE# 24 + C:00F2H LINE# 25 + C:00F9H LINE# 26 + C:00FCH LINE# 28 + C:00FFH LINE# 29 + C:0108H LINE# 30 + C:010FH LINE# 31 + C:0112H LINE# 33 + C:0115H LINE# 34 + C:011EH LINE# 35 + C:0125H LINE# 36 + C:0128H LINE# 38 + C:012BH LINE# 39 + C:0134H LINE# 40 + C:013BH LINE# 41 + C:013EH LINE# 43 + C:0141H LINE# 44 + C:014AH LINE# 45 + C:0151H LINE# 46 + C:0154H LINE# 48 + C:0157H LINE# 49 + C:015FH LINE# 50 + C:0166H LINE# 51 + C:0169H LINE# 56 + C:0169H LINE# 57 + C:0178H LINE# 58 + C:0178H LINE# 59 + C:017BH LINE# 61 + C:017BH LINE# 62 + C:0189H LINE# 63 + C:0198H LINE# 64 + C:019CH LINE# 66 + ------- ENDPROC HELLO_DISPLAY + ------- PROC HELLO_PUSH + C:0460H LINE# 68 + C:0460H LINE# 69 + C:0460H LINE# 71 + C:046EH LINE# 77 + ------- ENDPROC HELLO_PUSH + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 PAGE 5 + + + ------- PROC NUM_DISPLAY + C:02C6H LINE# 79 + C:02C6H LINE# 80 + C:02C6H LINE# 81 + C:02D5H LINE# 82 + C:02D5H LINE# 84 + C:02D8H LINE# 85 + C:02DEH LINE# 86 + C:02E5H LINE# 87 + C:02E8H LINE# 92 + C:02E8H LINE# 93 + C:02F7H LINE# 94 + C:02F7H LINE# 95 + C:02FAH LINE# 96 + C:02FAH LINE# 97 + C:0308H LINE# 98 + C:0317H LINE# 99 + C:031BH LINE# 101 + ------- ENDPROC NUM_DISPLAY + ------- PROC NUM_PUSH + C:044EH LINE# 104 + C:044EH LINE# 105 + C:044EH LINE# 106 + C:045FH LINE# 107 + ------- ENDPROC NUM_PUSH + ------- PROC LEDFULL + C:047DH LINE# 109 + C:047DH LINE# 110 + C:047DH LINE# 111 + C:0480H LINE# 112 + C:0483H LINE# 113 + ------- ENDPROC LEDFULL + ------- PROC HELLO_FULL_DISPLAY + ------- DO + X:000CH SYMBOL var3 + X:000DH SYMBOL j + ------- ENDDO + C:019DH LINE# 116 + C:019DH LINE# 117 + C:019DH LINE# 118 + C:01ACH LINE# 119 + C:01ACH LINE# 120 + C:01B2H LINE# 122 + C:01B7H LINE# 123 + C:01B7H LINE# 124 + C:01C8H LINE# 125 + C:01CAH LINE# 126 + C:01DDH LINE# 127 + C:01E4H LINE# 128 + C:01E7H LINE# 129 + C:0206H LINE# 134 + C:0206H LINE# 135 + C:0215H LINE# 136 + C:0215H LINE# 137 + C:0218H LINE# 139 + C:0218H LINE# 140 + C:0226H LINE# 141 + BL51 BANKED LINKER/LOCATER V6.22.2.0 03/24/2022 22:00:22 PAGE 6 + + + C:0235H LINE# 142 + C:0239H LINE# 144 + ------- ENDPROC HELLO_FULL_DISPLAY + ------- ENDMOD LED_NUM + + ------- MODULE ?C?SLDIV + C:03B6H PUBLIC ?C?SLDIV + ------- ENDMOD ?C?SLDIV + + ------- MODULE ?C?ULDIV + C:0042H PUBLIC ?C?ULDIV + ------- ENDMOD ?C?ULDIV + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?NUM_DISPLAY?LED_NUM + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?NUM_PUSH?LED_NUM + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?LEDFULL?LED_NUM + +*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS + SEGMENT: ?PR?HELLO_FULL_DISPLAY?LED_NUM + +Program Size: data=9.0 xdata=19 code=1156 +LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S) diff --git a/MCU/MCU_2 _External_Interrupt/MCU_1.uvopt b/MCU/MCU_2 _External_Interrupt/MCU_1.uvopt new file mode 100644 index 0000000..4ff87f2 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/MCU_1.uvopt @@ -0,0 +1,248 @@ + + + + 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 + i + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + SRC + 1 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + .\main.c + main.c + 0 + 0 + + + + + INC + 1 + 0 + 0 + 0 + + 2 + 2 + 1 + 0 + 0 + 0 + .\delay.c + delay.c + 0 + 0 + + + 2 + 3 + 1 + 1 + 0 + 0 + .\led_num.c + led_num.c + 0 + 0 + + + +
diff --git a/MCU/MCU_2 _External_Interrupt/MCU_1.uvproj b/MCU/MCU_2 _External_Interrupt/MCU_1.uvproj new file mode 100644 index 0000000..c51ac4b --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/MCU_1.uvproj @@ -0,0 +1,405 @@ + + + + 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 + + + led_num.c + 1 + .\led_num.c + + + + + + + +
diff --git a/MCU/MCU_2 _External_Interrupt/delay.c b/MCU/MCU_2 _External_Interrupt/delay.c new file mode 100644 index 0000000..9681197 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/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_2 _External_Interrupt/delay.h b/MCU/MCU_2 _External_Interrupt/delay.h new file mode 100644 index 0000000..ae46cf9 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/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_2 _External_Interrupt/led_num.c b/MCU/MCU_2 _External_Interrupt/led_num.c new file mode 100644 index 0000000..ce0e333 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/led_num.c @@ -0,0 +1,144 @@ +#include +#include "led_num.h" +#include +#include "delay.h" + +#define DUTY 10 +static unsigned int i = 0; +const unsigned char hello_var[] = {0x89, 0x86, 0xc7, 0xc7, 0xc0,0xff}; +static unsigned char get_var(int k) +{ + return hello_var[(65535-i+k)%6]; +} + + +static unsigned char var2 = 0xfd; +static unsigned int count = 0; +static unsigned char e = 0xfe; + +void hello_display() +{ + if(count < DUTY) + { + P0 = 0xfe; + P2 = get_var(5); + delay(1); + P2 = 0XFF; + + P0 = 0xfd; + P2 = get_var(4); + delay(1); + P2 = 0XFF; + + P0 = 0xfb; + P2 = get_var(3); + delay(1); + P2 = 0XFF; + + P0 = 0xf7; + P2 = get_var(2); + delay(1); + P2 = 0XFF; + + P0 = 0xef; + P2 = get_var(1); + delay(1); + P2 = 0XFF; + + P0 = 0xdf; + P2 = get_var(0); + delay(1); + P2 = 0XFF; + +// var2 = var2 >> 1; +// if(var2 == 0) +// var2 = 0x10; + } + if(count >= DUTY) + { + P2 = 0XFF; + + } + count++; + if(count >= 100) + count = 0; + return; +} + +void hello_push() +{ +// var2 = _crol_(var2, 1); + i++; +// if(var2 < 0xdf) +// { +// i = 0; +// var2 = 0xfd; +// } +} + +void num_display() +{ + if(count < DUTY) + { + + P0 = 0xfe; + P2 = e; + delay(1); + P2 = 0XFF; + +// var2 = var2 >> 1; +// if(var2 == 0) +// var2 = 0x10; + } + if(count >= DUTY) + { + P2 = 0XFF; + } + count++; + if(count >= 100) + count = 0; + return; +} + + +void num_push() +{ + e = _crol_(e, 1); +} + +void ledfull() +{ + P2 = 0xff; + P0 = 0X00; +} + + +void hello_full_display() +{ + if(count < DUTY) + { + unsigned char var3=0xfd; + int j; + for(j=0;j<5;j++) + { + var3 = _crol_(var3,1); + P1=var3; + P2 = hello_var[i]; + delay(1); + P2 = 0XFF; + } + +// var2 = var2 >> 1; +// if(var2 == 0) +// var2 = 0x10; + } + if(count >= DUTY) + { + P2 = 0XFF; + + } + count++; + if(count >= 100) + count = 0; + return; +} \ No newline at end of file diff --git a/MCU/MCU_2 _External_Interrupt/led_num.h b/MCU/MCU_2 _External_Interrupt/led_num.h new file mode 100644 index 0000000..bf50b78 --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/led_num.h @@ -0,0 +1,15 @@ +#ifndef _LED_NUM_H_ +#define _LDE_NUM_H_ + +void hello_display(); + +void hello_push(); + +void num_display(); + +void num_push(); + + + +#endif + diff --git a/MCU/MCU_2 _External_Interrupt/main.c b/MCU/MCU_2 _External_Interrupt/main.c new file mode 100644 index 0000000..c75ebff --- /dev/null +++ b/MCU/MCU_2 _External_Interrupt/main.c @@ -0,0 +1,55 @@ +#include +#include +#include "led_mum.h" +#include "delay.h" + +unsigned char var1 = 0xfe; +unsigned char move_flag = 0; +void move() +{ + var1 = _crol_(var1, 1); + P1 = var1; +} + + +void int0() interrupt 0 +{ + IE0 = 0; + delay(40); + IE0 = 0; + move_flag = 1; +} + + +int main() +{ +//P1 跑马灯 +//P0 选位 低电平亮 +//P2 码 低电平亮 + + EA = 1; + IT0 = 1; + EX0 = 1; + + while(1) + { + if(move_flag) + { + move(); + hello_push(); +// num_push(); + move_flag=0; + } +// num_display(); + hello_display(); +// hello_full_display(); + +// P2= var1; +// longdelay(); +// P2=0XFF; +// delay(2000); +// P2 = 0x00; + + } + +}